LSA (Latent Semantic Analysis) – это метод обработки и анализа текстовых данных, который помогает выявить скрытые семантические связи между словами. Иными словами, LSA (скрытый семантический анализ) – это способ понять, какие слова в тексте связаны между собой по смыслу.
LSA использует математические методы, чтобы представлять тексты в виде числовых векторов и находить связи между этими векторами. Он основывается на предположении, что слова, которые встречаются в похожих контекстах, имеют схожие значения.
LSA может использовать матрицу терминов документа, которая описывает вхождения терминов в документах; это разреженная матрица, строки которой соответствуют терминам, а столбцы – документам. Типичным примером взвешивания элементов матрицы является tf-idf (частота терминов – обратная частоте документа): вес элемента матрицы пропорционален количеству встречаемости терминов в каждом документе, где редкие термины взвешиваются, чтобы отразить их относительную важность.
Эта матрица также является общей для стандартных семантических моделей, хотя она не обязательно явно выражается в виде матрицы, поскольку математические свойства матриц используются не всегда.
LSA принимает на вход большие объемы необработанного текста, разобранного на слова и разделенного на осмысленные отрывки, такие как предложения или абзацы. Хотя эта техника основана на статистике использования слов в обычном языке, ее анализ гораздо глубже и мощнее, чем простые методы подсчета и сопоставления частот, совпадений или ключевых слов. LSA определяет отношения между словами и документами путем машинного анализа больших коллекций текстов в два разных этапа.
Подготовка данных. Начальный шаг заключается в предварительной обработке текстовых данных, такой как удаление стоп-слов (часто встречающихся слов, которые не несут особого смысла), лемматизация (приведение слов к единой форме) и токенизация (разделение текста на отдельные слова).
Построение матрицы термин-документ. LSA строит матрицу, называемую матрицей термин-документ, в которой строки представляют слова, а столбцы – документы. Каждая ячейка матрицы хранит информацию о том, сколько раз слово встретилось в соответствующем документе.
Сокращение размерности. Матрица термин-документ может быть очень большой и неэффективной для анализа. Поэтому LSA использует методы снижения размерности, такие как сингулярное разложение (SVD), чтобы сократить размерность матрицы и выделить наиболее значимые семантические связи.
Выявление семантических связей. После снижения размерности матрицы LSA представляет тексты в новом пространстве, называемом семантическим пространством. В этом пространстве похожие слова или тексты будут иметь близкие числовые векторы. Можно сравнивать расстояния между векторами, чтобы определить степень семантической близости между словами.
Сначала строится фоновое семантическое пространство. Семантическое пространство похоже на большой обучающий набор, который предоставляет LSA полный контекст для оценки потенциальных ответов. Фоновое пространство создается на основе очень большой коллекции текстов и должно содержать не менее 100 000 абзацев текста (Landauer, McNamara, Dennis, & Kintsch, 2007). Материалы, включенные в семантическое пространство, подбираются таким образом, чтобы обеспечить включение всех словарных терминов, которые могут встречаться в анализируемом тексте. Качество семантического пространства является одним из основных факторов, определяющих успех использования LSA. Семантическое пространство – это не хранилище статей, это скорее фоновое пространство, которое позволяет системе делать выводы об общих семантических связях (Martin & Berry, 2010). Результатом такого анализа является семантическое пространство с несколькими сотнями измерений, в котором каждое слово и каждый документ представлен вектором вещественных чисел – по одному вектору на каждое измерение.
Когда семантическое пространство создано, вторым шагом является проецирование новых сегментов текста (например, коротких ответов) в семантическое пространство для анализа. Эти сегменты текста представляются в виде векторов в пространстве. Эти векторы можно сравнивать друг с другом с помощью метрик, отражающих относительное семантическое сходство между текстами, например косинуса угла между векторами, представляющими два ответа.
Чем LSI отличается от LSA
Иногда эти алгоритмы упоминаются как синонимы, однако речь идёт о совершенно разных алгоритмах.
LSI (Latent Semantic Indexing) и LSA (Latent Semantic Analysis) – это два метода автоматического анализа текстов, которые отличаются подходом к выявлению семантических связей между словами и документами.
Основные различия:
В основе LSI – линейная алгебра и сингулярное разложение матриц для снижения размерности векторного представления текстов. LSA использует статистические методы и проекцию в латентное семантическое пространство.
LSI оперирует только словами и их взаимосвязями. LSA кроме этого учитывает значения слов, используя тезаурусы.
LSI лучше масштабируется на большие объемы данных. LSA требует больших вычислительных ресурсов.
LSI чаще применяется для поиска информации и рекомендательных систем. LSA – для задач автоматической обработки естественного языка.
LSI реже используется в чистом виде, чаще в сочетании с другими методами. LSA применяется как самостоятельный подход.
Таким образом, главное отличие в том, что LSI опирается в основном на статистические связи между словами, а LSA учитывает семантику на более глубоком уровне.
Достоинства
Векторы, сформированные на основе целых документов средствами LSA, отлично подходят для классификации документов, семантического поиска и кластеризации.
Недостатки
Генерируемые LSA векторы “Тема – Слово” дают недостаточную точность для семантических умозаключений, классификации и кластеризации фраз или составных слов.
Вложения (эмбеддинги) Word2vec показали вчетверо большую точность в сравнении с эквивалентами модели LSA.
Практическое применение
LSA может использоваться для различных задач, таких как поиск похожих документов, рекомендации контента и извлечения смысла из больших наборов текстовых данных. Он помогает выявить общие или связанные темы в текстах и позволяет сделать более точный анализ связей между словами, даже если они не встречаются вместе в одном тексте.
LSA не является традиционной программой обработки естественного языка или искусственного интеллекта; она не использует созданные человеком онтологии, словари, базы знаний, семантические сети, грамматики, синтаксические анализаторы или морфологии. LSA представляет собой важный концептуальный шаг вперед по сравнению с алгоритмами поиска по ключевым словам, поскольку эта технология обеспечивает основу для оценки семантического сходства содержания тяжелых существительных и глаголов, которые обеспечивают большую часть смысла в текстовых отрывках.
Чтобы понять эту возможность, рассмотрим примеры коротких ответов, таких как “больше не ужинать” и “пропустить завтрак”. С точки зрения поиска ключевых слов эти две фразы не содержат общих слов и кажутся независимыми. Однако эти две фразы содержат термины, семантически схожие по многим параметрам: ужин и завтрак – это оба приема пищи, “нет” и “пропустить” подразумевают отсутствие, и в целом эти фразы могут иметь схожий смысл в рамках общего абзаца.
Алгоритмы LSA можно использовать для оценки сходства отдельных терминов, встречающихся в этих двух фразах, и тем самым количественно оценить семантическое сходство этих фраз. Таким образом, в отличие от алгоритма поиска по ключевым словам, который бы сделал вывод об отсутствии совпадений между этими фразами, LSA оценивает эти две фразы как семантически схожие, что представлено косинусом между векторами для каждой фразы.