我正在使用SentiWordNet和Apache NLP库开发情感分析工具。
问题是,当我使用NLP库标记句子时,得到的结果如下:
Test_NNP Tweet_NNP is_VBZ ready_JJ now_RB for_IN the_DT change._NN
但是sentiWordNet具有
POS
标签,例如a
,v
,n...etc
如何使用Apache NLP将NNP
,VBZ
,JJ
转换为n
或v
或a
?我应该使用其他库进行标记吗?
最佳答案
从Apache NLP获得的标签是Penn Treebank标签,您必须将标签转换为SentiWordNet兼容标签。
以下功能会将树库标签映射到语音名称的WordNet部分:
def get_wordnet_pos(treebank_tag):
if treebank_tag.startswith('J'):
return 'a'
elif treebank_tag.startswith('V'):
return 'v'
elif treebank_tag.startswith('N'):
return 'n'
elif treebank_tag.startswith('R'):
return 'r'
else:
return ''
关于machine-learning - 使用SentiWordNet和Apache OpenNLP的情感分析工具,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25657854/