ChatterBot聊天機器人結構(二):如何設置語料

在上一節中,訓練了一個最簡單的機器人,通過一組簡單的對話輸入,對機器人進行訓練,完成以后進行,就可以跟機器人進行對話了。

這是一個最簡單的例子了,簡單到只能用來說明問題,我們會想每次都進行語料的準備,語料如果比較全面,一種極端的情況是語料覆蓋了方方面面,輸入的對話都能在語料中找到相似的語句,通過語句就可以找到最適合的回答。

可以準備非常多的高質量的聊天內容,通過聊天內容可以構建訓練的語料。而對于語言來說,還要考慮的一點是語種,中文,英語的語料可分開進行。

ChatterBot提供了一些簡單的聊天語料,在\site-packages\chatterbot_corpus\data,有一些不同語種的聊天語料。有中文,英文,西班牙文等等,但是這些語料多過于簡單,在項目中可以通過各種不同的方式進行補充。

使用ChatterBot加載語料,訓練機器人:

#!/usr/bin/python
#coding=utf-8

from chatterbot import ChatBot
import logging


'''
This is an example showing how to train a chat bot using the
ChatterBot Corpus of conversation dialog.
'''

# Enable info level logging
logging.basicConfig(level=logging.INFO)

chatbot = ChatBot(
    'Example Bot',
    trainer='chatterbot.trainers.ChatterBotCorpusTrainer'
)

# Start by training our bot with the ChatterBot corpus data
chatbot.train(
    'chatterbot.corpus.chinese'
)

# Now let's get a response to a greeting
response = chatbot.get_response('最近如何')
print(response)

在chatbot.train中,選擇的是chatterbot.corpus.chinese語料,語料進行訓練以后,回答'最近如何'的對話,運行的過程:

conversations.yml Training: [####################] 100%
greetings.yml Training: [####################] 100%
trivia.yml Training: [####################] 100%
INFO:chatterbot.adapters:Recieved input statement: 最近如何
INFO:chatterbot.adapters:"最近如何" is a known statement
INFO:chatterbot.adapters:Using "最近如何" as a close match to "嗨,最近如何?"
INFO:chatterbot.adapters:Selecting response from 6 optimal responses.
INFO:chatterbot.response_selection:Selecting first response from list of 6 options.
INFO:chatterbot.adapters:Response selected. Using "挺好"
INFO:chatterbot.adapters:BestMatch selected "挺好" as a response with a confidence of 0.73
INFO:chatterbot.adapters:NoKnowledgeAdapter selected "最近如何" as a response with a confidence of 0
挺好

程序運行的過程,就是上一章分析的過程,找到最相近的"嗨,最近如何?",根據"嗨,最近如何?"的對話進行回復,內容為:挺好。

轉載請標明來之:http://www.peyycv.tw/

更多教程:阿貓學編程

ChatterBot聊天機器人結構 系類文章

所有評論

如果對文章有異議,請加qq:1752338621