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