diff --git a/KakaoTalkChats.txt b/KakaoTalkChats.txt new file mode 100644 index 0000000..a04e066 --- /dev/null +++ b/KakaoTalkChats.txt @@ -0,0 +1,36 @@ +KakaoTalk Chats Team +Date Saved : 5 June 2019, 3:22 PM + + +14 October 2018, 7:29 PM +14 October 2018, 7:29 PM, M invited W and A. +14 October 2018, 7:31 PM, A : McDo ? +14 October 2018, 7:35 PM, C : Ouai on va Mac do +14 October 2018, 7:35 PM, A : on vient +14 October 2018, 7:36 PM, C : K +14 October 2018, 7:36 PM, A : Now ? +14 October 2018, 7:43 PM, A : Je suis déjà en bas je vous attend +14 October 2018, 7:52 PM, C : On y ai déjà mais genre on mange en 5min et on remonte +14 October 2018, 8:57 PM, V : Photo +14 October 2018, 8:57 PM, V : Pour l'ARC, +J'ai suivis ça niquel avec C +14 October 2018, 8:58 PM, P : ok merci bro +14 October 2018, 8:58 PM, V : No problemo +14 October 2018, 8:58 PM, V : :p + +15 October 2018, 10:43 AM +15 October 2018, 10:43 AM, M : Photo +15 October 2018, 11:21 AM, V : Le premium à l'air cool + +15 October 2018, 11:21 AM, V : ! +15 October 2018, 11:22 AM, M : Oui +15 October 2018, 11:23 AM, V : Perso je vais descendre manger soon, Premium ? :p +15 October 2018, 11:23 AM, C : dans 30mins ! +15 October 2018, 11:24 AM, V : Nan mais j'ai cours à midi :'( +15 October 2018, 11:24 AM, C : :( +15 October 2018, 11:24 AM, V : Ma vie est nulle xD +15 October 2018, 11:25 AM, M : Avec W on attend A et on go premium +15 October 2018, 11:25 AM, G : Mais nan tu vas avoir le super expo sur les dramas. Ça va etre genial. +15 October 2018, 11:25 AM, V : XDD +15 October 2018, 11:25 AM, V : Ouais ok je descends pour Premium aussi :) +15 October 2018, 11:27 AM, M : Mais A à cours jusqu'à 12h +15 October 2018, 11:28 AM, V : Ah bon bah je go manger Premium solo xD \ No newline at end of file diff --git a/README.md b/README.md index 3699051..d85920c 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,12 @@ Discord bot for filtering messages and display only relevant messages. The bot will read the Discord conversation, and according to its criterias (machine learning), choose interesting messages to display in a special channel. +## DaVinci Competition +This project is a participation to DaVinci competition, +From "The DaVinci Learning Innovation Center". +June 2019, South Korea, Seoul. +You can find the PowerPoint used for the presentation to the jury [here](./NLP%20Final%20Presentation.pptx). + ## Motivation This project was created following the observation that it's difficult to follow a Discord conversation with many members without spending hours there. We decided to do something about it. @@ -14,8 +20,11 @@ The Discord bot, based on maching learning, will treat data that we give it, and ## Technologies used - Bot discord - - [Discord](https://discordapp.com/) - Language : [Python](https://www.python.org/) + - Platform : [Discord](https://discordapp.com/) + - Natural Language Processing : [Natural Language Toolkit](https://www.nltk.org/) + - Database : [SQLAlchemy](https://www.sqlalchemy.org/) + - Database : [PyMySQL](https://github.com/PyMySQL/PyMySQL) - Data Generator - Language : [Java 11](https://www.java.com) - GUI : [JavaFX 11.0.1](https://openjfx.io/) @@ -23,7 +32,7 @@ The Discord bot, based on maching learning, will treat data that we give it, and - Compilation : [Gradle 5.4.1](https://gradle.org/) ## Features -- Discord Bot. +- Discord Bot, used for filtering Discord messages. - Data Generation, used for trainning Discord Bot. ## Screenshots @@ -34,6 +43,12 @@ The Discord bot, based on maching learning, will treat data that we give it, and ![Screenshot](./Screenshots/FirstScreenDataGenerator.PNG) ![Screenshot](./Screenshots/SecondScreenDataGenerator.PNG) +**Discord Bot** + + +![Screenshot](./Screenshots/FirstScreenDiscordBot.PNG) +![Screenshot](./Screenshots/SecondScreenDiscordBot.PNG) + ## Installation **Data Generator** 1. Install MySQL @@ -62,11 +77,23 @@ The Discord bot, based on maching learning, will treat data that we give it, and ``` ./gradlew jar ``` - - Jar will be generated in "[YourLocalPath]/SpamFilterBot/DataGenerator/build/libs/" with name dataGenerator-[current version].jar. + - Jar will be generated in `"[YourLocalPath]/SpamFilterBot/DataGenerator/build/libs/"` with name `dataGenerator-[current version].jar`. 4. You can run it, **enjoy** ! **Discord bot** - + 1. Install [Python](https://www.python.org/downloads/) + 2. Install [PIP](https://pip.pypa.io/en/stable/) + 3. Install the dependencies + - **Windows / Mac / Linux** + - Open a terminal. + - Write and execute : + ``` + cd /[YourLocalPath]/SpamFilterBot/DiscordBot/src/ + ``` + - Write and execute : + ``` + pip install -r requirements.txt + ``` ## How to use? **Data Generator** @@ -76,15 +103,24 @@ The Discord bot, based on maching learning, will treat data that we give it, and - If database exists, software will connect to it and use it later. - If don't write a name, it will be "data" by default. 3. Click on **Choose a file** button. - 4. Select a KakaoTalk file with txt extension. If you haven't a KakaoTalk File, you can export it from [KakaoTalk](https://cs.kakao.com/helps?articleId=1073183090&category=234&device=2&locale=en&service=8) + 4. Select a KakaoTalk file with txt extension. If you haven't a KakaoTalk File, you can export it from [KakaoTalk](https://cs.kakao.com/helps?articleId=1073183090&category=234&device=2&locale=en&service=8) or use example file [here](./KakaoTalkChats.txt) 5. Wait processing of parsing file, and generation/connection on MySQL database. 6. The interface will change, now you can judge the interesting message by selecting yes or no for each message. 7. You can change of page at the end of the interface by clicking on number page, or directional arrows. - 8. You can close the software, and run it later, all modifications will be save on database in live. - + 8. You can close the software, and run it later, all modifications will be save on database in live. + **Discord bot** - 1. Install the dependencies using `pip install -r requirements.txt` - 2. Launch the bot using `python main.py` + 1. launch the bot : + - **Windows / Mac / Linux** + - Open a terminal. + - Write and execute : + ``` + cd /[YourLocalPath]/SpamFilterBot/DiscordBot/src/ + ``` + - Write and execute : + ``` + python main.py + ``` ## Why KakaoTalk file ? We decided to use KakaoTalk file for generating data because it's the current platform we use for communication (so bigger data). @@ -94,9 +130,9 @@ Parsing class, [here](./DataGenerator/src/main/java/dataGenerator/ParsingMessage Discord bot because Discord is popular, have a great documentation, in English (KakaoTalk documentation is in Korean for major parts). ## Contributors -[@Sugihiru](https://github.com/Sugihiru) - 50181588 -[@VianneyDoleans](https://github.com/VianneyDoleans) - 50181551 -[@Hardkaise](https://github.com/Hardkaise) - 50181586 -Philippe - 50181563 -Walter - 50181549 -Alexis - 50181595 +[@Sugihiru](https://github.com/Sugihiru) - 50181588 +[@VianneyDoleans](https://github.com/VianneyDoleans) - 50181551 +[@Hardkaise](https://github.com/Hardkaise) - 50181586 +Philippe - 50181563 +Walter - 50181549 +Alexis - 50181595 diff --git a/Screenshots/FirstScreenDiscordBot.PNG b/Screenshots/FirstScreenDiscordBot.PNG new file mode 100644 index 0000000..8e9d937 Binary files /dev/null and b/Screenshots/FirstScreenDiscordBot.PNG differ diff --git a/Screenshots/SecondScreenDiscordBot.PNG b/Screenshots/SecondScreenDiscordBot.PNG new file mode 100644 index 0000000..9668c96 Binary files /dev/null and b/Screenshots/SecondScreenDiscordBot.PNG differ