简单的聊天机器人项目[关闭]

Posted

技术标签:

【中文标题】简单的聊天机器人项目[关闭]【英文标题】:Simple chat bot projects [closed] 【发布时间】:2011-05-06 23:53:25 【问题描述】:

我想做的是构建一个简单的机器人,它将存储在数据库中的一组信息发送到我的 messanger 聊天窗口[聊天服务是 gTalk、Yahoo 和其他常用聊天产品] 另外,它应该能够接受一些预定义的命令并回复它们。

是否有任何可用的开源代码?

【问题讨论】:

你是什么服务器端编程语言 我仍处于需求收集和可行性研究阶段。但是,很可能它会是红宝石。对此有何建议? 我使用 Java 和 incesoft ibot sdk 平台(见我的回答)。如果您愿意,也可以使用 .NET,这对您正在做的事情并没有什么影响。 【参考方案1】:

查找AIML(人工智能标记语言),它已经存在很多年了,它的定义非常明确,并且对于简单的东西非常灵活。您还可以使用各种递归模板做一些非常复杂的事情,并且结果相当不错(就愚蠢的机器人而言)。

有很多 open sdk projects 使用这种标记语言,它们会负责将您的输入模式与存储在您必须使用模板配置的 xml 文件中的给定回复进行匹配。

几年前,我在 Java 中使用 AIML 来存储模式(如果您按照上面的链接,有很多 API)和使用 incesoft msn bot platform,我曾在一个 Messenger bot 上工作过。工作得很好。

希望对你有帮助。

【讨论】:

【参考方案2】:

对于一些尝试更复杂的东西,您可以查看 NLTK 自然语言工具包:

http://www.nltk.org/

基于 Python 并用于教育,但有相当多的文档和至少几本书(一本是开源的)。

【讨论】:

【参考方案3】:

就不同的聊天网络而言,您可能需要查看 Pidgin (http://www.pidgin.im/download/source/),这是一个用 C 和 GTK+ 编写的跨平台 GPLed 聊天客户端,适用于所有主要的聊天网络。

【讨论】:

【参考方案4】:

你可以考虑找一些人工智能资源 有一个很好的聊天机器人示例 尝试谷歌verbot 它是用 .NET 库构建的

【讨论】:

【参考方案5】:

我们制作了一个非常容易在 python 中扩展的工具,它可以与 XMPP / gtalk 一起使用: http://gbin.github.com/err/

为了给你一个想法,最小的 hello world 如下:

from errbot.botplugin import BotPlugin
from errbot.jabberbot import botcmd

class HelloWorld(BotPlugin):
    @botcmd
    def hello(self, mess, args):         # the chatbot will then respond to the command !hello
        """ this command says hello """  # this will be the result of !help hello
        return 'Hello World !'           # this will be the answer

【讨论】:

【参考方案6】:

为此,我一直在使用 Github 的 hubot。当被要求讲笑话时,我的机器人会讲笑话。 (当然我也有一个我可以问我应该做什么,它会查找我的工作清单。)

GoGoBot> tell a joke about me
GoGoBot> a joke about Shell...  Let me think about it...
GoGoBot>
I heard a funny one the other day:
Chuck Norris doesn't look both ways before he crosses the street...
he just roundhouses any cars that get too close.

机器人在 NodeJS 上运行。该 api 接受一个正则表达式和一个回调,如

robot.hear /tell a joke/i, (msg) -> msg.send 'I heard a funny joke...'

module.exports = (robot) ->
  robot.hear /tell (?:a|something) (?:joke|funny)(?: about ([a-z.]+))?/i, (msg) ->
    subject = getSubject msg.match[1], msg.message.user.name
    msg.send 'a joke about ' + subject + '...  Let me think about it...' if subject.length
    tellJoke = ->
      getJoke subject, (err, text) ->
        msg.send "Cannot compute.  #robot.name is about to die.\r\n#err".replace(/e/ig, '3') if err?
        msg.send "I heard a funny one the other day:\r\n#text" unless err?
    setTimeout tellJoke, 5000 * Math.random()

这很容易学习,因为我已经熟悉 NodeJS 和咖啡脚本。我在今天几个小时内写了我提到的两个机器人。

【讨论】:

【参考方案7】:

IMified 可能是一种简单的入门方式,它允许您使用服务器端 Web 开发工具构建 IM 聊天机器人来接收消息,并且只需发出 HTTP 请求来发送消息或请求状态。

http://www.imified.com/hosting/

IMified 的基于 API 的解决方案 创建和托管即时消息 应用程序消除了复杂性 并提供了一个简单的解决方案 构建和部署 IM 应用程序 在多个公共 IM 网络上使用 一个 API。

API 文档在这里: http://www.imified.com/developers/api

一个应用程序连接到 IMified 平台是最简单的 形成一个驻留的动态网页 在任何 HTTP 服务器上并监听 传入的消息然后输出 回复。您指定端点 URL 在您的机器人设置中。开发者可以 也向用户“推送”消息 通过 REST 请求用户存在 api 调用 IMified 的服务器。

【讨论】:

以上是关于简单的聊天机器人项目[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

自动聊天机器人项目班 [一门课搞定聊天机器人]

自动聊天机器人项目班 [一门课搞定聊天机器人]

有开发聊天机器人的教程吗? [关闭]

关闭了5G消息,还能使用聊天机器人(Chatbot)吗?给聊天机器人(Chatbot)发短信是不是会

如何批量制作聊天机器人[关闭]

React 项目实践——创建一个聊天机器人