Выполнение Stemming выводит jibberish / составные слова - PullRequest
2 голосов
/ 01 апреля 2012

Я экспериментирую с библиотекой python NLTK для обработки естественного языка.

Моя проблема: Я пытаюсь выполнить stemming;приведите слова к их нормированной форме.Но это не производит правильные слова.Правильно ли я использую класс stemming?И как я могу получить результаты, которые я пытаюсь получить?

Я хочу нормализовать следующие слова:

words = ["forgot","forgotten","there's","myself","remuneration"]

... в это:

words = ["forgot","forgot","there","myself","remunerate"]

Мой код:

from nltk import stem
words = ["forgot","forgotten","there's","myself","remuneration"]
for word in words:
    print stemmer.stem(word)

#output is:
#forgot forgotten there' myself remuner

Ответы [ 2 ]

1 голос
/ 01 апреля 2012

Как и adi92, я тоже считаю, что вы ищете лемматизацию. Поскольку вы используете NLTK, вы, вероятно, могли бы использовать интерфейс WordNet .

1 голос
/ 01 апреля 2012

Существует два типа нормализации, которые вы можете выполнить на уровне слов.

  1. Stemming - быстрый и грязный хак для преобразования слов в некоторый токен, который не обязательно является реальным словом, но обычно разные формы одного и того же слова должны отображаться на один и тот же основанный токен

  2. Лемматизация - преобразование слова в некоторую базовую форму (единственное число, настоящее время и т. Д.), Которое само по себе всегда является допустимым словом. Это, очевидно, может быть медленнее и сложнее и, как правило, не требуется для многих задач НЛП.

Вы, похоже, ищете лемматизатор вместо стеммера. Поиск переполнения стека для «лемматизации» должен дать вам много подсказок о том, как настроить один из них. Я играл с этим morpha и нашел его довольно полезным и крутым.

...