Pythonでchatterbotを作成する


私はPythonの世界にかなり新しいです、そして、主題に関してコース材料を見ることから離れて、私は私が私自身に挑戦すると思いました.私は今朝、数時間、私の新しいアドレスに私のブロードバンドを移動する会社に連絡し、いくつかの質問が完了した後に行われた自動チャットボットに遭遇したが、それらの質問のいくつかは無関係で、時間がかかるので、私は私は自分自身を構築するために私の新しいskillsetを持っていると思った!
このポストは、コードのブレークダウンと私が正確に何をして、うまくいけばあなたを助けると理解する方法でもあります.
私が作る1つのポイントは、Pythonがパッケージの巨大なライブラリを持っていることです!私は正直であると思います、そして、あなたが何かを作ることについて考えるならば、私が野生でそこに確かであると確信するならば、パッケージはあなたの探索であなたを助けるためにすでに存在します.
それで、つまずきましょう!新しいフォルダを作成し、選択したものを呼び出します.私はもう行かない
使用するテキストエディタを使用してフォルダを開き、新しいPythonファイルを作成します.あなたが第2で見る理由のためのPy.
一旦そのファイルをインストールしたら、私たちのパッケージをインストールして起動します.
pip3 install chatterbot
pip3 install chatterbot_corpus
pip3 install pytz
MacOSやPython 3でMacを使っていると仮定していますが、他のPIPパッケージをインストールするのと同じ方法でインストールしないでください.
ので、今私たちのプロジェクトにパッケージをインポートし、私たちの小さなボットを書く必要があります.
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
我々のファイルchatterbotを命名しました.Py Pythonは現在、そこから私のコメントをインポートしようとしている!
それで、我々は我々の輸入品を持っています
bot = ChatBot("bot")
私たちがここでしているのは、Chatterbotパッケージのインスタンスを作成し、ボットに名前を付けることです.今私たちの小さなボットが何かを学ぶことができなかった場合、それは非常に退屈なので、我々はいくつかのチャットを保存することができますし、ボットからそれを学ぶことができるので、そこにSQLデータベースをpingしようとしている(これは私の心を吹いた!)!それで、いくつかの余分なコードを加えましょう.
bot = ChatBot(
    "bot",
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    database_uri='sqlite:///db.sqlite3',
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.TimeLogicAdapter'
    ]
    )
ので、ここで何をしている?さて、まず最初に我々はSQLite DBを作成していない場合は、私たちはそれを使用しているフィードのデータを格納するために我々のボットは、それを与えたい任意の応答を決定するために使用することができます.Chatterbotはまた、多くの論理的なアダプタを使用することができます.つ以上の論理的なアダプタが使用されている場合、chatbotは信頼レベルを動作します!最も高い計算された信頼による応答は返されます、そして、ここで、我々は2つの論理的なアダプター(bestmatchとtimelogicAdapter)を使いました.
多分それは私たちのボットを教える時間だ!それで、私たちは今少しロボットを訓練する必要があります、そして、ボットが若干のフレーズを持って、以下のコードを使用することによって、それが質問をしているユーザーに対処するのに使用するように
# Creates an instance of the trainer    
lessons = ListTrainer(bot)

# Simple statements to teach the bot
lessons.train([
    'Hi',
    'Hello',
    'Good Morning',
    'Good Morning',
    'I need to ask a question about my order',
    'Please, Can i have your order id',
    'Ok I can see your order has been shipped',
    "That's great",
    'Is there anything else I can help you with',
    'No thank you',
    'Ok great, have a great day!',
    'Thanks',
    'Goodbye',
    'Bye'
])
それで、我々は我々のロボットを訓練しました、我々はそれに取り組む新しいDBを与えました、そして、我々はそれに名前を与えました!だから今その応答を取得し、そのすべての作業をチェック!では、今すぐやりましょう!
response = bot.get_response('I need to make a complaint')
print('Bot Response:', response)
それで、我々が現在我々のスクリプトを走らせるならば、我々は「私は不満をする必要があります」という質問に我々のボットから印刷された反応を得なければなりません.最初の試みでこの点を知っていたので、NLTKといくつかのパッケージで問題に出くわしました.私のような場合は、以下のようにしてください.
Python 3を端末にオープンする
import nltk
nltk download()
これは、NLTKパッケージでプルし、あなたを得る!あなたが再び私がしたSSLエラーを得るならば、あなたはターミナルでpython 3を開けて、走らせることができます
import nltk
import ssl

try:
    _create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
    pass
else:
    ssl._create_default_https_context = _create_unverified_https_context

nltk.download()
これは私の行くと私のアプリの作業を得た.
だから今、我々は応答を参照してくださいする必要があります今必要なすべてのチャット体験を作成するので、質問をすることができますうまくいけばいくつかの応答を返します.
# Grab Users name
name=input("Hello, I'm Bot! Please tell me your name? ")

#Start Questions
print("What is it I can help you with today " + name +" ?")

while True:
    request=input(name+': ')
    if request.lower() == 'bye':
        print('Bot: Bye')
        break
    else: 
        response=bot.get_response(request)
        print('Bot: ', response) 
ここで何が起こっているかは、すべてが我々がこのコードを走らせるという事実である間、我々がBootをどんな点ででもタイプするならば、ロボットがその願望と接近を送るでしょう、他の我々は質問に入力を入力します、そして、ボットはマッチするクローゼット答えで答えます!
chatterbotに関する詳しい情報はここで完全なドキュメントを読むことができます.
そのためには、以下のような最終的なファイルが必要です.
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

bot = ChatBot("bot")

bot = ChatBot(
    "bot",
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    database_uri='sqlite:///db.sqlite3',
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.TimeLogicAdapter'
    ]
    )

# Creates an instance of the trainer    
lessons = ListTrainer(bot)

# Simple statements to teach the bot
lessons.train([
    'Hi',
    'Hello',
    'Good Morning',
    'Good Morning',
    'I need to ask a question about my order',
    'Please, Can i have your order id',
    'Ok I can see your order has been shipped',
    "That's great",
    'Is there anything else I can help you with',
    'No thank you',
    'Ok great, have a great day!',
    'Thanks',
    'Goodbye',
    'Bye'
])

# Grab Users name
name=input("Hello, I'm Bot! Please tell me your name? ")

#Start Questions
print("What is it I can help you with today " + name +" ?")

while True:
    request=input(name+': ')
    if request.lower() == 'bye':
        print('Bot: Bye')
        break
    else: 
        response=bot.get_response(request)
        print('Bot: ', response) 
あなたのお気に入りのPythonエディタを使用して構築し、このボットを作成することができますし、良い古いチンワッグを持っているかどうかを確認してください!
このチュートリアルを持つすべての問題は、以下のコメントでそれらを残してください、私は助けるために最善を尽くします.
最初に公表されます:https://chatterbot.readthedocs.io/en/stable/
https://www.leighton.com/blog/python-chatterbot