3

我一直在尝试在 prolog 中创建一个聊天机器人(作为一项任务),到目前为止,我已经在 .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?]) 
4

1 回答 1

3

我知道的原型聊天机器人是 Weizenbaum 1966 年的ELIZA

在 Prolog 中实现它相当容易,如Sterling & Shapiro的 The Art of Prolog所示。

谷歌搜索“ELIZA Prolog”,第一个链接为您提供了一个相当复杂的实现,您可以使用您的数据库调整/重用引擎。但是这样你就会失去所有的乐趣。我建议你阅读这本书并花时间实现你自己的。

编辑

万一您还没有看到它,SWISH在其示例中提供了一个干净、准系统的 ELIZA实现。

于 2012-07-25T22:28:37.467 回答