Nlp 如何在本地解决方案中实现像WIT.AI这样的BOT引擎?

Nlp 如何在本地解决方案中实现像WIT.AI这样的BOT引擎?,nlp,opennlp,Nlp,Opennlp,我想为客户服务应用程序构建一个聊天机器人。我尝试了诸如Wit.Ai、Motion.Ai、Api.Ai、LUIS.Ai等SaaS服务。当使用典型交互模型进行培训时,这些认知服务可以找到“意图”和“实体” 我需要为本地解决方案构建聊天机器人,而不使用任何SaaS服务 e、 典型的对话如下- Can you book me a ticket? Is my ticket booked? What is the status of my booking BK02? I wa

我想为客户服务应用程序构建一个聊天机器人。我尝试了诸如Wit.Ai、Motion.Ai、Api.Ai、LUIS.Ai等SaaS服务。当使用典型交互模型进行培训时,这些认知服务可以找到“意图”和“实体”

我需要为本地解决方案构建聊天机器人,而不使用任何SaaS服务

e、 典型的对话如下-

    Can you book me a ticket?
    Is my ticket booked?
    What is the status of my booking BK02?
    I want to cancel the booking BK02.
    Book the tickets
StandFord NLP工具包看起来很有希望,但存在许可限制。因此,我开始试验OpenNLP。我假设有两个OpenNLP任务-

  • 使用“文档分类程序”查找意图
  • 使用“命名实体识别”查找实体
  • 一旦确定了上下文,我将调用我的应用程序API来构建响应

    • 这是正确的方法吗
    • OpenNLP在解析文本方面有多好
    • 我可以使用FacebookFASTTEXT库进行意图识别吗
    • 是否有其他开源库可以帮助构建BOT
    • SyntaxNet”对我的冒险有用吗
    我更喜欢用Java来做这件事。但也向node或python解决方案开放


    PS-我是NLP新手。

    看看我在使用Luis.ai时关于攻击计划的另一个答案:

    简而言之,使用Luis.ai并设置一些意图,从一两个开始,根据您的领域进行培训。我正在使用asp.net调用认知服务API,如上所述。然后通过一些JQuery定制响应……当Luis的响应引发每个意图或操作时,您可以在javascript数组中搜索规则列表

    如果您的机器人是基于英语的,那么我将使用OpenNLP的句子解析器将客户输入转储到数据库中(我今天这样做)。然后,我使用OpenNLP标记器,将关键字(减去停止词)和词性推送到数据库表中进行关键字分析。我有一个为OpenNLP构建的自定义情绪模型,该模型将用Pos、Neg、中性情绪标记每个句子……然后您可以使用它来识别负面的客户服务反馈。要构建您自己的情感模型,请查看SentiWord.net并下载其域无关数据文件,以构建和训练OpenNLP模型,或者查看此节点版本


    希望有帮助。

    看看这个。它说,这是一种对机器人程序的开源语言理解,是wit.ai、api.ai或LUIS等流行NLP工具的替代品


    我绝对推荐Rasa,它非常适合您的用例,可以轻松地在前提下工作,为您处理意图和实体,而且它还有一个友好的社区


    查看my repo,了解如何使用Rasa构建与简单数据库交互的聊天机器人的示例:

    我尝试了Rasa,但我发现一个问题是Rasa无法回答不匹配/未经培训的用户文本

    现在,我用的是《喋喋不休》,我完全爱上了它

    使用“ChatterBot”,并使用“flask ChatterBot master”在本地托管它

    链接:

    ChatterBot安装:

    本地主机使用-flask chatterbot master

    干杯


    Ratnakar

    在RASA和Botkit框架的帮助下,我们可以为任何频道构建内部聊天机器人和NLP引擎。请按照此链接了解构建相同频道的端到端步骤。这是一个很棒的博客,帮助我为我的办公室创建了一个


    首先,任何聊天机器人都将是与NLP一起运行的程序,NLP将知识带给聊天机器人。NLP掌握在机器学习技术的手中

    内部聊天机器人数量减少的原因很少

    • 我们需要建设基础设施
    • 我们需要经常训练模型
    但使用基于云的NLP可能无法提供数据隐私和安全性,而且包含我的业务逻辑的灵活性也非常低

    所有这些都是基于需求和需求的用例而进入内部部署或云计算的

    然而,请参考此链接,以获取有关在本地构建聊天机器人的端到端知识,这些知识只需很少的步骤,并且易于完全定制

    免责声明:我是这个软件包的作者

    aboditnlp()可以做你想做的事情,但目前它只是.NET

    特别是,您可以轻松地将其连接到数据库,并提供针对数据库的查询的自定义标记。这些标记都是强类型的,添加新规则就像在C#中添加方法一样简单


    它还特别擅长将日期时间表达式转换为查询。例如,“下个月某个周四下午4点后”变成
    (((DatePart(year,[DATEFIELD])=2019)和(DatePart(month,[DATEFIELD])=7)以及(DatePart(dw,[DATEFIELD])=4)和DatePart(hour,[DATEFIELD])>=16)

    您能找到解决方案吗?这是一个常见的问题,正如您所说,我找不到解决方案。要么企业不太关心客户的隐私,要么NLP不是媒体项目。如果您能分享您的开放NLP实施细节,那就太好了。评论:您愿意吗请使用更多关于ChatterBot的详细信息(例如,解释为什么它是一个好的选择)来租赁并改进此答案。此外,请避免不正式的回答(例如,祝你好运、干杯等)。谢谢