Discord bot for detecting and deleting toxic messages
Discussing things you care about can be difficult: the threat of abuse and harassment online means that many people stop expressing themselves and give up on seeking different opinions.
Platforms struggle to effectively facilitate conversations, leading many communities to limit or completely shut down user comments. Toxic or insulting comments are nowhere more evident than the popular platform Discord since it is possible to remain anonymous on Discord.
We try to develop a discord bot that can remove toxic comments and warn users. It can also provide reports to the guild or server owner about all the members whoose comments have been deleted ( not implemented ).
The dataset used for training this bot contains text that may be considered profane, vulgar, or offensive.
View a demo of ToxicBot in action on YouTube (click image below):
- Python 3.6+
pip- Discord Developer Account
$ sh secret_create.sh
$ docker-compose build
$ docker-compose up -dFor installing on macOS or Linux, first clone the repository:
$ git clone https://github.com/ToxicBot-Discord/ToxicBot.gitThen run setup-unix.sh in your local ToxicBot repository:
$ cd ToxicBot
$ sh setup-unix.shYou could also use the make command instead of running the script manually
Source the activate file and launch the app.py Python script:
$ source env/bin/activate
$ python app.pyFor installing on Windows, download and install:
- Python 3.6 (64 Bit Version) from https://www.python.org/ftp/python/3.6.5/python-3.6.5-amd64.exe
gitfor Windows from https://git-scm.com/download/win
Open the "git bash" app
Note: you can right-click on the desktop and choose "git bash here" from the contextual menu
Clone the repository:
$ git clone https://github.com/ToxicBot-Discord/ToxicBot.gitExecute these commands in git bash:
$ cd ToxicBot
$ sh setup-win.shPaste your Discord token when prompted by the setup-win.sh script.
When the installation is done, start the app by executing these commands in git bash:
$ cd ToxicBot
$ . env/Scripts/activate
$ python app.pyBelow are the commands that can be used with ToxicBot. Just type the command in the channel's textbox:
| Command | Accessible By | Description |
|---|---|---|
/report |
All users | Displays the link to the ToxicBot GitHub project page to report bugs and issues |
/info |
All users | Displays information about the current running bot |
/help |
All users | Displays the list of available commands |
/config |
Server owners | Displays ToxicBot's current configuration settings |
/setcount N |
Server owners | Sets the number of toxic comments before suspending user ( ex: /setcount 10) |
/setdays N |
Server owners | Sets the number of days before toxic comments count for a user is reset ( ex: /setdays 15) |
/toptoxic N |
Server owners | Returns the top N toxic comments by user for a server ( ex: /toptoxic 5) |
- GitHub: https://github.com/ToxicBot-Discord/Toxic-Comment-Classification
- Kaggle: https://www.kaggle.com/c/jigsaw-toxic-comment-classification-challenge/
- Algorithm: GloVe Embedding and Recurrent Neural Network ( LSTM )
This is model used in ToxicBot.
- GitHub: https://github.com/ToxicBot-Discord/Unintended-Bias-in-Toxicity-Classification
- Kaggle: https://www.kaggle.com/c/jigsaw-unintended-bias-in-toxicity-classification
- Algorithm: GloVe Embedding and Recurrent Neural Network ( LSTM )
- GitHub: https://github.com/ToxicBot-Discord/ToxicBot/
- Discord: https://discord.com/
