sloev / sentimental-onix

sentiment analysis for spacy pipeline in python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

  • English sentiment analysis
  • Spacy pipeline component
  • Sentiment model downloading from github

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

$ pip install -e ".[dev]"
$ python -m spacy download en_core_web_sm
$ python -m sentimental_onix download en

Run tests

$ black .
$ pytest -vvl

Packaging and publishing

python3 -m pip install --upgrade build twine
python3 -m build
python3 -m twine upload dist/*

About

sentiment analysis for spacy pipeline in python

License:MIT License


Languages

Language:Python 100.0%