README.rst 5.04 KB
Newer Older
1
.. image:: img/header.png
2
   :width: 100%
3
   :target: http://senpy.gsi.upm.es
4

J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
5
6
7
8
9
10
.. 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
11
.. image:: https://img.shields.io/pypi/l/requests.svg
J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
12
  :target: https://lab.gsi.upm.es/senpy/senpy/
13

J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
14
     
15
Senpy lets you create sentiment analysis web services easily, fast and using a well known API.
J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
16
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).
17

18
Have you ever wanted to turn your sentiment analysis algorithms into a service?
J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
19
With Senpy, now you can.
20
It provides all the tools so you just have to worry about improving your algorithms:
21

22
`See it in action. <http://senpy.gsi.upm.es/>`_
23

24
25
Installation
------------
26
27
28
29
The stable version can be installed in three ways.

Through PIP
***********
30

31
32
.. code:: bash

33
   pip install -U --user senpy
34
35
36
37
38
39

   
Alternatively, you can use the development version:
 
.. code:: bash

40
   git clone http://github.com/gsi-upm/senpy
41
   cd senpy
42
   pip install --user .
43

J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
44
If you want to install Senpy globally, use sudo instead of the ``--user`` flag.
45

46
47
Docker Image
************
48
Build the image or use the pre-built one: ``docker run -ti -p 5000:5000 gsiupm/senpy``.
49

J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
50
51
52
53
54
55
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 gsiupm/senpy -f /plugins``


Compatibility
-------------

J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
56
Senpy should run on any major operating system.
J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
57
Its code is pure Python, and the only limitations are imposed by its dependencies (e.g., nltk, pandas).
58

J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
59
60
61
62
63
64
65
66
67
Currently, the CI/CD pipeline tests the code on:

* GNU/Linux with Python versions 3.4, 3.5, 3.6 and 3.7
* MacOS and homebrew's python3
* Windows 10 and chocolatey's python3

The latest PyPI package is verified to install on Ubuntu, Debian and Arch Linux.

If you have trouble installing Senpy in your platform, see `Having problems?`_.
68
69
70
71

Developing
----------

J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
72
73
Running/debugging
*****************
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
This command will run the senpy container using the latest image available, mounting your current folder so you get your latest code:

.. code:: bash


    # Python 3.5
    make dev
    # Python 2.7
    make dev-2.7

Building a docker image
***********************

.. code:: bash


    # Python 3.5
    make build-3.5
    # Python 2.7
    make build-2.7

Testing
*******

.. code:: bash


    make test

Running
*******
This command will run the senpy server listening on localhost:5000

.. code:: bash


    # Python 3.5
    make run-3.5
    # Python 2.7
    make run-2.7

115
Usage
116
117
118
119
120
121
-----

However, the easiest and recommended way is to just use the command-line tool to load your plugins and launch the server.

.. code:: bash

122

123
124
125
126
127
128
   senpy

or, alternatively:

.. code:: bash

129

130
131
    python -m senpy

132
133
134

This will create a server with any modules found in the current path.
For more options, see the `--help` page.
135

J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
136
Alternatively, you can use the modules included in Senpy to build your own application.
137

138
139
140
141
142
143
144
145
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.


For more information, check out the `documentation <http://senpy.readthedocs.org>`_.
------------------------------------------------------------------------------------
146
147


148
149
150
151
152
153
154
155
156
157
Python 2.x compatibility
------------------------

Keeping compatibility between python 2.7 and 3.x is not always easy, especially for a framework that deals both with text and web requests.
Hence, starting February 2019, this project will no longer make efforts to support python 2.7, which will reach its end of life in 2020.
Most of the functionality should still work, and the compatibility shims will remain for now, but we cannot make any guarantees at this point.
Instead, the maintainers will focus their efforts on keeping the codebase compatible across different Python 3.3+ versions, including upcoming ones.
We apologize for the inconvenience.


J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
158
159
Having problems?
----------------
160
161
162

Please, file a new issue `on GitHub <https://github.com/gsi-upm/senpy/issues>`_ including enough details to reproduce the bug, including:

J. Fernando Sánchez's avatar
J. Fernando Sánchez committed
163
164
165
166
167
* Operating system
* Version of Senpy (or docker tag)
* Installed libraries
* Relevant logs
* A simple code example
168

169
170
Acknowledgement
---------------
171
172
173
174
175
176
177
178
179
180
181
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.


.. image:: img/me.png
    :target: http://mixedemotions-project.eu
    :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