我使用以下方法返回带有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%的不正确标签中有“转向”一词。
示例:
Object | Windows | MapReduce (Linux)
---------------------------------------------------------------------
STEERING COLUMN | NN NN | VBG NN
STEERING WHEEL | NN NN | VBG NN
POWER STEERING | NN NN | NN VBG
任何关于调试这些差异的指导都将不胜感激!
1条答案
按热度按时间vx6bjr1n1#
结果表明,在Java8中,标记器更精确。
windows版本在java8中运行,而mapreduce版本在java7中运行。