/veritaserum

Sentiment analysis based on afinn-165, emojis and some enhancements.

Primary LanguageElixirOtherNOASSERTION

Veritaserum

Build Status Module Version Hex Docs License

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...).

Index

Installation

Add veritaserum to your list of dependencies in mix.exs:

def deps do
  [{:veritaserum, "~> 0.2.2"}]
end

Usage

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.

Running locally

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

Contributing

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.