【问题标题】:How to create a smart chat-bot? [closed]如何创建智能聊天机器人? [关闭]
【发布时间】:2009-11-17 13:31:18
【问题描述】:

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

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

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

【问题讨论】:

  • 我推荐你rebot.me 网站来创建你自己的个人聊天机器人。有一个通过此服务创建的示例聊天机器人“SimSimi”rebot.me/simsimi 注意:我是这个项目的创始人/开发者。
  • 这是一个想法。如果您可以收集大量训练数据(例如来自亚马逊机械土耳其人),那么您可以使用循环神经网络(例如 LSTM)将自然语言问题映射到 SQL 查询。我在mybot.be 中采用了类似的方法,我使用 LSTM 将自然语言问题映射到“问题类”,然后从同一个存储桶中提供自然语言答案。你仍然需要解决“上下文”(如何处理“为什么?”等后续问题)。我自己还没有解决这个问题。
  • 在python中你可以借助chatterbot创建你自己的聊天机器人,通过提问和交流,它自己训练,我们也可以通过.txt文件训练它

标签: artificial-intelligence chatbot


【解决方案1】:

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

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

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

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

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

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

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

我绝不会在你的聊天机器人工作中劝阻你,我只是希望这个冗长而笼统的曝光会鼓励你先看后跳,因为从长远来看,这将真正节省你的时间,我认为有两个方面:

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

祝你好运;-)

【讨论】:

    【解决方案2】:

    查看MegaHAL's implementation 了解一些想法。我们已经在我们的 IRC 频道中使用该机器人的变体已有很长时间了,而且他有时确实看起来是我们许多主要人物的智能混合体。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 这太容易了。正确答案取决于对话的上下文,而不仅仅是最后的回应。让机器人给出明智的答案(例如与它进行明智的对话)在很大程度上仍然是一个未解决的问题。你说得好像这是解决所有问题的方法
      • 这还不是开始。这只是一种学习技术。获得“好分数”的算法是与众不同的。如果没有好的人工智能算法,这种技术不会让你成为一台会说话的机器……
      • 这是一种更好的方法
      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

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

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

        【讨论】:

          【解决方案6】:

          AliceBot 项目中的AIML 可以帮助您。它是一个完整的 XML 模式(如果这不会让你感到厌烦的话)。

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

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

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

          【讨论】:

          • 所有 Rebecca 文档页面都是空白的。
          猜你喜欢
          • 2016-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多