Stanford POS Tagger以及分类意图和答复的可能错误

时间:2018-12-12 15:24:32

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

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

  • “嘿(触发词),在对象历史记录XYZ中注明” 或:
  • “嘿(触发词),在对象诊断中记录PQR”
  • (示例中使用的“对象”是占位符,可以用“维护/患者”等字词代替)

我想识别意图和位置。

然后我使用Stanford Parser解析句子,例如解析 “对象历史记录对象中的注释的最后更新时间为5月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. 现在,我要说的是如何使用此信息来获取必要的输出:

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

1 个答案:

答案 0 :(得分:1)

您可以使用TrueCaseAnnotator来解决案例问题:

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

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

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