Skip to content
A sentiment and emotion analysis server in Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.makefiles Multiple changes in the API, schemas and UI Apr 4, 2019
docs Update schema examples Apr 9, 2019
example-plugins Multiple changes in the API, schemas and UI Apr 4, 2019
img Started readthedocs and improved README Oct 28, 2015
k8s Multiple changes in the API, schemas and UI Apr 4, 2019
senpy restore hash function in js Apr 4, 2019
tests
.drone.yml
.gitignore Deployment changes Feb 27, 2017
.gitlab-ci.yml Update docs + notebooks Apr 4, 2019
.pre-commit-config.yaml Fixed CI problem Feb 27, 2017
.travis.yml Small tweaks in docs Apr 4, 2019
CHANGELOG.md restore hash function in js Apr 4, 2019
Dockerfile.template Fix schema issues and parameter validation May 16, 2018
LICENSE.txt Refactoring, name change Sep 16, 2014
MANIFEST.in Add license to manifest Apr 4, 2019
Makefile Multiple changes in the API, schemas and UI Apr 4, 2019
NOTICE Refactoring, name change Sep 16, 2014
Procfile Multiple changes in the API, schemas and UI Apr 4, 2019
README.rst
dev-requirements.txt PEP8 compliance Nov 20, 2014
docker-compose.dev.yml
docker-compose.test.yml Allow activation fails Jun 20, 2018
docker-compose.yml Allow activation fails Jun 20, 2018
extra-requirements.txt Multiple changes in the API, schemas and UI Apr 4, 2019
requirements.txt Multiple changes in the API, schemas and UI Apr 4, 2019
setup.cfg Multiple changes in the API, schemas and UI Apr 4, 2019
setup.py
supervisord.conf Files for deployment Nov 5, 2014
test-requirements.txt Multiple changes in the API, schemas and UI Apr 4, 2019

README.rst

img/header.png https://travis-ci.org/gsi-upm/senpy.svg?branch=master

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, Marl, Onyx) and formats (turtle, JSON-LD, xml-rdf).

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:

See it in action.

Installation

The stable version can be installed in three ways.

Through PIP

pip install -U --user senpy

Alternatively, you can use the development version:

git clone http://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 gsiupm/senpy.

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

Developing

Developing/debugging

This command will run the senpy container using the latest image available, mounting your current folder so you get your latest code:

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

Building a docker image

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

Testing

make test

Running

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

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

Usage

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

senpy

or, alternatively:

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.

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.

DEMO on heroku

For more information, check out the documentation.

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.

Acknowledgement

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.

MixedEmotions Logo img/eu-flag.jpg
You can’t perform that action at this time.