简单的聊天机器人项目[关闭]
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 的服务器。
【讨论】:
以上是关于简单的聊天机器人项目[关闭]的主要内容,如果未能解决你的问题,请参考以下文章