About ChatterBot¶
ChatterBot is a Python library that makes it easy to generate automated responses to a user’s input. ChatterBot uses a selection of machine learning algorithms to produce different types of responses. This makes it easy for developers to create chat bots and automate conversations with users. For more details about the ideas and concepts behind ChatterBot see the process flow diagram.
An example of typical input would be something like this:
user: Good morning! How are you doing?
bot: I am doing very well, thank you for asking.
user: You're welcome.
bot: Do you like hats?
Originally, ChatterBot was created as a part of the codebase for the humanoid robot Salvius. As the project grew, the chatterbot
library was released as a separate open-source project.
Language Independence¶
The language independent design of ChatterBot allows it to be trained to speak any language. Additionally, the machine-learning nature of ChatterBot allows an agent instance to improve it’s own knowledge of possible responses as it interacts with humans and other sources of informative data.
How ChatterBot Works¶
ChatterBot is a Python library designed to make it easy to create software that can engage in conversation.
An untrained instance of ChatterBot starts off with no knowledge of how to communicate. Each time a user enters a statement, the library saves the text that they entered and the text that the statement was in response to. As ChatterBot receives more input the number of responses that it can reply and the accuracy of each response in relation to the input statement increase.
The program selects the closest matching response by searching for the closest matching known statement that matches the input, it then chooses a response from the selection of known responses to that statement.
Process flow diagram¶
Contents:¶
- Installation
- Quick Start Guide
- ChatterBot Tutorial
- Examples
- Training
- Preprocessors
- Logic Adapters
- Storage Adapters
- Text Search
- Creating a new storage adapter
- Common storage adapter attributes
StorageAdapter
StorageAdapter.AdapterMethodNotImplementedError
StorageAdapter.EmptyDatabaseException
StorageAdapter.count()
StorageAdapter.create()
StorageAdapter.create_many()
StorageAdapter.drop()
StorageAdapter.filter()
StorageAdapter.get_model()
StorageAdapter.get_object()
StorageAdapter.get_random()
StorageAdapter.remove()
StorageAdapter.update()
- SQL Storage Adapter
SQLStorageAdapter
SQLStorageAdapter.count()
SQLStorageAdapter.create()
SQLStorageAdapter.create_database()
SQLStorageAdapter.create_many()
SQLStorageAdapter.drop()
SQLStorageAdapter.filter()
SQLStorageAdapter.get_random()
SQLStorageAdapter.get_statement_model()
SQLStorageAdapter.get_tag_model()
SQLStorageAdapter.remove()
SQLStorageAdapter.update()
- MongoDB Storage Adapter
MongoDatabaseAdapter
MongoDatabaseAdapter.count()
MongoDatabaseAdapter.create()
MongoDatabaseAdapter.create_many()
MongoDatabaseAdapter.drop()
MongoDatabaseAdapter.filter()
MongoDatabaseAdapter.get_random()
MongoDatabaseAdapter.get_statement_model()
MongoDatabaseAdapter.mongo_to_object()
MongoDatabaseAdapter.remove()
MongoDatabaseAdapter.update()
- Database Migrations
- Filters
- ChatterBot
- Conversations
- Comparisons
- Utility Methods
- ChatterBot Corpus
- Django Integration
- Frequently Asked Questions
- Command line tools
- Development
- Glossary
Report an Issue¶
Please direct all bug reports and feature requests to the project’s issue tracker on GitHub.