sloev / sentimental-onix

sentiment analysis for spacy pipeline in python
MIT License
3 stars 0 forks source link
onnx sentiment-analysis spacy spacy-pipeline

spacy syllables Buy Me A Coffee

example workflow Latest Version Python Support

Sentimental Onix

Sentiment Analysis using onnx for python with a focus on being spacy compatible and EEEEEASY to use.

Features

Install

$ pip install sentimental_onix
# download english sentiment model
$ python -m sentimental_onix download en

Usage

import spacy
from sentimental_onix import pipeline

nlp = spacy.load("en_core_web_sm")
nlp.add_pipe("sentencizer")
nlp.add_pipe("sentimental_onix", after="sentencizer")

sentences = [
    (sent.text, sent._.sentiment)
    for doc in nlp.pipe(
        [
            "i hate pasta on tuesdays",
            "i like movies on wednesdays",
            "i find your argument ridiculous",
            "soda with straws are my favorite",
        ]
    )
    for sent in doc.sents
]

assert sentences == [
    ("i hate pasta on tuesdays", "Negative"),
    ("i like movies on wednesdays", "Positive"),
    ("i find your argument ridiculous", "Negative"),
    ("soda with straws are my favorite", "Positive"),
]

Benchmark

library result
spacytextblob 58.9%
sentimental_onix 69%

See ./benchmark/ for info

Dev setup / testing

expand ### Install install the dev package and pyenv versions ```bash $ pip install -e ".[dev]" $ python -m spacy download en_core_web_sm $ python -m sentimental_onix download en ``` ### Run tests ```bash $ black . $ pytest -vvl ``` ### Packaging and publishing ```bash python3 -m pip install --upgrade build twine python3 -m build python3 -m twine upload dist/* ```