• Stars
    star
    13,919
  • Rank 2,086 (Top 0.05 %)
  • Language
    Python
  • License
    BSD 3-Clause "New...
  • Created over 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ChatterBot is a machine learning, conversational dialog engine for creating chat bots

ChatterBot: Machine learning in Python

ChatterBot

ChatterBot is a machine-learning based conversational dialog engine build in Python which makes it possible to generate responses based on collections of known conversations. The language independent design of ChatterBot allows it to be trained to speak any language.

Package Version Python 3.6 Django 2.0 Requirements Status Build Status Documentation Status Coverage Status Code Climate Join the chat at https://gitter.im/chatterbot/Lobby

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?

How it works

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 returns the most likely response to that statement based on how frequently each response is issued by the people the bot communicates with.

Installation

This package can be installed from PyPi by running:

pip install chatterbot

Basic Usage

from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer

chatbot = ChatBot('Ron Obvious')

# Create a new trainer for the chatbot
trainer = ChatterBotCorpusTrainer(chatbot)

# Train the chatbot based on the english corpus
trainer.train("chatterbot.corpus.english")

# Get a response to an input statement
chatbot.get_response("Hello, how are you today?")

Training data

ChatterBot comes with a data utility module that can be used to train chat bots. At the moment there is training data for over a dozen languages in this module. Contributions of additional training data or training data in other languages would be greatly appreciated. Take a look at the data files in the chatterbot-corpus package if you are interested in contributing.

from chatterbot.trainers import ChatterBotCorpusTrainer

# Create a new trainer for the chatbot
trainer = ChatterBotCorpusTrainer(chatbot)

# Train based on the english corpus
trainer.train("chatterbot.corpus.english")

# Train based on english greetings corpus
trainer.train("chatterbot.corpus.english.greetings")

# Train based on the english conversations corpus
trainer.train("chatterbot.corpus.english.conversations")

Corpus contributions are welcome! Please make a pull request.

Documentation

View the documentation for ChatterBot on Read the Docs.

To build the documentation yourself using Sphinx, run:

sphinx-build -b html docs/ build/

Examples

For examples, see the examples directory in this project's git repository.

There is also an example Django project using ChatterBot, as well as an example Flask project using ChatterBot.

History

See release notes for changes https://github.com/gunthercox/ChatterBot/releases

Development pattern for contributors

  1. Create a fork of the main ChatterBot repository on GitHub.
  2. Make your changes in a branch named something different from master, e.g. create a new branch my-pull-request.
  3. Create a pull request.
  4. Please follow the Python style guide for PEP-8.
  5. Use the projects built-in automated testing. to help make sure that your contribution is free from errors.

License

ChatterBot is licensed under the BSD 3-clause license.

More Repositories

1

chatterbot-corpus

A multilingual dialog corpus
Python
1,346
star
2

chatterbot-voice

A example of verbal communication using ChatterBot
108
star
3

Salvius

An open source humanoid robot made from recycled parts and open source technology
Python
87
star
4

jsondb

JSON formated file database
Python
63
star
5

mathparse

A Python library for evaluating natural language mathematical equations
Python
50
star
6

chatterbot-weather

A ChatterBot logic adapter that returns information about the current weather
Python
29
star
7

ArduinoNeuronLibrary

Simulate neural activity with Arduino
C++
26
star
8

ocr-service

A stand alone character recognition micro-service with a RESTful API
Python
21
star
9

django-bootstrap-base-template

A common base template for Django web apps using Bootstrap
Python
19
star
10

HackathonPack

Everything you need to get to a hackathon
18
star
11

chicken-photos

A collection of chicken photos. Useful for training computer vision models to identify chickens.
13
star
12

NoCoin

No Coin is the most secure, inflation-proof crypto currency. Risk nothing by having no coins.
10
star
13

DataHub

A fast data feed designed for machine consumption
Python
9
star
14

jquery-network-camera

A jQuery plugin for rendering network camera feeds on an html canvas.
JavaScript
6
star
15

AttitudeEngine

Language independent sentiment analysis for text statements
Python
6
star
16

bootstrap-hud-theme

A bootstrap theme inspired by the ocular feedback of killer robots.
JavaScript
5
star
17

iot-analytics

Analytics for your robot or IOT device
Python
5
star
18

SoundBox

Musical querty keyboard in Java
Java
4
star
19

SpeakForMe

Text to speech using real voices
JavaScript
4
star
20

NewYorkStartupIndex

The New York Startup Index ranks locations within New York City and surrounding areas to determine how suitable they are for a new startup.
HTML
4
star
21

RobotPartsManager

An API endpoint for managing an inventory of robot parts
Python
3
star
22

ShadowHero

Python
3
star
23

environment-file

Import environment variables from the environment, default to ones defined in a file.
Python
2
star
24

FOSSPrioritySupport

Priority support services for free and open source applications
2
star
25

bravissimo

Theme for Jekyll sites (gem based)
CSS
2
star
26

timebase.io

HTML
2
star
27

PeriodicTable

A Periodic Table of Elements using Angular JS
JavaScript
1
star
28

setsuperuser

Django command for setting the super user from environment variables
Python
1
star
29

hero

Super hero robot
1
star
30

django-rest-requirements

Python requirements for creating APIs with Django Rest Framework, pinned to stable version ranges
Python
1
star
31

GAS

Government as a service
HTML
1
star
32

Cookbook

A delicious framework for showcasing code recipes
CSS
1
star