mirror of
https://github.com/gsi-upm/senpy
synced 2024-11-22 08:12:27 +00:00
a0abbede49
Update RDFlib to 6.1.1 (removed rdflib-jsonld, as it is deprecated) Bumped minimum python version: 3.7 (as a result of RDFLIB 6) Added ProxyFix to run behind nginx (Added --no-proxy to run without the fix) Replaced http media links to protocol-agnostic links in playground Enable CORS (via --enable-cors) Update old urls (replaced *.cluster.gsi.dit.upm.es with *.gsi.upm.es)
107 lines
3.8 KiB
ReStructuredText
107 lines
3.8 KiB
ReStructuredText
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
|