我正在閱讀一系列句子,並使用NLTK的斯坦福POS機標籤標記每個單詞。我得到像這樣的輸出:Python:將NLTK Stanford POS標籤映射到WordNet POS標籤
wordnet_sense = []
for o in output:
a = st.tag(o)
wordnet_sense.append(a)
輸出:[[(u'feel', u'VB'), (u'great', u'JJ')], [(u'good', u'JJ')]]
我想這些話與他們的POS映射,使它們在WordNet的認可。
我已經嘗試這樣的:
sense = []
for i in wordnet_sense:
tmp = []
for tok, pos in i:
lower_pos = pos[0].lower()
if lower_pos in ['a', 'n', 'v', 'r', 's']:
res = wn.synsets(tok, lower_pos)
if len(res) > 0:
a = res[0]
else:
a = "[{0}, {1}]".format(tok, pos)
tmp.append(a)
sense.append(tmp)
print sense
輸出:[Synset('feel.v.01'), '[great, JJ]'], ['[good, JJ]']]
所以feel
是公認的動詞,但是great
和good
不會被識別爲形容詞。我還檢查了great
和good
是否屬於Wordnet,因爲我認爲如果他們不在那裏,他們沒有被映射,但他們是。誰能幫忙?
另請參閱:https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html – alvas