python aiml_Python:用aiml构建英语聊天机器人
寫在前面的話
安裝aiml庫
獲取語料庫路徑
獲取aiml的安裝路徑
補充路徑名稱
切換到語料庫所在工作目錄
(所有的語料庫,是可以自己補充修改的,這里就先用現(xiàn)成的)
創(chuàng)建機器人alice對象
加載語料庫
如果是第一次加載語料庫,讀取數(shù)據(jù),同時保存資料至bot_brain.brn
如果是之后再加載語料庫,就不需要讀取所有數(shù)據(jù)了,直接讀取bot_brain.brn
正式開始聊天
如果遇到用戶輸入exit,就退出聊天
運行界面
聊天界面
前面的加載過程,是為了調(diào)試。實際使用的時候,可以全部注釋掉,直接開始對話。
輸入exit,程序會自動退出
安裝庫
pip install aiml
完整代碼
# -*- coding: utf-8 -*-
# 加載庫
import aiml
import sys
import os
# 獲取aiml的安裝路徑
def get_module_dir(name):
print("module", sys.modules[name])
path = getattr(sys.modules[name], '__file__', None)
print(path)
if not path:
raise AttributeError('module %s has not attribute __file__' % name)
return os.path.dirname(os.path.abspath(path))
# 補充路徑名稱
alice_path = get_module_dir('aiml') + '\\botdata\\alice'
# 切換到語料庫所在工作目錄
os.chdir(alice_path)
# 創(chuàng)建機器人alice對象
alice = aiml.Kernel()
print("正在加載語料庫")
# 這里做一個判斷
# 如果是第一次加載語料庫,就進入else部分,讀取數(shù)據(jù),同時保存資料至bot_brain.brn
# 如果是之后再加載語料庫,就不需要讀取所有數(shù)據(jù)了,直接讀取保存數(shù)據(jù)bot_brain.brn
if os.path.isfile("bot_brain.brn"):
alice.bootstrap(brainFile = "bot_brain.brn")
else:
alice.learn("startup.xml") # 加載...\\botdata\\alice\\startup.xml
alice.respond('LOAD ALICE') # 加載...\\botdata\\alice目錄下的語料庫
alice.saveBrain("bot_brain.brn")
print("數(shù)據(jù)加載完畢,開始對話\n")
# 正式開始聊天
while True:
message = input("Enter your message >> ")
if ("exit" == message):# 如果輸入exit,程序退出
exit()
response = alice.respond(message) # 機器人應答
print(response)
break # 結(jié)束循環(huán)
response = alice.respond(message) # 機器人應答
print(response)
參考資料
總結(jié)
以上是生活随笔為你收集整理的python aiml_Python:用aiml构建英语聊天机器人的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL语言中的连接表
- 下一篇: aiml java,聊天机器人与Alic