Table of Contents
A chatbot is basically software that simulates and processes written and spoken human conversations, allowing users to interact with digital devices as if they were communicating with a real person. The proposed work is FlorenceBOT, a chatbot implemented using python and pyswip. The knowledge of this chatbot is domain-specific and it regards the Cathedral of Santa Maria del Fiore in Florence.
More specific, we provide a software with a UI that allows the user to write (or speak) the question about the specific topic, and read the answer (or listen) almost instantaneously. According to this paper, this chatbot can be classified as:
- Fully interactive: because it is both text and speech based;
- Task-Oriented: because it helps the user to acquire knowledge;
- Rule-based: because it does not rely on a ML technique, but instead it is based on Prolog rules;
- Domain-specific: FlorenceBot has knowledge base about Santa Maria del Fiore.
For a video demo, please look at this file
This section lists any major frameworks/libraries used in this project.
For more details, please read the requirements.txt file
To get your system up and running, follow these simple steps.
You need and environment with python 3.6.16. This is needed to install particular packages versions.
-
As described in the
requirements.txt
file, you should install all the listed packages with the correct version. -
After that, to let the spacy nlp module work properly, it is needed an additional language module installation:
python -m spacy download it_core_news_lg
-
Lastly, to let pyswip work correctly, you need to install SWI-Prolog from the official website.
-
Finally, if everything has been installed and set up correctly, you should be able to run the chatbot:
python ./main.py
These are some of the features we would like to add to this project.
- Add text-to-speech module
- Make the chatbot able to reply to greetings
- Let the IRS to check on web for additional related images
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
This space lists all the helpful resources we would like to give credit to.
- Thanks to this repo, taken as an example baseline from which we developed our system.
- Thanks also to Cultural Stories Web Language - Un Formalismo per rappresentare le storie culturali nel Web