2013-05-28 43 views
6

我正在使用Stanford POS Tagger执行POS标签。标记器仅为输入句子返回一个可能的标记。例如,当提供输入句子“The clown weeps。”时,POS标记器产生(错误的)“The_DT clown_NN weeps_NNS ._”。通过Stanford POS Tagger获取多个标签

但是,我的应用程序将尝试解析结果,并可能会拒绝POS标记,因为没有办法解析它。因此,在这个例子中,它会拒绝“The_DT clown_NN weeps_NNS ._”。但会接受“The_DT clown_NN weeps_VBZ ._”。我认为这是解析器的低置信度标记。

因此,我希望POS标记器为每个单词的标记提供多种假设,并通过某种置信度值进行注释。通过这种方式,我的应用程序可以选择具有最高置信度的POS标记,以实现针对其目的的有效分析。

我发现没有办法要求Stanford POS Tagger为每个单词(甚至整个句子)生成多个(n个最佳)标记假设。有没有办法做到这一点? (或者,我也可以使用具有相同性能的另一个POS tagger来支持此功能。)

+0

可能与此相关的(也没有答案)的问题http://stackoverflow.com/questions/15574915/stanford-core-nlp-how-to-get-the-probability-margin错误 –

回答

-1

我们发现POS taggin的默认模型不够好。事实证明,使用不同的模型更好的标签。我们目前正在使用wsj-0-18 -birectional-distsim,对于大多数任务来说性能足够好。我把它给像这样:

props.put("pos.model", 
    "edu/stanford/nlp/models/pos-tagger/wsj-bidirectional/wsj-0-18-bidirectional-distsim.tagger"); 
props.put("annotators", "tokenize, ssplit, pos, ..."); 
pipeline = new StanfordCoreNLP(props); 
+0

有趣的提示,但并没有真正回答我的问题。 :) – a3nm

相关问题