【问题标题】:Possible error with Stanford POS Tagger and classifying intent and the replies斯坦福 POS Tagger 和分类意图和回复可能出现错误
【发布时间】:2019-05-13 17:55:55
【问题描述】:

我有一个特定的用例,一个人会说这样的话:

  • “嘿(触发词),对象历史记录 XYZ 中的注释” 或:
  • “嘿(触发词),在对象诊断中记录 PQR”
  • (示例中使用的“object”是一个占位符,可以替换为“Maintenance/Patient”等词)

我想识别意图和插槽。

然后我使用 Stanford Parser 来解析句子,例如解析 "Note in object history object was last updated in May 28" 给出了这个元组列表:

[('Note', 'VB'),
 ('in', 'IN'),
 ('object', 'NN'),
 ('history', 'NN'),
 ('object', 'NN'),
 ('was', 'VBD'),
 ('last', 'RB'),
 ('updated', 'VBN'),
 ('in', 'IN'),
 ('may', 'MD'),
 ('twenty', 'CD'),
 ('eighteen', 'CD')]
  1. 现在,我的重点是如何使用这些信息来获得必要的输出:

    • 需要注意的地方(我们在 DB 中有一个字段:Object History) 和
    • 注意事项(对象最后一次更新是在 5 月 28 日)。
  2. 另一个问题是由于 NLP 的输入来自 ASR 系统,因此缺少大写字母。并且 POS 标记器错误地将“note”标记为“NN”(而不是“VB”)。理想情况下,'note'/'record' 应该是动词。如何解决这个可能的错误?

【问题讨论】:

  • 您可以简单地删除 "Hey (Trigger Word), " 序言,然后将下一个单词大写(*"Note"/"Record"/etc.)。如果 POSTagger 仍然将其误分类为 NN,您可以保留一个通常开始一个句子的已知动作动词的列表,并将第一个项目合并到 POS 输出中。 (但也要在 POSTagger 上提交一个错误)
  • 非常感谢。我会记住这一点。现在为第 1 部分添加了另一个查询。什么样的分块将帮助我获得句子的第二部分(注意事项)。我可以从分块“位置注释”中获取注释的位置,但我仍然不确定如何获取该部分:要注意什么。非常感谢。

标签: nlp speech-recognition stanford-nlp pos-tagger


【解决方案1】:

您可以使用 TrueCaseAnnotator 修复大小写问题:

https://stanfordnlp.github.io/CoreNLP/truecase.html

一般来说,您可能只想使用 TokensRegex 并编写规则模式来处理这些模板。更多信息在这里:

https://stanfordnlp.github.io/CoreNLP/tokensregex.html

【讨论】:

  • 非常感谢,我也会尝试使用 tokensregex 看看它有什么用处。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多