Как сделать эмпирический анализ в алгоритме stemming - PullRequest
0 голосов
/ 11 июня 2018

Привет, ребята, так что я не совсем понимаю, как проводить эмпирический анализ алгоритма стемминга, например, Ланкастера и Портера, потому что у них нет эффективности по времени по сравнению с алгоритмом сортировки.

ЧтоЯ попытался импортировать их оба на NLTK, затем время их обоих с помощью таймера в Python и сделать нормализацию данных в 1000 раз, но я не слишком уверен, что это означает, что это означает, что проводить эмпирический анализ на основе алгоритма слова илиэто совершенно другое?

1 Ответ

0 голосов
/ 15 июня 2018

Эмпирический анализ сам по себе означает просто анализ (обычно оценку) ваших «вещей» (алгоритм, теория, приложение, код) по некоторым данным (в отличие от теоретической / логической оценки).Какие данные вы используете (и какие вещи вы оцениваете) могут отличаться.Поскольку время, которое требуется, например, для 1000 слов, легко измерить, это действительно легко оценить эмпирически.Другим способом было бы оценить качество вывода (что, я полагаю, то, что вы хотите сделать).Вы можете сделать это, когда у вас есть какие-либо данные (скажем, список слов и их основ или лемм), запустите свой стеммер / лемматизатор и посмотрите, сколько раз он понял это правильно.В wordnet есть что-то, что может вам помочь (поскольку синтаксисы в wordnet содержат информацию о лемме (которую вы также можете интерпретировать как основание), есть разница между основанием и лемматизацией, но некоторые поиски или поиск здесь в SO объяснят, что в болееподробно).

Вам может помочь что-то вроде следующего:

>>> from nltk.corpus import wordnet as wn
>>> d = wn.synsets('dogs')[0]
>>> d.lemmas()
[Lemma('dog.n.01.dog'), Lemma('dog.n.01.domestic_dog'), 
Lemma('dog.n.01.Canis_familiaris')]

Требуется первая синхронизация для слова «собаки» (обычно для данного слова есть несколько синтаптов), ииспользуя .lemmas (), вы можете получить доступ к его леммам. Итак, теперь у вас есть пара слово-лемма. Запустите ваш stemmer / lemmatizer на входном слове, посчитайте, сколько раз он получил правильную основу / лемму, сделайте это для каждого имеющегося у вас stemmer, и вот, пожалуйста. Вам нужно будет немного подробнее разобраться (какой набор и какую лемму взять, например), но, надеюсь, это поможет вам в пути.

...