Тематическое моделирование - это мощный метод обработки естественного языка для поиска скрытого смысла в тексте. Он использует концепцию скрытого распределения Дирихле (LDA). Алгоритм LDA следующий:
Из различных инструментов, доступных для моделирования тем, мне больше всего нравится MALLET на основе Java. Его реализация очень точна по сравнению с библиотекой Gensim на Python. MALLET основан на методе выборки Гиббса и, следовательно, отличается от Gensim.
Установка MALLET (в Mac OS)
- Установите Java Development Kit.
- Скачать МОЛОТОК с сайта.
- Распакуйте 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 называется «Занятость». В нем есть все слова, относящиеся к объявлениям о вакансиях.
Тематическое моделирование может быть очень полезным шагом при разработке текстовых классификаторов на основе машинного обучения. Это дает нам представление о больших данных за счет мгновенного извлечения тем.