2

我有几句话如下

  • what is the sales org for fpc 1234 for IS?
  • give me sales org for fpc 12234 for IS?
  • give me sales org for fpc 12234 with scope ME?

在上面的句子中,我正在寻找的实体分别是IS,ISME。这些实体包括 、ISMEANAM它们在用英语构建句子时很常见。我LUIS用于实体检测并将实体维护为列表实体。问题是,虽然LUIS能够检测到实体(IS, AN, AM),但它可以在正常句子中检测到它们,例如

  • what is the sales org for fpc 1234

在上面的句子中,我们没有任何实体,但实体IS被拾取。

我们如何仅在实体被实际处理而不是句子结构的一部分时才检测它们。

需要注意的几点:

  • 实体列表真的很长,用来训练实体而不是使用实体
  • 我们不能硬编码来查找实体的两次出现,因为它可能会失败,如下所示:
    • give me sales org for fpc 12234 for IS?
    • ME,IS不会出现两次,也不能用于创建规则。
  • 问题一般不在于LUIS实体提取,而在于实体提取。我也在研究POS标记,但这需要实体以大写字母出现才能将其识别为名词,但情况可能并非总是如此。
    • 也刚刚尝试了使用 Spacy 的 POS 标记。以下是结果。
    • 哪个销售组织扩展到 fpc 1234 for TO?- TO 被归类为介词(实际上是。) 在此处输入图像描述
    • 范围 IS 的 fpc 1234 的销售组织是什么?- IS被归类为动词 在此处输入图像描述
4

2 回答 2

1

正如您所说,正确解析句子将为您提供 PoS 标签,这将帮助您获得正确的答案。不幸的是,您展示的示例语法很差,因此即使是最好的解析器也可能会遇到困难。

您是否有足够的精选数据来训练神经网络?LSTM 可能会设法充分了解这些句子中实际使用的语法,从而成功地进行 NER。

在您给出的示例中,要查找的名称都是单个标记。如果这是典型的,它将使工作更容易。

下面的评论说没有足够的数据来训练神经网络。给出的几个例子是非常刻板的。是否可以使用上一个和下一个标记作为预测变量来训练朴素贝叶斯分类器?

于 2019-06-11T11:19:34.913 回答
1

您可能已经发现非机器学习实体在您的情况下并不理想,因为它们没有考虑上下文。我想你有几个选择。

选项 1:简单实体

我刚刚通过将您的三个话语添加到名为“Sales org”的意图中进行测试,然后创建一个名为“Scope”的简单实体。我在这些话语的末尾将 IS、IS 和 ME 标记为 Scope 实体。然后,当我测试“give me sales org for fpc 12234 for is?”时,LUIS 能够正确地将“is”识别为实体,而不是“me”。

调用 LUIS 后,你的机器人代码可以验证识别的实体,以确保它在可接受的值列表中。

选项 2:角色

如果您仍想使用列表实体,您仍然可以让 LUIS通过使用角色为您提供有关实体的上下文信息

我刚刚通过使用您的四个值 IS、ME、AN 和 AM 创建一个名为“ScopeName”的实体进行了测试。然后,我为该实体创建了两个角色:“范围”和“falsePositive”。然后我标记了“销售组织”话语中的实体,如下所示:

在此处输入图像描述

如果您这样做,当 IS、ME、AN 和 AM 出现在您不希望它们被识别的句子部分时,LUIS 仍会识别它们,但您会知道在您的机器人代码中忽略它们因为他们将被分配“falsePositive”角色。

于 2019-06-13T22:31:54.640 回答