Я пытался понять, почему это происходит, но надеюсь, что кто-то может пролить свет на это. Я пытаюсь пометить следующий текст:
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
И я не понимаю. Кто-нибудь знает, в чем причина такого несоответствия? Я не очень требователен к точности тегов сообщений, потому что я пытаюсь извлечь некоторые шаблоны, но, похоже, в разных случаях используются разные теги для слова, которое выглядит «почти» одинаково.
В качестве решения я заменил все цифры на 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
но мне любопытно, почему он пометил экземпляр разными тегами в моем первом случае. Какие-либо предложения?