Тематическое моделирование - это мощный метод обработки естественного языка для поиска скрытого смысла в тексте. Он использует концепцию скрытого распределения Дирихле (LDA). Алгоритм LDA следующий:

Из различных инструментов, доступных для моделирования тем, мне больше всего нравится MALLET на основе Java. Его реализация очень точна по сравнению с библиотекой Gensim на Python. MALLET основан на методе выборки Гиббса и, следовательно, отличается от Gensim.

Установка MALLET (в Mac OS)

  1. Установите Java Development Kit.
  2. Скачать МОЛОТОК с сайта.
  3. Распакуйте MALLET в каталог в вашей системе. Имя каталога выглядит как mallet-2.0.8.

Подготовка текстового корпуса

Для работы MALLET необходимо очистить корпус текста, и каждая фраза будет считаться отдельным файлом с расширением «.txt».

а) Очистка текста. Этот шаг включает в себя основные шаги по очистке текста. пример выглядит следующим образом:

б) Преобразование каждой строки фрейма данных в отдельный файл .txt. Следующий код можно использовать для преобразования каждой строки фрейма данных в файл .txt.

Бегущий МОЛОТОК

MALLET запускается из Терминала на Mac. Ниже приведены инструкции:

  • Открыть Терминал
  • Измените свой рабочий каталог на папку MALLET (mallet-2–0–8). Пример: $ cd /Users/shivikakbisen/mallet-2.0.8
  • Создайте файл «.mallet». Этот файл создается следующим образом:

  • Пусть X = путь к папке, содержащей все файлы .txt. и Y = имя файла .mallet. Вам просто нужно ввести X и Y в следующей команде.

$. / bin / mallet import-dir - - input X - - output Y \ - - keep-sequence - - remove-stopwords

  • Подберите модель темы следующим образом:

$. / bin / mallet train-themes - - input Y \ - - num-themes 20 - - num-iterations 1000 - - оптимизировать -interval 10 - - output-doc-themes doc-themes.txt - output-topic-keys topic-model.txt

  • - - входной Y является файл «.mallet» . Это корпус, который мы создали ранее, и мы хотим найти в нем темы.
  • - - num-themes 20: например, мы хотим, чтобы MALLET определил 20 тем.
  • - - количество итераций 1000: например, мы хотим, чтобы MALLET повторил анализ 1000 раз. Больше итераций может дать нам хорошее качество тем.
  • - - optimize-interval 10: этот гиперпараметр рекомендуется оставить равным 10. Это дало мне хорошие результаты.
  • - - output-doc-themes doc-themes.txt: Чтобы сохранить файл с именем doc-themes.txt. Он сообщает о тематическом составе документов.
  • - - output-topic-keys topic-model.txt: идентифицированные темы сохраняются в файл с именем topic-model.txt.

Я получил потрясающие результаты, используя МОЛОТОК. В текстовом корпусе, который я использовал, были сообщения в социальных сетях. Ниже приведены актуальные темы, извлеченные с помощью MALLET. Я назвал темы для объяснения. Например, Тема 5 называется «Занятость». В нем есть все слова, относящиеся к объявлениям о вакансиях.

Тематическое моделирование может быть очень полезным шагом при разработке текстовых классификаторов на основе машинного обучения. Это дает нам представление о больших данных за счет мгновенного извлечения тем.