Python NLP通用英语到行动

Python NLP通用英语到行动,python,machine-learning,nlp,deep-learning,nltk,Python,Machine Learning,Nlp,Deep Learning,Nltk,我正在使用基于文本的自然语言处理来自动化应用程序的任务流 它类似于聊天应用程序,用户可以在其中键入文本区域。同时,python代码解释用户想要什么,并执行相应的操作 应用程序具有以下命令/操作: 创建任务 命名为t1 为任务增加时间 将t1连接到t2 用户可以输入聊天(自然语言)。这将类似于一般的英语对话,例如: 您能否创建一个名为t1的任务并为其分配时间。另外,将t1连接到t2 我可以编写一个规则驱动解析器,但它只限于少数几个规则 我可以使用哪种方法或算法来解决此任务? 如何将通用英语映射到命

我正在使用基于文本的自然语言处理来自动化应用程序的任务流

它类似于聊天应用程序,用户可以在其中键入文本区域。同时,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这样的好库并解析这些句子。由于社交英语在语法上通常是不正确的,您可能需要使用自定义的破损英语语料库来训练解析器。接下来,您必须按照以下步骤了解用户的需求

  • 找出一段中的句号,记住缩写,行话,比如???等等
  • 下一步,通过不同的库通过词性标注(POS)找到各个句子中的所有动词和名词短语
  • 在真正的工作开始之后,我的方法是创建一个动词图,其中相似的动词彼此接近,而不同的动词相距很远。 让我们假设你有像排列,指令,命令,指令,听写这样更接近顺序的单词。因此,如果您的用户在其文本中写入上述任何一个动词,您的算法将确定该用户真正的意思是暗示顺序。您还可以使用该图形的边来指定使用该动词的上下文

    现在,您必须根据在原始句子中解析的名词短语为这个动词“order”指定动作。 这只是对该算法的一个高级解释,它有许多需要认真考虑的问题,下面列出了其中一些问题

  • 在很短的时间内找到根动词和给定动词之间的相似性指数
  • 图表中没有条目的生词。一种可能的方法是通过在谷歌上搜索这个词来更新你的图表,从提到这个词的页面中找到上下文,并在图表中为这个新词找到一个合适的位置
  • 拼写错误的单词与专有动词或名词的相似性指数
  • 如果你想建立一个更复杂的模型,你可以为每一个词性构建一个图表,并且可以从每个图表中选择合适的单词来组成句子来回应查询。上面提到的图表是指动词词性。

    尽管如此,这是正确的。看起来你不想训练机器人。 因此,为了处理语言输入的变化(词汇、语义…),您需要一个经过预培训的机器人,您可以自定义它(或者根据需要添加规则)

    最简单的面向业务的解决方案是。还有一个免费的预览程序

    另一种选择是使用谷歌(Google)的语法分析器(一种预先培训过的英语语法分析器,支持40种语言)