{"id":16393247,"url":"https://github.com/jedirhymetrix/profanityfilter","last_synced_at":"2025-10-30T18:55:20.335Z","repository":{"id":133359618,"uuid":"117431683","full_name":"JediRhymeTrix/ProfanityFilter","owner":"JediRhymeTrix","description":"Simple profanity filter in python","archived":false,"fork":false,"pushed_at":"2021-05-18T09:23:45.000Z","size":22887,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-30T18:55:19.628Z","etag":null,"topics":["machine-learning","nlp","profanity-filter","python","rest-api","sentiment-analysis","wsd"],"latest_commit_sha":null,"homepage":null,"language":"OpenEdge ABL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JediRhymeTrix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-14T13:17:16.000Z","updated_at":"2023-02-28T01:38:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"a8cfe762-af1f-4b79-b329-51cc5d0db006","html_url":"https://github.com/JediRhymeTrix/ProfanityFilter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JediRhymeTrix/ProfanityFilter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JediRhymeTrix%2FProfanityFilter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JediRhymeTrix%2FProfanityFilter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JediRhymeTrix%2FProfanityFilter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JediRhymeTrix%2FProfanityFilter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JediRhymeTrix","download_url":"https://codeload.github.com/JediRhymeTrix/ProfanityFilter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JediRhymeTrix%2FProfanityFilter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281862825,"owners_count":26574710,"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-10-30T02:00:06.501Z","response_time":61,"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":["machine-learning","nlp","profanity-filter","python","rest-api","sentiment-analysis","wsd"],"created_at":"2024-10-11T04:52:45.352Z","updated_at":"2025-10-30T18:55:20.278Z","avatar_url":"https://github.com/JediRhymeTrix.png","language":"OpenEdge ABL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ProfanityFilter\nSimple profanity filter and sentiment classifier in python\n\nNOTE: To add words to the database, add the newline separated words to `data/feed_list.txt` and run `FeedList.py` with 2-letter language code as command line\nargument. \\\neg. `python FeedList.py -l en`\n## Instructions:\n\n- \u003ch3\u003eDocker:\u003c/h3\u003e \n    - Build: `docker-compose build` \n    - Run: `docker-compose up` \n- ### API: \n    - URL: [http://localhost:5000/](http://localhost:5000/) \n    - Endpoints:  \n        - **/process** ```[\"POST\"]```\n            * *request* - JSON in the following format:\n            \n                        ````json\n                            {\n                                \"post\": \u003ctext\u003e,\n                                \"options\": [\"filter\", \"sentiment\" / \"sentiment_heavy\"],\n                                \"wordlist_url\": \u003curl of external newline-separated wordlist(optional)\u003e,\n                                \"ignore_words_url\": \u003curl of newline-separated list of words to ignore(optional)\u003e\n                            }\n                        ```\n            * *response* - JSON in the following format:\n                        \n                        if \"sentiment\" in request:\n                        ```json\n                            {\n                                \"profanities\": [\u003clist of words found\u003e],\n                                \"sentiment\": \n                                    {\n                                        \"confidence\": \"med\" / \"high\" / \"low\",\n                                        \"polarity\": -1 to +1 (-ve to +ve)\n                                    }\n                            }\n                        ```\n\n                    \n                        if \"sentiment_heavy\" in request:\n                        ```json\n                            {\n                                \"profanities\": [\u003clist of words found\u003e],\n                                \"sentiment\": \n                                    {\n                                        \"polarity\": -1 to +1 (-ve to +ve)\n                                    }\n                            }\n                        ```\n\n\n        **NOTE**: ```sentiment_heavy``` is *slow* but more accurate. use ```sentiment``` first and then ```sentiment_heavy``` can be used based on the confidence level returned.\n        \n        Meanings of *confidence levels*:\n        - high: **high polarity** and **low subjectivity**\n        - med: **high polarity** and **high subjectivity** (classification is mostly correct but exact score may be inaccurate) - ```sentiment_heavy``` might give a better score.\n        - low: **low polarity** and **high subjectivity** - low accuracy possible. Use ```sentiment_heavy``` instead.\n\n\n    ## Examples:\n\n    1. \n    ```json\n    req: {\n\t        \"post\": \"Well, I completely disagree with this “wonderful” lady who doesn’t know anything and acts like she has never set foot in Spain. God, I’d like to gag her! fuck chutiya\",\n\t        \"options\": [\"filter\"],\n         }\n\n    res: {\n            \"profanities\": [\n                \"fuck\",\n                \"chutiya\"\n            ],\n            \n        }\n    ```\n    \n    2. \n    ```json\n    req: {\n\t        \"post\": \"Well, I completely disagree with this “wonderful” lady who doesn’t know anything and acts like she has never set foot in Spain. God, I’d like to gag her! fuck chutiya\",\n\t        \"options\": [\"filter\"],\n            \"url\": \"https://raw.githubusercontent.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words/master/en\"\n         }\n\n    res: {\n            \"profanities\": [\n                \"fuck\",\n                \"chutiya\"\n            ],\n            \n        }\n    ```\n\n    3. \n    ```json\n    req: {\n\t        \"post\": \"Well, I completely disagree with this “wonderful” lady who doesn’t know anything and acts like she has never set foot in Spain. God, I’d like to gag her! fuck chutiya\",\n\t        \"options\": [\"filter\", \"sentiment\"],\n            \"url\": \"https://raw.githubusercontent.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words/master/en\"\n         }\n\n    res: {\n            \"profanities\": [\n                \"fuck\",\n                \"chutiya\"\n            ],\n            \"sentiment\": {\n                \"confidence\": \"low\",\n                \"polarity\": 0.2\n            }\n         }\n    ```\n\n    4. \n    ```json\n    req: {\n\t        \"post\": \"Well, I completely disagree with this “wonderful” lady who doesn’t know anything and acts like she has never set foot in Spain. God, I’d like to gag her! fuck chutiya\",\n\t        \"options\": [\"filter\", \"sentiment_heavy\"],\n            \"url\": \"https://raw.githubusercontent.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words/master/en\"\n         }\n\n    res: {\n            \"profanities\": [\n                \"fuck\",\n                \"chutiya\"\n            ],\n            \"sentiment\": {\n                \"polarity\": -0.8\n            }\n         }\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedirhymetrix%2Fprofanityfilter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjedirhymetrix%2Fprofanityfilter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedirhymetrix%2Fprofanityfilter/lists"}