https://github.com/aashrafh/anees
Multi-turn open-domain Arabic chatbot with a wide set of features.
https://github.com/aashrafh/anees
anees arabic-dialects arabic-nlp chatbot chatbots dialogue-generation gpt-2 multi-turn-dialogue natural-language-understanding nlp
Last synced: 3 months ago
JSON representation
Multi-turn open-domain Arabic chatbot with a wide set of features.
- Host: GitHub
- URL: https://github.com/aashrafh/anees
- Owner: aashrafh
- License: mit
- Created: 2022-03-05T16:41:50.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-29T00:20:30.000Z (almost 2 years ago)
- Last Synced: 2025-02-25T09:24:02.172Z (5 months ago)
- Topics: anees, arabic-dialects, arabic-nlp, chatbot, chatbots, dialogue-generation, gpt-2, multi-turn-dialogue, natural-language-understanding, nlp
- Language: Jupyter Notebook
- Homepage:
- Size: 118 MB
- Stars: 37
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
:robot: Your personal AI friend.
---
# Anees
**Anees** is an Arabic chatbot that can speak to users on different topics or an open-domain multi-turn conversation rather than a specific domain. Anees is your personal AI friend that you can express and witness yourself through a helpful and empathetic conversation.## 📝 Table of Contents
- [Demo](#demo)
- [Architecture](#arch)
- [Datasets](#datasets)
- [Installation](#install)
- [Technology](#tech)Demo 1 | Demo 2
:-: | :-:
|Anees consists of 6 major modules that need to be understood before implementing such a thing. The modules are natural language understanding, emotion classification, intent classification, weather/schedule, recommendation, and natural language generation. Apart from that, there is a connection between each module and the other. Each of these modules is described in detail in the project [documentation](https://github.com/aashrafh/Anees/blob/rest/Anees%20Document.pdf), how they are all connected to each other, and how they represent the system architecture.

We used different datasets for each module that suit the purpose of the module. Some of the used datasets are [ANERcorp](https://camel.abudhabi.nyu.edu/anercorp/), [MovieLens 25M](https://grouplens.org/datasets/movielens/25m/), and [Arramooz](https://github.com/linuxscout/arramooz). You can find the datasets used to fine-tune the GPT-2 model in [this repository](https://github.com/aashrafh/anees-dataset).
To install and run the project:
- For the modules, you need to install [Docker](https://docs.docker.com/engine/install/), [Docker Compose](https://docs.docker.com/compose/install/), and
1. Build the image:
```py
docker-compose build
```
2. Run the image:
```py
docker-compose run
```
- For the client, you need to install [Node.js](https://nodejs.org/en/download/), [Expo](https://docs.expo.dev/get-started/installation/), and then:
1. Install the dependencies:
```py
npm install
```
2. Run the client:
```py
npm start
```
3. Choose between running the client through an emulator or directly on your phone. Also, you can build an APK version for Android using:
```py
expo build:android -t apk
```
or for iOS:
```py
expo build:ios -t archive
```
- Alos, we provided interactive notebooks for each module that you can use to train, visualize, or have an idea of the implementation details.
> Remember to update [`config.py`](https://github.com/aashrafh/Anees/blob/main/modules/config.py) with your [OpenWeatherMap](https://openweathermap.org/) API keys.
## ⛏️ Built Using
- [Python](https://www.python.org/)
- [PyTorch](https://pytorch.org/)
- [scikit-learn](https://scikit-learn.org/stable/)
- [MongoDB](https://www.mongodb.com/)
- [Flask](https://flask.palletsprojects.com/en/2.1.x/)
- [React Native](https://reactnative.dev/)
- [Expo](https://expo.dev/)## Collaboraters
Ahmed Ashraf
Ahmed Sherif
Ahmed Magdy
Abdelrhman Fdl
## AcknowledgmentThis is our graduation project for a Bachelor of Science degree in Computer Engineering from Cairo University, in 2022.