Simple sentiment analysis for Elixir based on the AFINN-165 list and some extra enhancements.
It also supports:
- emojis (❤️, 😱...)
- boosters (very, really...)
- negators (don't, not...).
Add veritaserum
to your list of dependencies in mix.exs
:
def deps do
[{:veritaserum, "~> 0.2.2"}]
end
To analyze a text
Veritaserum.analyze("I love Veritaserum!") #=> 3
# It also supports emojis
Veritaserum.analyze("I ❤️ Veritaserum!") #=> 2
# It also supports negators
Veritaserum.analyze("I like Veritaserum!") #=> 2
Veritaserum.analyze("I don't like Veritaserum!") #=> -2
#and boosters
Veritaserum.analyze("Veritaserum is cool!") #=> 1
Veritaserum.analyze("Veritaserum is very cool!") #=> 2
You can also pass a list
Veritaserum.analyze(["I love Veritaserum!", "I hate some things!"]) #=> [3, -3]
Documentation can be found on HexDocs.
Clone the repository
git clone git@github.com:uesteibar/veritaserum.git
Install dependencies
cd veritaserum
mix deps.get
To run the tests
mix test
To run the lint
mix credo
Pull requests are always welcome =)
The project uses standard-changelog to update the Changelog with each commit message and upgrade the package version.
For that reason every contribution should have a title and body that follows the conventional commits standard conventions (e.g. feat(analyzer): Make it smarter than Jarvis
).
To make this process easier, you can do the following:
Install commitizen
and cz-conventional-changelog
globally
npm i -g commitizen cz-conventional-changelog
Save cz-conventional-changelog
as default
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
Instead of git commit
, you can now run
git cz
and follow the instructions to generate the commit message.