Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bniladridas/chatbot

The chatbot is designed to engage in conversations with users based on predefined patterns and responses.
https://github.com/bniladridas/chatbot

algorithms data-structures nlp programming

Last synced: about 1 month ago
JSON representation

The chatbot is designed to engage in conversations with users based on predefined patterns and responses.

Awesome Lists containing this project

README

        

# πŸš€ Ultra-Premium README for Chatbot Using NLTK

Welcome to **Chatbot using NLTK**, a high-quality chatbot crafted with Python and the NLTK library. This bot interacts with users through intelligent conversation, leveraging predefined patterns and responses. By combining the power of regular expressions for pattern matching and NLTK's natural language processing, this project showcases one of the most fundamental yet effective approaches in chatbot development.


Python
NLTK
Jupyter Notebook
JSON File
Git
Linux
Bash

## πŸ› οΈ Installation & Setup

**Pre-requisites:**
- Ensure Python is installed on your machine. If not, [download it here](https://www.python.org/downloads/).

**Install the necessary dependencies:**
```
pip install nltk
```

**Clone the repository:**
```bash
git clone https://github.com/niladrridas/chatbot
cd chatbot
```

## πŸ’» Running the Chatbot

To interact with the chatbot, follow these simple steps:

1. **Jupyter Notebook:**
```bash
jupyter notebook test1.ipynb
```

2. **Python Script:**
```bash
python test1.py
```

**Chatbot Interaction:**
You can converse with the chatbot via terminal or within your Jupyter notebook, and even debug it in IDEs such as [PyCharm](https://www.jetbrains.com/pycharm/), [VS Code](https://code.visualstudio.com/), or [other IDEs](https://aws.amazon.com/what-is/ide/).

## πŸš€ Advantages

1. **Ease of Setup**: The project provides clear instructions for installation and setup, making it easy for users to get started.

2. **Versatile Interaction**: Users can interact with the chatbot through a Jupyter Notebook or a Python script, offering flexibility in usage.

3. **Customizability**: The chatbot supports dynamic addition of new patterns and responses, allowing users to extend and customize its capabilities.

4. **Educational Value**: The project leverages NLTK, a powerful library for natural language processing, making it a valuable learning resource for those interested in NLP.

5. **Cross-Platform Compatibility**: The project can be run on various platforms, including Linux, and is compatible with multiple IDEs like PyCharm and VS Code.

6. **Rich Documentation**: The README includes detailed documentation, including a communication flow diagram and references to academic resources, enhancing the project's educational value.

7. **Open Source**: The project is open-source and available under the MIT License, encouraging community contributions and collaboration.

8. **Feature-Rich**: The chatbot includes several built-in features such as greeting users, self-identification, emotional recognition, and handling common queries.

## ✨ Features

- Greets users: "hello", "hi", "hey".
- Self-identifies when asked its name.
- Recognizes and reacts to emotional inputs like happiness or excitement.
- Handles common queries like age, weather, games, and world leaders.
- Supports dynamic addition of new patterns and responses.
- Extensible and customizable!

## πŸ› οΈ Extend the Chatbot

Enhance the chatbot’s capabilities by adding your own custom patterns and responses. The `add_pattern()` function makes this process seamless:

```python
add_pattern(r"(.*)", ["Your custom response here"])
```

## πŸ”„ Communication Flow Diagram

The following flow diagram illustrates a typical conversation with the chatbot:

```
sequenceDiagram
participant User
participant Chatbot

User ->> Chatbot: "Hello"
Chatbot ->> User: "Hello!"
User ->> Chatbot: "What's your name?"
Chatbot ->> User: "I'm Part-time Bot!"
User ->> Chatbot: "I'm feeling happy!"
Chatbot ->> User: "That's wonderful!"
User ->> Chatbot: "quit"
Chatbot ->> User: "Goodbye! It was nice chatting with you."
```

## 🧠 Academic Resources

### Leading Journals:

1. [ACM Transactions on Interactive Intelligent Systems (TiiS)](https://dl.acm.org/journal/tiis)
2. [Journal of Artificial Intelligence Research (JAIR)](https://www.jair.org/index.php/jair)
3. [IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)](https://www.computer.org/csdl/journal/tp)
4. [Natural Language Engineering (NLE)](https://www.cambridge.org/core/journals/natural-language-engineering)
5. [Journal of Machine Learning Research (JMLR)](https://www.jmlr.org/)
6. [Computational Linguistics (CL)](https://www.mitpressjournals.org/loi/coli)
7. [ACM Transactions on Speech and Language Processing (TSLP)](https://dl.acm.org/journal/tslp)
8. [Information Retrieval Journal](https://www.springer.com/journal/10791)
9. [Expert Systems with Applications](https://www.journals.elsevier.com/expert-systems-with-applications)

### Top Conferences:

1. [EMNLP](https://www.aclweb.org/anthology/events/emnlp-2021/) – Empirical Methods in Natural Language Processing
2. [ACL](https://www.aclweb.org/anthology/2021.acl-main/) – Annual Meeting of the Association for Computational Linguistics
3. [COLING](https://coling2022.org/) – International Conference on Computational Linguistics
4. [IUI](https://iui.acm.org/) – Intelligent User Interfaces
5. [CHI](https://chi2022.acm.org/) – Human Factors in Computing Systems
6. [WSDM](https://www.wsdm-conference.org/) – Web Search and Data Mining
7. [LREC](https://lrec2022.lrec-conf.org/) – Language Resources and Evaluation
8. [CUI](https://cui.acm.org/) – Conversational User Interfaces
9. [IJCAI](https://ijcai.org/) – International Joint Conference on Artificial Intelligence
10. [CIKM](https://www.cikm2022.org/) – Information and Knowledge Management

## πŸ“œ License

This project is open-source and available under the [MIT License](/LICENSE).

---

Feel free to explore, extend, and contribute! Let's bring conversations to life through the power of Python and NLTK. 🌟