Skip to main content

A sentiment analysis server implementation. Designed to be extensible, so new algorithms and sources can be used.

Project description

img/header.png https://readthedocs.org/projects/senpy/badge/?version=latest https://badge.fury.io/py/senpy.svg https://travis-ci.org/gsi-upm/senpy.svg https://img.shields.io/pypi/l/requests.svg

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

Compatibility

Senpy should run on any major operating system. Its code is pure Python, and the only limitations are imposed by its dependencies (e.g., nltk, pandas).

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 on your platform, see Having problems?.

Developing

Running/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.

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.

Having problems?

Please, file a new issue on GitHub including enough details to reproduce the bug, including:

  • Operating system

  • Version of Senpy (or docker tag)

  • Installed libraries

  • Relevant logs

  • A simple code example

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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

senpy-1.0.5.post2.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

senpy-1.0.5.post2-py2.py3-none-any.whl (1.0 MB view details)

Uploaded Python 2Python 3

File details

Details for the file senpy-1.0.5.post2.tar.gz.

File metadata

  • Download URL: senpy-1.0.5.post2.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.7.13

File hashes

Hashes for senpy-1.0.5.post2.tar.gz
Algorithm Hash digest
SHA256 eda6a38875ed62c7af399cfebd31121a483d3a328a8d471da7fda519834ca465
MD5 cb000d50ccfa8bedc50cd9e8359e7830
BLAKE2b-256 5f008582ac24e8a8f54dff8e69d3e1a4bafc4fc261fbcbf5444459dcafb207e2

See more details on using hashes here.

File details

Details for the file senpy-1.0.5.post2-py2.py3-none-any.whl.

File metadata

  • Download URL: senpy-1.0.5.post2-py2.py3-none-any.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.7.13

File hashes

Hashes for senpy-1.0.5.post2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1ac2db381934f289451c8982dd70619faba65c0269b45e530121c42975d74439
MD5 f87c9385cc9b489adb2a86fff59fe7bc
BLAKE2b-256 4acd3f81281effc1396e0a35c0ac65bb6e6509947e811c77627d316cc98cc829

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page