Изучение популярного подхода к извлечению тем из текста

Обратите внимание на огромное количество текста, который в настоящее время находится в обращении. Новостные статьи, сообщения в блогах, онлайн-обзоры, электронные письма и резюме — все это примеры текстовых данных, которые существуют в огромных количествах.

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

Именно здесь в игру вступает тематическое моделирование. Тематическое моделирование — это подход к обучению без учителя, который позволяет нам извлекать темы из документов.

Он играет жизненно важную роль во многих приложениях, таких как кластеризация документов и поиск информации.

Здесь мы предоставляем обзор одного из самых популярных методов тематического моделирования: латентный семантический анализ.

Важное примечание

Прежде чем приступить к анализу латентной семантики, важно понять, что вообще означает «тема» в НЛП.

Тема определяется набором тесно связанных слов. Например, слова «картошка», «суп» и «есть» могут представлять тему «еда».

Поскольку документы не ограничены ограниченным набором слов, они обычно содержат несколько тем. Мы можем назначить документ теме, найдя тему, с которой документ наиболее тесно связан.

Скрытый семантический анализ

Скрытый семантический анализ (LSA) — это метод, который позволяет нам извлекать темы из документов путем преобразования их текста в матрицы тема-слово и тема-документ.

Процедура LSA относительно проста:

  1. Преобразование корпуса текстов в матрицу терминов документа
  2. Реализуйте разложение усеченного сингулярного значения
  3. Кодировать слова/документы с извлеченными темами

Просто, верно?

Ладно, возможно, я упустил некоторые детали. Давайте рассмотрим каждый шаг по одному.

1. Преобразование необработанного текста в матрицу терминов документа

Прежде чем извлекать темы из документов, текст должен быть преобразован в матрицу терминов документа. Это часто делается с помощью набора слов или алгоритма TF-IDF.

2. Реализовать усеченное разложение по сингулярным числам

Усеченная сингулярная декомпозиция (SVD) лежит в основе LSA. Операция является ключом к получению тем из данного набора документов.

Математически это можно объяснить следующей формулой:

Формула на первый взгляд выглядит устрашающе, но она довольно проста.

С точки зрения непрофессионала, операция разлагает многомерную матрицу документа-термина на 3 меньшие матрицы (U, S и V).

Переменная A представляет собой матрицу терминов документа со значением, основанным на подсчете, назначенным между каждым документом и парой слов. Матрица имеет размеры n x m, где n представляет количество документов, а m представляет количество слов.

Переменная U представляет собой матрицу тем документа. По сути, его значения показывают силу связи между каждым документом и производными от него темами. Матрица имеет размеры n x r, где n представляет количество документов, а r представляет количество тем.

Переменная S представляет собой диагональную матрицу, которая оценивает «силу» каждой темы в коллекции документов. Матрица имеет размеры r x r, где r представляет количество тем.

Переменная V представляет собой матрицу слова-темы. Его значения показывают силу связи между каждым словом и производными темами. Матрица имеет размеры m x r, где m представляет количество слов, а r представляет количество тем.

Обратите внимание, что хотя количество документов и слов в корпусе всегда постоянно, количество тем не является фиксированной переменной, поскольку оно определяется теми, кто выполняет операцию. В результате вывод SVD зависит от количества тем, которые вы хотите извлечь. Например, SVD, извлекающий 3 темы, даст другие матрицы по сравнению с SVD, извлекающей 4 темы.

3. Кодировать слова/документы производными темами

С помощью операции SVD мы можем преобразовать матрицу терминов документа в матрицу темы документа (U) и матрицу темы слова (V). Эти матрицы позволяют нам найти слова с самой сильной ассоциацией с каждой темой.

Мы можем использовать эту информацию, чтобы решить, что представляет собой каждая производная тема.

Мы также можем определить, какие документы относятся к какой теме.

Ограничения

LSA позволяет нам быстро и эффективно раскрывать основные темы в документах. Скажем так, у него есть свои недостатки.

Во-первых, при проведении АЛП неизбежна некоторая потеря информации.

Когда документы преобразуются в матрицу терминов документа, порядок слов полностью игнорируется. Поскольку порядок слов играет большую роль в семантической ценности слов, его игнорирование приводит к потере информации в процессе моделирования темы.

Кроме того, LSA не может учитывать омонимию или полисемию. Поскольку этот метод оценивает слова на основе контекста, в котором они представлены, он не может идентифицировать слова с несколькими значениями и различать эти слова по их использованию в тексте.

Также сложно определить оптимальное количество тем для данного набора документов. Несмотря на то, что существует несколько подходов к поиску идеального количества тем для представления набора документов, не существует надежного подхода к достижению этой цели.

Наконец, в LSA отсутствует интерпретируемость. Даже после успешного извлечения тем с наборами слов с сильными ассоциациями может быть сложно извлечь из них информацию, поскольку трудно определить, какую тему представляет каждый набор терминов.

Пример успеха

Теперь, когда мы рассказали, что делает LSA, давайте посмотрим, как мы можем реализовать это на Python.

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

Мы будем использовать набор данных, содержащий обзоры музыкальных инструментов, и посмотрим, как мы можем извлечь из них основные темы. Набор данных (без авторских прав) можно получить здесь.

Вот предварительный просмотр данных:

Первым шагом является преобразование этих обзоров в матрицу терминов документов.

Для этого нам нужно будет выполнить некоторую предварительную обработку текста. Это влечет за собой нижний регистр всего текста, удаление знаков препинания, стоп-слов, коротких слов (то есть слов менее 3 символов) и сокращение каждого слова до его базовой формы с помощью основы.

Всего этого можно добиться с помощью функции preprocess_string, которая превращает заданный текст в список обработанных токенов.

Вот быстрый предварительный просмотр текста после предварительной обработки.

Теперь мы можем преобразовать эти обработанные обзоры в матрицу терминов документа с моделью мешка слов.

Далее мы должны реализовать на этой матрице усеченное сингулярное разложение. В библиотеке Gensim мы можем использовать LSImodel для построения модели, выполняющей SVD на заданной матрице.

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

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

Опять же, мы можем получить оценку согласованности с помощью модуля Gensim. Давайте посмотрим, как оценивается согласованность в диапазоне от 2 до 10 тем.

Оценка согласованности является самой высокой с 2 ​​темами, так что это количество тем, которые мы извлечем при выполнении SVD.

Мы можем получить 2 темы из матрицы документа-термина. В результате мы можем увидеть, какие слова имеют самую сильную связь с каждой темой, и сделать вывод, что эти темы представляют.

Давайте посмотрим на 5 слов, с которыми каждая тема имеет самую сильную ассоциацию.

Исходя из заданных слов, тема 0 может представлять обзоры, касающиеся звука или шума, возникающего при использовании продукта, а тема 1 может представлять собой обзоры, касающиеся самих частей оборудования.

Кроме того, мы можем видеть, какие значения модель присваивает каждой паре документа и темы.

Как упоминалось ранее, документы обычно имеют несколько тем. Однако некоторые темы имеют более сильную связь с документами, чем другие. Итак, мы можем определить, к какой теме относится документ, найдя ту, которая регистрирует наибольшее значение по величине.

В качестве примера рассмотрим образец обзора.

Выборочный обзор регистрирует оценку 0,88 и 0,22 по темам 0 и 1 соответственно. Хотя в обзоре присутствуют обе темы, тема 0 имеет большее значение, чем тема 1, поэтому мы можем отнести этот обзор к теме 0.

Давайте посмотрим обзор, относящийся к каждой теме.

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

Заключение

Теперь вы получили некоторое представление о том, как можно найти основные темы в наборе документов с помощью LSA.

Хотя этот метод является относительно быстрым и эффективным, его следует использовать с осторожностью, учитывая его ограничения.

Желаю вам удачи в ваших начинаниях НЛП!

Ссылка

  1. Маколи, Дж. (nd). Данные о продуктах Amazon. Данные обзора Amazon. Получено 1 марта 2022 г. с http://jmcauley.ucsd.edu/data/amazon/.