如何创建智能聊天机器人?

时间:2009-11-17 13:31:18

标签: artificial-intelligence chatbot

我知道这仍然是一个悬而未决的问题所以我不希望在这里看到完整的答案。我只想找到解决下一个问题的方法:

我有一个模型(假设是机器人的记忆),不同的单词与模型中的不同对象相关联。与机器人说话就像用DB执行sql-queries。语言是一种非常难以形式化的协议。我们不能只写一百万行代码来实现一些真正的语言。但我相信实施一些自学机制绝对是可能的。如何实施?是否可以“从头开始”或“从几个基本单词”实施学习?只是想听听你的想法。

实际上,英语是一种非常严格的语言,它是用于试验AI的最简单的语言之一。许多其他语言允许您更改单词的顺序(例如)。在某些情况下,改变顺序可以改变整个意义或只是添加一些语调。我真的没有任何想法如何教这些东西的机器人。

6 个答案:

答案 0 :(得分:22)

第一步,将此游戏提升到新的水平,是......

......对现有技术有一个非常清晰的看法!

(原谅我说,这个问题并不表明你对此事有如此深入的了解[而且你并不孤单,算上我; - )])

即使,也许尤其如此,如果您的目的是应用完全新颖的技术和模型,那么审查有关当前和过去实践的文献似乎很重要。除了可能识别可能在新实现中进行调整或重用的元素之外,对域的调查将提供对问题的 性质 的敏锐理解[s]。

我已经亲自尝试过各种各样的场合! - 要么是天真的方法,要么是用于解决广泛定义的问题的二年级方法。通过天真​​的方法,人们对问题的真实性质和范围只有一点点了解。大二学生认为我们更好地掌握了领域知识以及相关工具,但这也可能会产生误导,因为如果没有更深入的理解,我们往往会误读/误解为我们提供的新材料,并且滥用某些工具(有点像那个“用锤子好”的人,很多东西看起来像钉子......)

在NLP领域犯这些错误特别容易。那是因为

  • 常识似乎都是必需的:毕竟一个孩子,谁的母语是英语理解如下的细微之处 “他 不是 专家” “他 真的不是 专家”(OP对英语单词排序的参考小眨眼)
  • 我们生活在如此激动人心的时代,技术和知识方面:处理能力,编程语言和工具,数学技术,可负担得起的语料库的可用性......仅举几例,使这一时刻变得如此特别。< / LI>

在我的聊天机器人努力中,我不想让你沮丧,我只希望这个漫长而通用的展示会鼓励你先行一步,因为从长远来看,这将真正节省你的时间,我认为有两种方式:

  • 为您提供一些参考框架(再次,即使您的意图是“在这些框外思考”)
  • 可能会诱使您重新定义问题,例如将其限制在特定的对话领域(体育,健康,或特定大学校园的生活......)或通过关注问题的特定方面(语义)意识,流畅,自然的声音语法,使用口语形式...)
祝你好运; - )

答案 1 :(得分:8)

查看MegaHAL's implementation了解一些想法。我们在我们的IRC频道中使用了这种机器人的变种,并且他偶尔看起来是我们许多主要人物的智能混合物。

答案 2 :(得分:6)

你“训练”机器人 - 每次机器人回答,你排名(或测试者)答案 - 如果答案是好的/合乎逻辑的 - 给出高排名,如果答案是坏的......低/负排名。

使用未来的排名来选择答案,这就是机器人学习的方式......

答案 3 :(得分:4)

Eliza中有Paradigms of AI Programming的精彩描述。您应该能够在几天的工作中实现一个简单的Eliza机器人。

这不是一种学习算法,但令人惊讶的是,如此简单的答案可以来自现实。

答案 4 :(得分:-1)

您可以在BOT libre上创建自己的聊天机器人http://www.botlibre.com

机器人学习,可以训练,可以编写脚本,你可以编程,或让他们自己编程。

Thew网站支持在您自己的网站上嵌入您的机器人,具有REST API访问权限,Android,IRC,Twitter。免费托管,即使是商业机器人。

答案 5 :(得分:-3)

来自AIML项目的

AliceBot可能会帮助您解决问题。它是一个完整的XML模式(如果这不会让你失望),它与AI有关的分支。

维基百科的一个例子:

<category>
  <pattern>WHAT IS YOUR NAME</pattern>
  <template>My name is <bot name="name"/>.</template>
</category>

RebbeccaAIML是一个记录完备的实现。