34

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

我有一个模型(假设是机器人的记忆),不同的词与模型中的不同对象相关联。与机器人交谈就像使用数据库执行 sql 查询一样。语言是一个很难形式化的协议。而且我们不能只写一百万行代码来实现一些真正的语言。但我相信实现一些自学机制是绝对有可能的。如何实施?是否可以实现“从零开始”或“从几个基本单词”学习?只是想听听你的想法。

实际上,英语是一门非常严格的语言,它是最简单的人工智能实验语言之一。许多其他语言允许您更改单词的顺序(例如)。在某些情况下,改变顺序可以改变整个意思或者只是增加一些语调。我真的不知道如何教机器人做这些事情。

4

6 回答 6

23

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

...对现有技术有一个非常清晰的认识!

(请原谅我说,这个问题并不表明你对此事有如此广泛的洞察力[而且你并不孤单,把我算在内;-)])

甚至,也许特别是,如果您打算应用全新的技术和模型,那么回顾有关当前和过去实践的文献似乎很重要。除了可能识别可能在新实现中调整或重用的元素之外,对该领域的调查将提供对问题性质的敏锐理解。

亲自尝试过 - 在各种场合! - 无论是天真的方法还是二年级的方法来解决广泛定义的问题。使用幼稚的方法,人们对问题的真正性质和范围只有非常小的了解。大二学生认为我们更好地配备了领域知识和相关工具,但这也可能会产生误导,因为如果没有更深入的了解,我们往往会误读/误解提供给我们的新材料,也会误用一些工具(有点像那个“擅长锤子”的家伙,很多东西看起来都像钉子……)

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

  • 常识似乎是必需的:毕竟一个以英语为母语的孩子能理解诸如
       “他不是真正的专家”
       “他真的不是专家”之类的微妙之处
    (对 OP 中提到的单词顺序的小眨眼英语)
  • 我们生活在如此激动人心的时代,技术和知识都很明智:处理能力、编程语言和工具、数学技术、负担得起的语料库的可用性……仅举几例使这一刻如此特别的事物。

远非我在你的聊天机器人工作中劝阻你的想法,我只是希望这个冗长而通用的曝光会鼓励你先看,因为从长远来看,这将真正节省你的时间,我认为两种方式:

  • 为您提供一些参考框架(同样,即使您的意图是“跳出这些框框思考”)
  • 可能会诱使您重新定义问题,例如将其限制在特定的对话领域(体育、健康或特定大学校园的生活……)或专注于问题的特定方面(语义意识、流畅,自然发音的语法,口语形式的使用...)

祝你好运 ;-)

于 2009-11-17T15:12:06.063 回答
9

查看MegaHAL 的实现以获得一些想法。我们已经在我们的 IRC 频道中使用了这个机器人的变体很长时间了,他有时确实看起来是我们许多主要人物的聪明混合体。

于 2009-11-17T13:36:12.450 回答
6

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

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

于 2009-11-17T13:36:36.893 回答
4

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

这不是一种学习算法,但令人惊讶的是,如此简单的事情竟能得出如此真实的答案。

于 2009-11-17T13:41:25.943 回答
-1

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

机器人可以学习、可以训练、可以编写脚本,您可以对它们进行编程,或者让它们自己编程。

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

于 2013-12-30T20:05:42.760 回答
-3

AliceBot项目的AIML可以帮助您。对于与它相关的 AI 分支,它是一个完整的 XML 模式(如果这不会让你失望的话)。

来自维基百科的一个例子:

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

RebbeccaAIML是一种记录良好的实现。

于 2009-11-17T13:50:11.353 回答