Какой критерий был использован для построения списка английских стоп-слов в nltk (python)? - PullRequest
0 голосов
/ 29 ноября 2018

Интересно, почему такие слова, как «следовательно» или «однако» или «и т. Д.», Например, не включены. Можете ли вы предложить стратегию, чтобы этот список автоматически стал более общим? Одним из очевидных решений является включение каждого слова, которое встречается во всех документах.Однако, возможно, в некоторых документах «поэтому» возникнуть не может.Просто чтобы прояснить, я не говорю об увеличении списка включением слов определенных наборов данных.Например, в некоторых наборах данных может быть интересно отфильтровать некоторые собственные имена.Я не говорю об этом.Я говорю о включении общих слов, которые могут встречаться в любом тексте на английском языке.

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

В заголовке вашего вопроса спрашивается о критериях, которые использовались для составления списка стоп-слов.Взгляд на stopwords.readme() укажет вам на исходный код Snowball , и, основываясь на том, что я там прочитал, я считаю, что список был в основном составлен вручную, и его основной целью было исключение неправильных словоформ вдля того, чтобы обеспечить лучший вклад в стеммерТаким образом, если исключить некоторые неинтересные слова, это не будет большой проблемой для системы.

Что касается того, как вы могли бы составить лучший список, это довольно большой вопрос.Вы можете попробовать вычислить оценку TF-IDF для каждого слова в вашем корпусе.Слова, которые никогда не получают высокую оценку tf-idf (для любого документа), неинтересны и могут попасть в список стоп-слов.

0 голосов
/ 29 ноября 2018

Проблема с обработкой списка стоп-слов заключается в том, что нет хорошего способа собрать все тексты по определенной теме, а затем автоматически отбросить все, что происходит слишком часто.Это может привести к непреднамеренному удалению только темы, которую вы искали - , поскольку в ограниченном корпусе встречается относительно часто.Кроме того, любой список стоп-слов может уже содержать только фразу, которую вы ищете.Например, автоматическое создание списка музыкальных групп 1980-х годов почти наверняка отбросит группу The .

Документация NLTK указывает, откуда появился их список стоп-слов.как:

Стопворд Корпус, Портер и др.

Однако эта ссылка написана не очень хорошо.Похоже, что это было частью «1017 * Porter Stemmer» 1980-х годов (PDF: http://stp.lingfil.uu.se/~marie/undervisning/textanalys16/porter.pdf;, спасибо за ссылку alexis ), но на самом деле это не касается стоп-слов,Другой источник утверждает, что:

Портер и др. Ссылаются на оригинальную статью о портерах Портера, как мне кажется, - Портер, М.Ф. (1980): алгоритм удаления суффиксов.Программа 14 (3): 130—37.- хотя эт и смущает меня.Я помню, как мне говорили, что для английского языка использовались заглавные слова о том, что используемый стеммер был получен из другого источника, вероятно, этого - «Информационный поиск». Автор - CJ Van Rijsbergen (Butterworths, London, 1979).
https://groups.google.com/forum/m/#!topic/nltk-users/c8GHEA8mq8A

Полный текст Ван Рейсбергена можно найти в Интернете (PDF: http://openlib.org/home/krichel/courses/lis618/readings/rijsbergen79_infor_retriev.pdf);, в нем упоминается несколько подходов к предварительной обработке текста, и поэтому он вполне может стоить полного прочтения. С первого взгляда кажется предпочтительным алгоритмсоздание списка стоп-слов ведет к научным исследованиям, таким как

LUHN, HP, «Статистический подход к механизированному кодированию и поиску информации библиотеки», IBM Journal of Research and Development, 1, 309-317 (1957).

, начиная с самых ранних этапов автоматической обработки текста.

...