Я читаю список предложений и помещает каждое слово с помощью тестера TST Stanford POS. Я получаю выходы так:Python: map NLTK Стэнфордские теги POS для тегов POS для WordNet
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