Детерминирована ли маркировка POS?

Я пытался понять, почему это происходит, но надеюсь, что кто-то сможет пролить свет на это. Я пытаюсь пометить следующий текст:

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

, но мне любопытно, почему он пометил экземпляр разными тегами в моем первом случае. Есть предложения?

8
задан Legend 30 June 2011 в 21:11
поделиться