Python NLP通用英语到行动
我正在使用基于文本的自然语言处理来自动化应用程序的任务流 它类似于聊天应用程序,用户可以在其中键入文本区域。同时,python代码解释用户想要什么,并执行相应的操作 应用程序具有以下命令/操作:Python NLP通用英语到行动,python,machine-learning,nlp,deep-learning,nltk,Python,Machine Learning,Nlp,Deep Learning,Nltk,我正在使用基于文本的自然语言处理来自动化应用程序的任务流 它类似于聊天应用程序,用户可以在其中键入文本区域。同时,python代码解释用户想要什么,并执行相应的操作 应用程序具有以下命令/操作: 创建任务 命名为t1 为任务增加时间 将t1连接到t2 用户可以输入聊天(自然语言)。这将类似于一般的英语对话,例如: 您能否创建一个名为t1的任务并为其分配时间。另外,将t1连接到t2 我可以编写一个规则驱动解析器,但它只限于少数几个规则 我可以使用哪种方法或算法来解决此任务? 如何将通用英语映射到命
如何将通用英语映射到命令或行动 我认为您的问题与基于规则的系统相关。 您需要在项目的核心中包含两个基本组件,如下所示: 1-角色库: 您的角色列表 2-推理机: 根据输入和规则库的交互推断信息或采取行动
spacy
是一种python方法,我认为它会对您有所帮助。()。我认为最好的解决方案是使用像或这样的外部服务。您可以创建一个免费帐户,然后您可以将某些文本映射到所谓的“意图”
这些意图定义了系统的主要操作。您还可以定义捕获任务名称等信息的“实体”。请看一下这些工具。我相信他们可以处理您的用例。您可能想试试。这是一个非常好的NLP库,并提供了一个方便的入门工具。我想你可能会发现这对找到句子结构很有帮助,也对弄清楚你的用户要求机器人做什么很有帮助。如果您对NLP的兴趣不只是过眼烟云,我建议您阅读全文,因为其中大部分内容都非常通用,可以在NLTK之外应用。您所描述的是一个通用问题,有很多可能的解决方案。我们不知道您的业务需求将严重影响正确的方法 例如,您需要标记自然语言输入。你应该使用基于规则的方法,还是机器学习方法?也许两者都有?让我们考虑你的输入字符串:
Can you create a task with name t1 and assign time to it. Also, connect t1 to t2
我们的系统可能会以以下方式标记此输入:
Can you [create a task] with [name] [t1] and [assign] [time] to it. Also, [connect] [t1] to [t2]
括号表示语义信息,完全没有结构。结构重要吗?您是否需要知道connectt1
与文本本身中的t2
相关,或者我们可以假设这是因为所有输入都将遵循此结构
如果输入总是遵循这种结构,并且总是包含这些类型的语义,那么您可能可以使用正则表达式和提供预构建方法来解析它
如果输入的是真正的自然语言(即,您正在构建siri或alexa竞争对手),那么这将非常复杂,您不会在这样的帖子中得到有用的答案。相反,如果你对语言学和计算机科学都有足够的了解,能够系统地解决这个问题,那么你前面就会有几千条这样的帖子。假设文本是“请为我订购比萨饼”或“我可以从优步预订出租车吗”
使用像nltk这样的好库并解析这些句子。由于社交英语在语法上通常是不正确的,您可能需要使用自定义的破损英语语料库来训练解析器。接下来,您必须按照以下步骤了解用户的需求