Stanford NLP POS Tagger 对非常简单的短语有问题?

Stanford NLP POS Tagger has issues with very simple phrases?

我在使用 Stanford NLP Parser/POS Tagger 的应用程序中发现了不一致行为的示例,并且我能够在线复制它 http://nlp.stanford.edu:8080/corenlp/process。我使用的是 3.60 版:

以下是我目前发现的 3 个问题:

我知道这种语言相当含糊,但我想知道我是否可以信任这个库,即使是那些简单的短语。我也想知道我是否做错了什么。我单独尝试了每个例子的问题案例,或者换句话说,在单独的句子中,问题仍然存在。

这是预期的行为:

感谢任何帮助!谢谢

你没有做错任何事。当然欢迎您自己决定对任何工具的信任程度,但我怀疑您会在任何训练有素的解析器中看到类似的问题 empirically/statistically。关于您的问题:

  • 句号在模型构建中被视为与任何其他标记一样,因此,是的,它们可以影响所选的解析。
  • 英语确实有很多歧义(就像所有其他人类语言一样),以及是否将以 ing 结尾的形式解释为动词、名词的问题(口头名词或动名词)或形容词是常见的。解析器并不总是正确的。
  • 就它做出的特别错误的选择而言,它们通常反映了 usage/domain 解析器训练数据与您正在尝试的句子之间的不匹配。训练数据主要是新闻文章——上个千年的新闻文章——尽管我们确实混合了一些其他数据并偶尔添加。所以:

    • 使用 flagging 作为动词,在现代互联网开发人员中很常见,但在训练数据中根本没有出现,因此倾向于选择 JJ 也就不足为奇了标记,因为这是对训练数据中唯一案例的分析。
    • 在新闻文章中 drinking 只是一个更常见的名词,讨论了 underage drinkingcoffee drinking酒后驾车

词性标注器的不同结果让我抓狂,所以为了完整性检查,我终于写了一些东西来快速比较通常使用的三种结果(Stanford NLP、NLTK 3.2.1 和 Senna) 它还对它们进行计时,因为一个标记器经常会因某些文本而窒息。 https://github.com/StealthyK/TaggerTimer