我可能在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似乎会导致这种行为。就好像这两个选项会导致使用完全不同的标记方法。如果这确实是一个错误或者有一个聪明的解决方法,我很好奇吗?
答案 0 :(得分:0)
使用POS标记器时,需要对括号进行标准化。它是根据括号标准化的数据进行培训的。