我一直在尝试在序言中创建一个聊天机器人(作为作业),到目前为止,我已经在 .pl 文件中创建了一个数据库,并且列出了很多可能的对话。
我知道序言是这样工作的,例如如果我们有
Chatbot(good)
然后我们输入
?-Chatbot(good).
它会回应
yes or ture.
现在我不知道如何使用我的数据库,以便该程序可以完全像聊天机器人一样工作,而无需使用适当的语法编写:
Hello (typed by the user)
Hi there, (typed by the program automatically)
我的数据库是这样的:
answer( question, [
[Yes, I am here]]).
question ([are you there?])
原型chatbot http://en.wikipedia.org/wiki/Chatterbot我知道的是ELIZA http://en.wikipedia.org/wiki/ELIZA魏森鲍姆 1966 年。
在 Prolog 中实现它相当简单,如下所示Prolog 的艺术由斯特林和夏皮罗撰写。
谷歌搜索“ELIZA Prolog”,第一个链接给你一个相当复杂的执行 http://cs.nyu.edu/courses/fall11/CSCI-GA.2110-003/documents/eliza.pl,您可以根据您的数据库调整/重用该引擎。但这样你就会失去所有的乐趣。我建议你阅读这本书并花时间来实现你自己的。
edit
以防万一您还没看过,SWISH 提供干净、准系统的 ELIZA https://swish.swi-prolog.org/example/eliza.pl执行之间它的例子 https://swish.swi-prolog.org/example/examples.swinb.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)