{"id":27350617,"url":"https://github.com/robgc/sento-processing","last_synced_at":"2025-07-26T09:34:58.513Z","repository":{"id":34320424,"uuid":"176019091","full_name":"robgc/sento-processing","owner":"robgc","description":"A Natural Language Processing tool designed to perform sentiment analysis on tweets and store the results obtained.","archived":false,"fork":false,"pushed_at":"2022-12-08T04:53:30.000Z","size":101,"stargazers_count":1,"open_issues_count":5,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-12T19:58:27.026Z","etag":null,"topics":["async","asyncpg","nlp","python","sentiment-analysis","spacy","spacy2"],"latest_commit_sha":null,"homepage":"https://robgc.github.io/sento-blog/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robgc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-03-16T20:04:06.000Z","updated_at":"2019-06-24T17:50:50.000Z","dependencies_parsed_at":"2022-08-28T00:23:07.060Z","dependency_job_id":null,"html_url":"https://github.com/robgc/sento-processing","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/robgc/sento-processing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robgc%2Fsento-processing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robgc%2Fsento-processing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robgc%2Fsento-processing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robgc%2Fsento-processing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robgc","download_url":"https://codeload.github.com/robgc/sento-processing/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robgc%2Fsento-processing/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267145734,"owners_count":24042651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","asyncpg","nlp","python","sentiment-analysis","spacy","spacy2"],"created_at":"2025-04-12T19:58:24.566Z","updated_at":"2025-07-26T09:34:58.483Z","avatar_url":"https://github.com/robgc.png","language":"Python","readme":"# Sento Processing\n\n*This project is part of Sento's backend*.\n\nA Natural Language Processing tool designed to perform sentiment analysis\non tweets and store the results obtained.\n\n# Table of contents\n\n# Prerequisites\n\nSento Processing requires a spaCy model that categorizes text based on the possible sentiment\nthat it holds. The model must return the probabilities of three categories:\n\n- `P` for positive sentiment.\n- `N` for negative sentiment.\n- `NEU` for neutral sentiment.\n\nIf you wish to create a spaCy model that can perform this task, in the `sento_processing/training`\ndirectory you have some scripts used to develop a model for performing sentiment analysis of\ntweets written in spanish. Treat them as an example that may be outdated, as the spaCy team could\nhave changed their API and those scripts may no longer work. You can store your models in the\n`models` directory in the repository root, this directory will be ignored by git.\n\nProcessing requires a PostgreSQL database initialised previously using the instructions\navailable in [Sento API's readme](https://github.com/robgc/sento-api).\n\n# Executing the tool\n\n## Choosing your environment\n\nYou have two options:\n\n- Running the Docker container using Docker Compose: `docker-compose up -d`.\n  You need the following software installed:\n  - _Docker Engine 17.12.0 or greater required_.\n  - _Docker Compose 1.18.0 or greater required_.\n\n- Running locally on your machine, requiring:\n  - Python 3.7 or greater.\n  - Pipenv.\n\n## Configuring the tool\n\nCreate a `config.ini` file from a copy of `config.example.ini` and adjust\nthe configuration according to your needs. If you use the PostgreSQL container\nprovided in Sento API instructions, let the default value of `sento-db` in the\n`[postgres].host` section of your `config.ini`.\n\n## Running the tool\n\n- **With Docker**: run `docker-compose up -d`, this will compile the container image for you if\n  you have not done it previously. If you make any changes to your `config.ini` after running\n  the container you will need to stop it, remove it and recreate the container's image before\n  creating another container instance. This container will try to connect\n  to the `sento-net` Docker network, where the PostGIS container is listening for connections.\n\n- **Running locally**:\n  - Install the necessary dependencies in a virtual environment with `pipenv sync`.\n  - Run the following command `pipenv run sento_processing/main.py`, this will start the tool.\n\n# Acknowledgements\n\nThe training and evaluation datasets used for creating models for Sento Processing come from\nthe Spanish Society for Natural Language Processing (SEPLN, in Spain). They were made for\nthe Workshop on Semantic Analysis at SEPLN (TASS, in Spain). You can download them\nfrom their [official website](http://www.sepln.org/workshops/tass/).\n\n# License\n\nThe source code of this project is licensed under the GNU Affero General Public License v3.0.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobgc%2Fsento-processing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobgc%2Fsento-processing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobgc%2Fsento-processing/lists"}