python英文聊天机器人(亲测可用)
python英文聊天机器人(亲测可用)本文参考https://www.cnblogs.com/youcong/p/10462924.html第一步:下载所需包pip install aiml出现Successfully installed aiml-0.9.2即安装成功第二步:编写代码导入包:import sysimport osimport aiml获得语料库目录:def _get_module
·
python英文聊天机器人(亲测可用)
本文参考https://www.cnblogs.com/youcong/p/10462924.html
第一步:
下载所需包
pip install aiml
出现Successfully installed aiml-0.9.2即安装成功
第二步:
编写代码
导入包:
import sys
import os
import aiml
获得语料库目录:
def _get_module_dir(name):
if os.environ.get('show-info', False):
print('module', sys.modules[name])
path = getattr(sys.modules[name], '__file__', None)
if os.environ.get('show-info', False):
print(path)
if not path:
raise AttributeError(f'module {name} has not attribute __file__')
return os.path.dirname(os.path.abspath(path))
创建机器人:
_alice_path = _get_module_dir('aiml') + '\\botdata\\alice'
os.chdir(_alice_path)
_alice = aiml.Kernel()
_alice.learn("startup.xml")
_alice.respond('LOAD ALICE')
定义聊天函数:
def english_chat(message: str):
return _alice.respond(message)
第三步:
如果你按上代码执行,可能看到如下起飞(我已经起飞)
报错信息是说time包不支持clock函数了(我的python是3.8)
解决方案:
找到Kernel.py,我的Kernel.py在
F:\anaconda3\lib\site-packages\aiml下。将第335行
start = time.clock()
改为:
start = time.time()
然后把第356行
print( "done (%.2f seconds)" % (time.clock() - start) )
改为:
print( "done (%.2f seconds)" % (time.time() - start) )
最后附上全部代码:
import sys
import os
import warnings
try:
import aiml
except (AttributeError, ImportError):
print('''If you want to use english chat robot, please update lib aiml's Kernel.py
line 335 "start = time.time()" to:
"start = time.clock()"
and line 356 "print( "done (%.2f seconds)" % (time.clock() - start) )" to:
"print("done (%.2f seconds)" % (time.time() - start))"''')
warnings.warn('aiml module is wrong')
sys.exit(1)
def _get_module_dir(name):
if os.environ.get('show-info', False):
print('module', sys.modules[name])
path = getattr(sys.modules[name], '__file__', None)
if os.environ.get('show-info', False):
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)
_alice = aiml.Kernel()
_alice.learn("startup.xml")
_alice.respond('LOAD ALICE')
def english_chat(message: str):
return _alice.respond(message)
if __name__ == '__main__':
while True:
msg = input('Please input, input q to quit: ')
if msg == 'q':
sys.exit(0)
print('Robot:', english_chat(msg))
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献2条内容
所有评论(0)