Найдите «современный» корпус слов nltk

Я создаю классификатор текста, который будет классифицировать текст по темам.

На первом этапе моей программы в рамках очистки данных я удаляю все неанглийские слова. Для этого я использую корпус nltk.corpus.words.words(). Проблема с этим корпусом заключается в том, что он удаляет «современные» английские слова, такие как Facebook, Instagram и т. д. Кто-нибудь знает другой, более «современный» корпус, который я могу заменить или объединить с текущим?

Я предпочитаю корпус nltk, но я открыт для других предложений.

заранее спасибо


person user4550050    schedule 14.06.2017    source источник
comment
Вероятно, более актуально, чем отмеченный дубликат: заголовок stackoverflow.com/questions/3788870/   -  person alexis    schedule 15.06.2017


Ответы (2)


Переосмыслите свой подход. Любой сборник английских текстов будет иметь «длинный хвост» слов, которых вы раньше не видели. Независимо от того, насколько большой словарь вы соберете, вы будете удалять слова, которые не являются «неанглийскими». И с какой целью? Оставьте их, они не испортят вашу классификацию.

Если ваша цель — удалить неанглийский текст, сделайте это на уровне предложения или абзаца, используя статистический подход, например. модели Ngram. Они хорошо работают и требуют минимальных ресурсов.

person alexis    schedule 14.06.2017

Я бы использовал Википедию, но токенизация всего этого занимает довольно много времени. К счастью, это уже сделано за вас. Вы можете использовать модель Word2Vec, обученную на 100 миллиардах слов из Википедии, и просто проверить, слово в модели.

Я также нашел этот проект, в котором Крис создал текстовые файлы из 3 миллионов слов словаря модели.

Обратите внимание, что список слов этого проекта не содержит стоп-слов, поэтому было бы неплохо найти объединение вашего списка из nltk и этого.

person aberger    schedule 14.06.2017