Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions KakaoTalkChats.txt
Original file line number Diff line number Diff line change
@@ -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
66 changes: 51 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -14,16 +20,19 @@ 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/)
- Database : [MySQL 8.0.16](https://www.mysql.com/)
- 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
Expand All @@ -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
Expand Down Expand Up @@ -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**
Expand All @@ -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).
Expand All @@ -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
Binary file added Screenshots/FirstScreenDiscordBot.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Screenshots/SecondScreenDiscordBot.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.