As you can see, the structure and annotation schema of the response is the same.
As you can see, the structure and annotation schema of the response is the same.
This makes it very easy to compare and migrate to different services.
This makes it very easy to compare and migrate to different services.
Service interoperability is not only useful for users.
Service interoperability is not only useful for users.
It is also key for other features such as [automated evaluation](#Evaluation).
It is also key for other features such as [automated evaluation](#Evaluation).
This is a compelling reason to adapt existing services to use the Senpy API.
This is a compelling reason to adapt existing services to use the Senpy API.
In fact, the `sentiment140` senpy service is proxy to the public [Sentiment 140 service](http://www.sentiment140.com/).
In fact, the `sentiment140` senpy service is proxy to the public [Sentiment 140 service](http://www.sentiment140.com/).
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Emotion analysis
## Emotion analysis
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Senpy uses the `onyx` vocabulary to represent emotions, which incorporates the notion of `EmotionSet`'s, an emotion that is composed of several emotions.
Senpy uses the `onyx` vocabulary to represent emotions, which incorporates the notion of `EmotionSet`'s, an emotion that is composed of several emotions.
In a nutshell, an `Entry` is linked to one or more `EmotionSet`, which in turn is made up of one or more `Emotion`.
In a nutshell, an `Entry` is linked to one or more `EmotionSet`, which in turn is made up of one or more `Emotion`.
Let's illustrate it with an example, using the `emotion-depechemood` plugin.
Let's illustrate it with an example, using the `emotion-depechemood` plugin.
\PY{+w}{ }\PY{n+nn}{nif:}\PY{n+nt}{isString}\PY{+w}{ }\PY{l+s}{\PYZdq{}}\PY{l+s}{Senpy is the best framework for semantic sentiment analysis, and very easy to use}\PY{l+s}{\PYZdq{}}\PY{+w}{ }\PY{p}{;}
\PY{+w}{ }\PY{n+nn}{nif:}\PY{n+nt}{isString}\PY{+w}{ }\PY{l+s}{\PYZdq{}}\PY{l+s}{Senpy is the best framework for semantic sentiment analysis, and very easy to use}\PY{l+s}{\PYZdq{}}\PY{+w}{ }\PY{p}{;}
"This mini-tutorial is the first in the series of senpy tutorials. It only shows how to annotate with a service.\n",
"This mini-tutorial only shows how to annotate with a service.\n",
"In this first tutorial, we will use the [demo server](http://senpy.gsi.upm.es), which runs some open source plugins for sentiment and emotion analysis."
"We will use the [demo server](http://senpy.gsi.upm.es), which runs some open source plugins for sentiment and emotion analysis."
]
]
},
},
{
{
...
@@ -57,7 +57,7 @@
...
@@ -57,7 +57,7 @@
"cell_type": "markdown",
"cell_type": "markdown",
"metadata": {},
"metadata": {},
"source": [
"source": [
"Congratulations, you've used your first senpy service!"
"**Congratulations**, you've used your first senpy service!"
]
]
},
},
{
{
...
...
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
# Senpy in 1 minute
# Senpy in 1 minute
This mini-tutorial is the first in the series of senpy tutorials. It only shows how to annotate with a service.
This mini-tutorial only shows how to annotate with a service.
In this first tutorial, we will use the [demo server](http://senpy.gsi.upm.es), which runs some open source plugins for sentiment and emotion analysis.
We will use the [demo server](http://senpy.gsi.upm.es), which runs some open source plugins for sentiment and emotion analysis.
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Annotating with senpy is as simple as issuing an HTTP request to the API using your favourite tool.
Annotating with senpy is as simple as issuing an HTTP request to the API using your favourite tool.
This is just an example using curl:
This is just an example using curl:
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
!curl"http://senpy.gsi.upm.es/api/sentiment140"--data-urlencode"input=Senpy is awesome"
!curl"http://senpy.gsi.upm.es/api/sentiment140"--data-urlencode"input=Senpy is awesome"
@@ -18,10 +18,10 @@ And higher level features can be built on top of these services, such as automat
...
@@ -18,10 +18,10 @@ And higher level features can be built on top of these services, such as automat
These benefits are not limited to new services.
These benefits are not limited to new services.
The community has developed wrappers for some proprietary and commercial services (such as sentiment140 and Meaning Cloud), so you can consult them as.
The community has developed wrappers for some proprietary and commercial services (such as sentiment140 and Meaning Cloud), so you can consult them as.
Senpy comes with a :ref:`built-in client`.
Senpy comes with a built-in client in the client package.
To achieve this goal, Senpy uses a Linked Data principled approach, based on the NIF (NLP Interchange Format) specification, and open vocabularies such as Marl and Onyx.
To achieve this goal, Senpy uses a Linked Data principled approach, based on the NIF (NLP Interchange Format) specification, and open vocabularies such as Marl and Onyx.
You can learn more about this in :doc:`vocabularies`.
You can learn more about this in :doc:`vocabularies`.
Check out :doc:`plugins` if you have developed an analysis algorithm (e.g. sentiment analysis) and you want to publish it as a service.
Check out :doc:`development` if you have developed an analysis algorithm (e.g. sentiment analysis) and you want to publish it as a service.