Я пытался понять, почему это происходит, но надеюсь, что кто-то сможет пролить свет на это. Я пытаюсь пометить следующий текст:
ae0.475 X mod
ae0.842 X mod
ae0.842 X mod
ae0.775 X mod
, используя следующий код:
import nltk
file = open("test", "r")
for line in file:
words = line.strip().split(' ')
words = [word.strip() for word in words if word != '']
tags = nltk.pos_tag(words)
pos = [tags[x][1] for x in range(len(tags))]
key = ' '.join(pos)
print words, " : ", key
, и получаю следующий результат:
['ae0.475', 'X', 'mod'] : NN NNP NN
['ae0.842', 'X', 'mod'] : -NONE- NNP NN
['ae0.842', 'X', 'mod'] : -NONE- NNP NN
['ae0.775', 'X', 'mod'] : NN NNP NN
И я его не понимаю. Кто-нибудь знает, в чем причина такого несоответствия? Я не особо обращаю внимание на точность тегов pos, потому что я пытаюсь извлечь некоторые шаблоны, но мне кажется, что в разных случаях используются разные теги для слова, которое выглядит «почти» одинаково.
В качестве решения я заменил все числа на 1 и решил проблему:
['ae1.111', 'X', 'mod'] : NN NNP NN
['ae1.111', 'X', 'mod'] : NN NNP NN
['ae1.111', 'X', 'mod'] : NN NNP NN
['ae1.111', 'X', 'mod'] : NN NNP NN
, но мне любопытно, почему он пометил экземпляр разными тегами в моем первом случае. Есть предложения?