为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 NLTK 制作更高级的响应聊天机器人?

如何使用 NLTK 制作更高级的响应聊天机器人?

DIEA 2022-05-24 17:18:11
我已经对如何创建聊天机器人(响应部分)进行了大量研究,但是我找不到让它更先进的方法。例如,我不断看到 NLTK 反射,但我想知道 NLTK(或其他模块)中是否有更高级的方法可以让我创建学习机器人、智能机器人甚至 AI,但我在寻找模块、教程方面遇到困难或有助于开始和以这种方式进行的文档。反射并不总是像在上下文中响应那样工作得很好,除非您为内容预先编写了许多行代码,这些代码效率低下并且可能并不总是准确的。注意:我不想被勺子喂食,我只想指出我可以做和看的东西的正确方向。一个解决方案是,例如用户问:“你最喜欢的演员是谁?”机器人回复:“布拉德皮特”(尽管是布拉德,因为有广告 xD)下面是我试图远离的代码。pairs = [    [        r"my name is (.*)",        ["Hello %1, How are you today ?",]    ],     [        r"what is your name ?",        ["My name is Chatty and I'm a chatbot ?",]    ],    [        r"how are you ?",        ["I'm doing good\nHow about You ?",]    ],    [        r"sorry (.*)",        ["Its alright","Its OK, never mind",]    ],    [        r"i'm (.*) doing good",        ["Nice to hear that","Alright :)",]    ]```    
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

会话代理有两种主要风格:检索式和生成式。您显示的正则表达式代码可以被认为是一个非常简单的检索模型。更复杂的检索模型使用分类器(此时几乎总是神经网络)对用户输入进行分类。生成模型将输入到输出的映射视为机器翻译问题,并使用来自 NMT、神经机器翻译的技术。

一些资源:

  • 新版本的语音和语言处理,由 Dan Jurafsky 和 James H. Martin 撰写,包含三个关于机器人/问答的章节

  • 如果您正在尝试构建一些实用的东西,那么您应该使用成熟的库。IMO,Rasa在这一点上已经领先了几年


查看完整回答
反对 回复 2022-05-24
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

您想要远离的代码曾经是 cahtbots 的开端(Eliza:https ://blog.infermedica.com/introduction-to-chatbots-in-healthcare/)。一个好的起点是完整的对话系统。例如,您可以使用 trindikit for python,它基本上是一个对话管理器。此外,您需要实现某种常识推理数据库(例如比较 Erik T Mueller:常识推理 - 基于事件微积分的方法)。通常,大多数聊天机器人都专注于特定领域(产品问题、推荐人等),因此您需要准确确定哪些意图可能会引发哪些语音行为,并对它们进行相应的分类和建模(LSTM 用于分类,Bayes 用于生产)。在所有这一切上,您要么必须构建一个表面实现系统,要么使用罐装文本作为模板,当您的领域越来越扩展时,这正在增加工作量。

查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信