Stanford nlp 与本地MaxentTagger标记不同的联机解析器标记

Stanford nlp 与本地MaxentTagger标记不同的联机解析器标记,stanford-nlp,Stanford Nlp,我直接运行MaxentTagger,如下所示: private void test() { MaxentTagger tagger = new MaxentTagger(modelsdir + "wsj-0-18-bidirectional-distsim.tagger"); String input = "Someone will trip over that cable."; System.out.println(tagger.

我直接运行MaxentTagger,如下所示:

private void test() {
    MaxentTagger tagger = new MaxentTagger(modelsdir + "wsj-0-18-bidirectional-distsim.tagger");
    String input = "Someone will trip over that cable.";
    System.out.println(tagger.tagString(input));
}
并获得以下输出:

有人会在那条电缆里绊倒的

但是当使用在线解析器时,我得到以下输出:

你的问题

有人会被那根电缆绊倒的

标记

某人/NN将/MD绊倒/VB越过/RP该/DT电缆/NN./

我尝试使用不同的模型:

MaxentTagger tagger = new MaxentTagger(models + "english-left3words-distsim.tagger");
有人会在那条电缆里绊倒你

但我似乎无法得到与在线版本相同的结果

为什么我在使用MaxentTagger与在线版本相比会得到不同的单词标签


初始化MaxentTagger时我应该使用参数吗?

通过“在线解析器”您是指CoreNLP演示还是Stanford parser演示?后者将从句子的解析树中分配词性标记,这可能不同于词性标记器分配的标记。

我指的是斯坦福解析器演示。我重新阅读了文档,斯坦福解析器似乎应用了基于解析的标记,正如您刚才所说的,而pos标记器使用HMM模型。通过使用管道,仅使用“tokenize,ssplit,parse”作为属性,我成功地获得了与在线演示相同的输出。事实上,这是正确的。但是,FWIW,tagger是一个有区别的maxent序列tagger,而不是HMM。