我有以下方法返回带有POS标记的句子:
String Sentence = "STEERING COLUMN MOVES"
MaxentTagger taggerObject = new MaxentTagger("left3words-wsj-0-18.tagger");
String TaggedSentence = getTaggedSentence(Sentence, taggerObject);
在Windows环境中,单词" STEERING COLUMN"返回:NN NN(哪个是正确的) 但是,MapReduce中实现的完全相同的代码返回:VBG NN
出于某种原因,当我在MapReduce的Mapper类中调用此方法时,它将STEERING和COLUMN标记为单独的对象/概念而不是一个。
在MapReduce中标记的90%的对象与Windows匹配。 10%不正确,90%的错误标签中都有单词STEERING。
示例:
Object | Windows | MapReduce (Linux)
---------------------------------------------------------------------
STEERING COLUMN | NN NN | VBG NN
STEERING WHEEL | NN NN | VBG NN
POWER STEERING | NN NN | NN VBG
非常感谢有关调试这些差异的任何指导!
答案 0 :(得分:0)
事实证明Tagger在Java 8中更准确。
Windows版本在Java 8中运行,而MapReduce版本在Java 7中运行。