1
0
mirror of https://github.com/gsi-upm/senpy synced 2024-11-21 15:52:28 +00:00

Started readthedocs and improved README

This commit is contained in:
J. Fernando Sánchez 2015-10-28 21:25:23 +01:00
parent a63e9209fd
commit 7de5b41340
18 changed files with 1136 additions and 56 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@
.* .*
*egg-info *egg-info
dist dist
README.html

View File

@ -1,26 +1,29 @@
.. image:: logo.png .. image:: img/header.png
:height: 6em :height: 6em
:align: left :target: http://demos.gsi.dit.upm.es/senpy
=====================================
`Senpy <http://senpy.herokuapp.com>`_
=====================================
.. image:: https://travis-ci.org/gsi-upm/senpy.svg?branch=master .. image:: https://travis-ci.org/gsi-upm/senpy.svg?branch=master
:target: https://travis-ci.org/gsi-upm/senpy :target: https://travis-ci.org/gsi-upm/senpy
Sentiment analysis web services using a common interface: NIF+JSON-LD. Senpy lets you create sentiment analysis web services easily, fast and using a well known API.
As a bonus, senpy services use semantic vocabularies (e.g. `NIF <http://persistence.uni-leipzig.org/nlp2rdf/>`_, `Marl <http://www.gsi.dit.upm.es/ontologies/marl>`_, `Onyx <http://www.gsi.dit.upm.es/ontologies/onyx>`_) and formats (turtle, JSON-LD, xml-rdf).
With Senpy, you can easily turn your sentiment analysis algorithm into a web service, just by creating a new plugin. Have you ever wanted to turn your sentiment analysis algorithms into a service?
With senpy, now you can.
It provides all the tools so you just have to worry about improving your algorithms:
`DEMO on Heroku <http://senpy.herokuapp.com>`_ `See it in action. <http://demos.gsi.dit.upm.es/senpy>`_
Installation Installation
------------ ------------
The stable version can be installed via pip: The stable version can be installed in three ways.
Through PIP
***********
.. code:: bash .. code:: bash
pip install senpy pip install --user senpy
Alternatively, you can use the development version: Alternatively, you can use the development version:
@ -29,31 +32,19 @@ Alternatively, you can use the development version:
git clone git@github.com:gsi-upm/senpy git clone git@github.com:gsi-upm/senpy
cd senpy cd senpy
pip install -r requirements.txt pip install --user .
To install it system-wide, use setuptools: If you want to install senpy globally, use sudo instead of the ``--user`` flag.
.. code:: bash Docker Image
************
Build the image or use the pre-built one: ``docker run -ti -p 5000:5000 balkian/senpy --host 0.0.0.0 --default-plugins``.
python setup.py install To add custom plugins, add a volume and tell senpy where to find the plugins: ``docker run -ti -p 5000:5000 -v <PATH OF PLUGINS>:/plugins balkian/senpy --host 0.0.0.0 --default-plugins -f /plugins``
Usage
If you are using docker, build the image or use the pre-built one:
.. code:: bash
docker run -ti -p 5000:5000 balkian/senpy --host 0.0.0.0 --default-plugins
To add custom plugins, add a volume and tell senpy where to find the plugins:
.. code:: bash
docker run -ti -p 5000:5000 -v <PATH OF PLUGINS:/plugins balkian/senpy --host 0.0.0.0 --default-plugins -f /plugins
Using
----- -----
You can use the modules included in senpy to build your own application.
However, the easiest and recommended way is to just use the command-line tool to load your plugins and launch the server. However, the easiest and recommended way is to just use the command-line tool to load your plugins and launch the server.
.. code:: bash .. code:: bash
@ -70,27 +61,31 @@ or, alternatively:
This will create a server with any modules found in the current path. This will create a server with any modules found in the current path.
For more options, see the `--help` page. For more options, see the `--help` page.
Alternatively, you can use the modules included in senpy to build your own application.
TO-DO Deploying on Heroku
----- -------------------
Use a free heroku instance to share your service with the world.
Just use the example Procfile in this repository, or build your own.
* Improve documentation and generate it with Sphinx
* ReadTheDocs `DEMO on heroku <http://senpy.herokuapp.com>`_
* Improve README
For more information, check out the `documentation <http://senpy.readthedocs.org>`_.
------------------------------------------------------------------------------------
Acknowledgement Acknowledgement
--------------- ---------------
EUROSENTIMENT PROJECT This development has been partially funded by the European Union through the MixedEmotions Project (project number H2020 655632), as part of the `RIA ICT 15 Big data and Open Data Innovation and take-up` programme.
Grant Agreement no: 296277
Starting date: 01/09/2012
Project duration: 24 months
.. image:: logo_grande.png
:target: logo_grande.png
:width: 100px
:alt: Eurosentiment Logo
.. image:: logo_fp7.gif .. image:: img/me.png
:width: 100px :target: http://mixedemotions-project.eu
:target: logo_fp7.gif :height: 100px
:alt: MixedEmotions Logo
.. image:: img/eu-flag.jpg
:height: 100px
:target: http://ec.europa.eu/research/participants/portal/desktop/en/opportunities/index.html

1
docs/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
_build

208
docs/api.rst Normal file
View File

@ -0,0 +1,208 @@
NIF API
=======
.. http:get:: /api
Basic endpoint for sentiment/emotion analysis.
**Example request**:
.. sourcecode:: http
GET /api?input=I%20love%20GSI HTTP/1.1
Host: localhost
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript
{
"@context": [
"http://127.0.0.1/static/context.jsonld",
],
"analysis": [
{
"@id": "SentimentAnalysisExample",
"@type": "marl:SentimentAnalysis",
"dc:language": "en",
"marl:maxPolarityValue": 10.0,
"marl:minPolarityValue": 0.0
}
],
"domain": "wndomains:electronics",
"entries": [
{
"opinions": [
{
"prov:generatedBy": "SentimentAnalysisExample",
"marl:polarityValue": 7.8,
"marl:hasPolarity": "marl:Positive",
"marl:describesObject": "http://www.gsi.dit.upm.es",
}
],
"nif:isString": "I love GSI",
"strings": [
{
"nif:anchorOf": "GSI",
"nif:taIdentRef": "http://www.gsi.dit.upm.es"
}
]
}
]
}
:query i input: No default. Depends on informat and intype
:query f informat: one of `turtle` (default), `text`, `json-ld`
:query t intype: one of `direct` (default), `url`
:query o outformat: one of `turtle` (default), `text`, `json-ld`
:query p prefix: prefix for the URIs
:query algo algorithm: algorithm/plugin to use for the analysis. For a list of options, see :http:get:`/api/plugins`. If not provided, the default plugin will be used (:http:get:`/api/plugins/default`).
:reqheader Accept: the response content type depends on
:mailheader:`Accept` header
:resheader Content-Type: this depends on :mailheader:`Accept`
header of request
:statuscode 200: no error
:statuscode 404: service not found
.. http:post:: /api
The same as :http:get:`/api`.
.. http:get:: /api/plugins
Returns a list of installed plugins.
**Example request**:
.. sourcecode:: http
GET /api/plugins HTTP/1.1
Host: localhost
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
{
"@context": {
...
},
"sentiment140": {
"name": "sentiment140",
"is_activated": true,
"version": "0.1",
"extra_params": {
"@id": "extra_params_sentiment140_0.1",
"language": {
"required": false,
"@id": "lang_sentiment140",
"options": [
"es",
"en",
"auto"
],
"aliases": [
"language",
"l"
]
}
},
"@id": "sentiment140_0.1"
},
"rand": {
"name": "rand",
"is_activated": true,
"version": "0.1",
"extra_params": {
"@id": "extra_params_rand_0.1",
"language": {
"required": false,
"@id": "lang_rand",
"options": [
"es",
"en",
"auto"
],
"aliases": [
"language",
"l"
]
}
},
"@id": "rand_0.1"
}
}
.. http:get:: /api/plugins/<pluginname>
Returns the information of a specific plugin.
**Example request**:
.. sourcecode:: http
GET /api/plugins/rand HTTP/1.1
Host: localhost
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
{
"@id": "rand_0.1",
"extra_params": {
"@id": "extra_params_rand_0.1",
"language": {
"@id": "lang_rand",
"aliases": [
"language",
"l"
],
"options": [
"es",
"en",
"auto"
],
"required": false
}
},
"is_activated": true,
"name": "rand",
"version": "0.1"
}
.. http:get:: /api/plugins/default
Return the information about the default plugin.
.. http:get:: /api/plugins/<pluginname>/{de}activate
{De}activate a plugin.
**Example request**:
.. sourcecode:: http
GET /api/plugins/rand/deactivate HTTP/1.1
Host: localhost
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
{
"@context": {},
"message": "Ok"
}

View File

@ -34,6 +34,7 @@ extensions = [
'sphinx.ext.autodoc', 'sphinx.ext.autodoc',
'sphinx.ext.doctest', 'sphinx.ext.doctest',
'sphinx.ext.todo', 'sphinx.ext.todo',
'sphinxcontrib.httpdomain',
'sphinx.ext.coverage', 'sphinx.ext.coverage',
] ]

View File

@ -9,14 +9,8 @@ Welcome to Senpy's documentation!
Contents: Contents:
.. toctree:: .. toctree::
installation
usage
api
plugins
:maxdepth: 2 :maxdepth: 2
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

27
docs/installation.rst Normal file
View File

@ -0,0 +1,27 @@
Installation
------------
The stable version can be installed in three ways.
Through PIP
***********
.. code:: bash
pip install --user senpy
Alternatively, you can use the development version:
.. code:: bash
git clone git@github.com:gsi-upm/senpy
cd senpy
pip install --user .
If you want to install senpy globally, use sudo instead of the ``--user`` flag.
Docker Image
************
Build the image or use the pre-built one: ``docker run -ti -p 5000:5000 balkian/senpy --host 0.0.0.0 --default-plugins``.
To add custom plugins, add a volume and tell senpy where to find the plugins: ``docker run -ti -p 5000:5000 -v <PATH OF PLUGINS>:/plugins balkian/senpy --host 0.0.0.0 --default-plugins -f /plugins``

4
docs/plugins.rst Normal file
View File

@ -0,0 +1,4 @@
Developing new plugins
----------------------
See the examples at: `<http://github.com/gsi-upm/senpy-plugins-community>`_.

1
docs/requirements.txt Normal file
View File

@ -0,0 +1 @@
sphinxcontrib-httpdomain>=1.4

20
docs/usage.rst Normal file
View File

@ -0,0 +1,20 @@
Usage
-----
The easiest and recommended way is to just use the command-line tool to load your plugins and launch the server.
.. code:: bash
senpy
Or, alternatively:
.. code:: bash
python -m senpy
This will create a server with any modules found in the current path.
For more options, see the `--help` page.
Alternatively, you can use the modules included in senpy to build your own application.

BIN
img/eu-flag.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

828
img/final-logo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 81 KiB

BIN
img/gsi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
img/header.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

View File

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 180 KiB

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

BIN
img/me.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB