2014-01-26 1 views
8

Я использую NLTK со стоп-словами для определения языка документа, используя метод, описанный Алехандро Ноллой по адресу http://blog.alejandronolla.com/2013/05/15/detecting-text-language-with-python-and-nltk/, и он работает достаточно хорошо.Как я могу добавить дополнительные языки для остановки в NLTK?

Я также работаю с некоторыми дополнительными языками, не включенными в пакет стоп-слов NLTK, такими как чешский и румынский языки, и они получают ложные совпадения как другие языки. Это языки в словах:

['датский', 'голландский', 'английский', 'финский', 'французский', 'немецкий', 'венгерский', 'итальянский', 'норвежский', 'португальский ',' russian ',' spanish ',' swedish ',' turkish ']

Как расширить список языков, поддерживаемых NLTK? Есть ли другие списки дневников, которые я могу добавить? Есть ли документированный метод, который я могу использовать для создания собственных списков дневников?

+1

В случае, если кому-то это будет полезно, дополнительные списки дневников, которые я использовал с моим ныне не существующим проектом, доступны на Github здесь: https : //github.com/Xangis/extra-stopwords –

ответ

5

Googling для «румынских стоп-слов» приносит большое количество ресурсов.

Если вы хотите сделать это самостоятельно, вам просто нужно найти слова, которые являются общими во всех жанрах текста. (Статья, на которую вы ссылаетесь, имеет довольно плохое объяснение того, что представляют собой стоп-слова.) Хорошие кандидаты - это статьи, частицы (если ваш язык имеет их, и они встречаются изолированно), союзы, местоимения и некоторые типы наречий.

Automatically Building a Stopword List for an Information Retrieval System (Rachel Tsz-Wai Lo, Ben He, Iadh Ounis; University of Glasgow, 2008) (PDF) Документирует автоматический метод поиска стоп-слов. Я не рассматривал метод или его результаты.

https://github.com/berkmancenter/mediacloud/blob/master/script/mediawords_generate_stopwords.pl, похоже, имеет реализацию. (Комментарий имеет другие названия, кроме статьи, но не уверен, что с этим связано.)

+1

Tangentially, раздел 2 из http://www.enroweb.com/IMG/pdf/StopwordList_preprint.pdf имеет приятное одностраничное историческое резюме. – tripleee

+0

Спасибо, что получает вторую часть вопроса. Любая идея, как идти о редактировании/изменении того, что находится в NLTK? –

+1

Если это https://github.com/mhawthorne/antonym/tree/master/lib/nltk-data/corpora/stopwords, это просто простой текстовый файл, по одному слову в строке, имя файла - это язык. (Это чей-то клоун, я думаю, но слишком ленив, чтобы выследить мастера. Кроме того, README указывает, что он был скопирован из другого проекта.) – tripleee