необходимое условие, чтобы исправить странные леммы? - PullRequest
0 голосов
/ 13 октября 2018

( Выполнено в jupyter notbook ) Я применяю лемматизацию к документам, которые я токенизировал, и не могу не заметить, что слово «нас» лемматизируется в «u» каждый раз, когдане имеет смысла с точки зрения ясности и может привести людей к пониманию этого как к чему-то другому.Я пропускаю условие для моей функции pos?Как я мог решить эту проблему?

Определение функции

from nltk import pos_tag

def penn2wordNet(treebank_tags):
    wordNet_tag = {'NN':'n', 'JJ':'a',
                  'VB':'v', 'RB':'r'}
    try:
        return wordNet_tag[penntag[:2]]
    except:
        return 'n'
paired_tags = []
for doc in wordTokens:
    paired_tags.append(pos_tag(doc))
    print(paired_tags)

snippet output of the code above

Лемматизация токенов

    from nltk.stem import WordNetLemmatizer
wnl = WordNetLemmatizer()

print(wordTokens[1])
lemmatized_wordTokens = []
for index in range(len(paired_tags)):
    lemmatized_wordTokens.append(([wnl.lemmatize(word, pos=penn2wordNet(tag)) for word, tag in paired_tags[index]]))
print(lemmatized_wordTokens[1])

output after lemmatization showing before and after

1 Ответ

0 голосов
/ 13 октября 2018

Ваша функция penn2wordNet назначает существительный POS-тег «us», хотя pos_tag(['us']) возвращает [('us', 'PRP')].Это заставляет WordNetLemmatizer рассматривать «нас» как существительное.Вы должны добавить дополнительное условие для обработки личных местоимений.

...