|
|
Welcome to Senpy's documentation!
|
|
|
=================================
|
|
|
|
|
|
.. image:: https://readthedocs.org/projects/senpy/badge/?version=latest
|
|
|
:target: http://senpy.readthedocs.io/en/latest/
|
|
|
.. image:: https://badge.fury.io/py/senpy.svg
|
|
|
:target: https://badge.fury.io/py/senpy
|
|
|
.. image:: https://travis-ci.org/gsi-upm/senpy.svg
|
|
|
:target: https://github.com/gsi-upm/senpy/senpy/tree/master
|
|
|
.. image:: https://img.shields.io/pypi/l/requests.svg
|
|
|
:target: https://lab.gsi.upm.es/senpy/senpy/
|
|
|
|
|
|
Senpy is a framework to build sentiment and emotion analysis services.
|
|
|
It provides functionalities for:
|
|
|
|
|
|
- developing sentiment and emotion classifier and exposing them as an HTTP service
|
|
|
- requesting sentiment and emotion analysis from different providers (i.e. Vader, Sentimet140, ...) using the same interface (:doc:`apischema`). In this way, applications do not depend on the API offered for these services.
|
|
|
- combining services that use different sentiment model (e.g. polarity between [-1, 1] or [0,1] or emotion models (e.g. Ekkman or VAD)
|
|
|
- evaluating sentiment algorithms with well known datasets
|
|
|
|
|
|
|
|
|
Using senpy services is as simple as sending an HTTP request with your favourite tool or library.
|
|
|
Let's analyze the sentiment of the text "Senpy is awesome".
|
|
|
|
|
|
We can call the `Sentiment140 <http://www.sentiment140.com/>`_ service with an HTTP request using curl:
|
|
|
|
|
|
|
|
|
.. code:: shell
|
|
|
:emphasize-lines: 14,18
|
|
|
|
|
|
$ curl "http://senpy.gsi.upm.es/api/sentiment140" \
|
|
|
--data-urlencode "input=Senpy is awesome"
|
|
|
|
|
|
{
|
|
|
"@context": "http://senpy.gsi.upm.es/api/contexts/YXBpL3NlbnRpbWVudDE0MD8j",
|
|
|
"@type": "Results",
|
|
|
"entries": [
|
|
|
{
|
|
|
"@id": "prefix:",
|
|
|
"@type": "Entry",
|
|
|
"marl:hasOpinion": [
|
|
|
{
|
|
|
"@type": "Sentiment",
|
|
|
"marl:hasPolarity": "marl:Positive",
|
|
|
"prov:wasGeneratedBy": "prefix:Analysis_1554389334.6431913"
|
|
|
}
|
|
|
],
|
|
|
"nif:isString": "Senpy is awesome",
|
|
|
"onyx:hasEmotionSet": []
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
|
|
|
|
|
|
Congratulations, you’ve used your first senpy service!
|
|
|
You can observe the result: the polarity is positive (marl:Positive). The reason of this prefix is that Senpy follows a linked data approach.
|
|
|
|
|
|
You can analyze the same sentence using a different sentiment service (e.g. Vader) and requesting a different format (e.g. turtle):
|
|
|
|
|
|
|
|
|
|
|
|
.. code:: shell
|
|
|
|
|
|
$ curl "http://senpy.gsi.upm.es/api/sentiment-vader" \
|
|
|
--data-urlencode "input=Senpy is awesome" \
|
|
|
--data-urlencode "outformat=turtle"
|
|
|
|
|
|
@prefix : <http://www.gsi.upm.es/onto/senpy/ns#> .
|
|
|
@prefix endpoint: <http://senpy.gsi.upm.es/api/> .
|
|
|
@prefix marl: <http://www.gsi.upm.es/ontologies/marl/ns#> .
|
|
|
@prefix nif: <http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#> .
|
|
|
@prefix prefix: <http://senpy.invalid/> .
|
|
|
@prefix prov: <http://www.w3.org/ns/prov#> .
|
|
|
@prefix senpy: <http://www.gsi.upm.es/onto/senpy/ns#> .
|
|
|
|
|
|
prefix: a senpy:Entry ;
|
|
|
nif:isString "Senpy is awesome" ;
|
|
|
marl:hasOpinion [ a senpy:Sentiment ;
|
|
|
marl:hasPolarity "marl:Positive" ;
|
|
|
marl:polarityValue 6.72e-01 ;
|
|
|
prov:wasGeneratedBy prefix:Analysis_1562668175.9808676 ] .
|
|
|
|
|
|
[] a senpy:Results ;
|
|
|
prov:used prefix: .
|
|
|
|
|
|
As you see, Vader returns also the polarity value (0.67) in addition to the category (positive).
|
|
|
|
|
|
If you are interested in consuming Senpy services, read :doc:`Quickstart`.
|
|
|
To get familiar with the concepts behind Senpy, and what it can offer for service developers, check out :doc:`development`.
|
|
|
:doc:`apischema` contains information about the semantic models and vocabularies used by Senpy.
|
|
|
|
|
|
.. toctree::
|
|
|
:caption: Learn more about senpy:
|
|
|
:maxdepth: 2
|
|
|
:hidden:
|
|
|
|
|
|
senpy
|
|
|
demo
|
|
|
Quickstart.ipynb
|
|
|
installation
|
|
|
conversion
|
|
|
Evaluation.ipynb
|
|
|
apischema
|
|
|
development
|
|
|
publications
|
|
|
projects
|