在Stanford NLP POS标记器中,设置normalizeParenthese = True会更改POS结果

时间:2017-08-16 01:53:01

标签: stanford-nlp

我可能在POS标记器中发现了一个错误。标记结果会改变我是否使用" -tokenizerOptions"标记为" normalizeParentheses = True"或者错误。我使用通过以下方式设置的服务器从python访问标记器:

pos_args=['java', '-mx400m', '-cp', homedir+'/models/stanfordpostagger.jar','edu.stanford.nlp.tagger.maxent.MaxentTaggerServer','-model','english-bidirectional-distsim.tagger','-port','2021','-loadClassifier',english.all.3class.distsim.crf.ser.gz','-tokenizerOptions','normalizeParentheses=true']
POS=Popen(pos_args)

我使用SNER包来实际进行标记。

如果我标记句子"(Bob很好)"如果normalizeParentheses = true,我得到:

[(u'-LRB-', u'-LRB-'),
 (u'Bob', u'NNP'),
 (u'is', u'VBZ'),
 (u'nice', u'JJ'),
 (u'-RRB-', u'-RRB-')]

但如果我使用normalizeParentheses = false,我会得到:

[(u'(', u'NNP'),
 (u'Bob', u'NNP'),
 (u'is', u'VBZ'),
 (u'nice', u'JJ'),
 (u')', u'NN')]

并且这个版本的标记器在许多单词不标记时也标记为外来单词(' FW')。

我尝试过许多其他选项,只有这一个和normalizeOtherBrackets = False似乎会导致这种行为。就好像这两个选项会导致使用完全不同的标记方法。如果这确实是一个错误或者有一个聪明的解决方法,我很好奇吗?

1 个答案:

答案 0 :(得分:0)

使用POS标记器时,需要对括号进行标准化。它是根据括号标准化的数据进行培训的。