Добро пожаловать в эту познавательную статью, в которой мы погрузимся в увлекательный мир тематического моделирования. Мы раскроем истинную суть тематического моделирования, изучим его внутреннюю работу и узнаем, почему оно стало незаменимым инструментом. Попутно мы раскроем наиболее важные методы, используемые в отрасли. Чтобы сделать вещи еще более увлекательными, мы продемонстрируем приложения, работающие в реальном времени, и примеры использования, в которых эти методы проявляют себя.

Но не волнуйтесь! Мы не оставим вас озадаченными в море теории. Мы понимаем ценность практичности, поэтому мы включили фрагменты кода в статью.

Введение

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

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

Различные методы тематического моделирования

Этот очень важный процесс может выполняться различными алгоритмами или методами. Некоторые из них:

  • Скрытое распределение Дирихле (LDA)
  • Неотрицательная матричная факторизация (NMF)
  • Скрытый семантический анализ (LSA)
  • Параллельное скрытое распределение Дирихле (PLDA)
  • Модель распределения Пачинко (PAM)

Тем не менее, проводится много исследований по улучшению алгоритмов для понимания полного контекста документов.

01. Скрытое распределение Дирирхле (LDA)

Скрытое распределение Дирихле (LDA) — это статистическая и графическая модель, используемая для выявления взаимосвязей между несколькими документами в корпусе. Он использует алгоритм максимизации вариационного ожидания (VEM) для оценки максимальной вероятности из всего текстового корпуса. В отличие от традиционных методов, основанных на определении первых слов в наборе слов, LDA включает семантическую информацию в предложения.

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

Плюсы:

  1. Семантическое понимание: LDA фиксирует семантические отношения между словами и документами, позволяя лучше понять лежащий в их основе контент.
  2. Моделирование темы: LDA выявляет скрытые темы в корпусе, позволяя извлекать значимые темы и улучшая организацию документа.
  3. Гибкость: LDA — это гибкая модель, которая может адаптироваться к различным типам данных и может применяться к различным предметным областям и языкам.
  4. Интерпретируемость: LDA дает интерпретируемые результаты, поскольку присваивает вероятности темам и словам, что упрощает анализ и интерпретацию вывода.

Минусы:

  1. Вычислительная сложность: LDA может потребовать больших вычислительных ресурсов, особенно для крупномасштабных корпусов, из-за итеративного характера алгоритма VEM.
  2. Согласованность тем: хотя LDA обеспечивает вероятностную основу для моделирования тем, результирующие темы не всегда могут демонстрировать высокую согласованность, и может потребоваться ручная точная настройка или постобработка.
  3. Выбор модели: определение оптимального количества тем для LDA требует ручного выбора или использования показателей оценки, что может быть субъективным и занимать много времени.

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

Например, предположим, что у вас есть корпус из 1000 документов. После предварительной обработки корпуса мешок слов состоит из 1000 общеупотребительных слов. Применяя LDA, мы можем определить темы, связанные с каждым документом. Таким образом, становится проще получать выдержки из корпуса данных.

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

Реализация на Питоне:

Реализация всех методов на Python приведена ниже. Пожалуйста, помогите понять это полностью. Часть очистки данных и предварительной обработки текста в этой статье не рассматривается.

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.decomposition import LatentDirichletAllocation as LDA
from sklearn.metrics import coherence_score
from sklearn.model_selection import train_test_split
# Create a CountVectorizer
count_vectorizer = CountVectorizer(stop_words='english')
count_data = count_vectorizer.fit_transform(papers['preprocessed_text'])
# Split the data into train and test sets
X_train, X_test = train_test_split(count_data, test_size=0.2, random_state=42)
# Create an LDA model
number_topics = 5
lda = LDA(n_components=number_topics)
lda.fit(X_train)
# Evaluate LDA using coherence score
coherence_model_lda = coherence_score(model=lda, texts=papers['preprocessed_text'], dictionary=count_vectorizer.get_feature_names())
print("Coherence Score:", coherence_model_lda)
# Evaluate LDA using perplexity
perplexity = lda.perplexity(X_test)
print("Perplexity:", perplexity)

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

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

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

Вот плюсы и минусы использования LSA:

Плюсы:

  1. Извлечение отношений: LSA может выявить скрытые отношения между словами и документами, помогая раскрыть скрытые закономерности и семантические сходства внутри корпуса.
  2. Уменьшение размерности: LSA уменьшает размерность текстовых данных, делая их более управляемыми и повышая эффективность вычислений.
  3. Уменьшение шума: уменьшая влияние нерелевантных и зашумленных данных, LSA повышает точность и качество извлеченных сведений.
  4. Поиск информации: LSA помогает в поиске информации, идентифицируя соответствующие документы на основе их семантического сходства с заданным запросом.

Минусы:

  1. Потеря интерпретируемости: LSA преобразует исходные текстовые данные в числовое представление, что может привести к потере интерпретируемости основного текстового содержимого.
  2. Ограниченное понимание контекста: LSA опирается на статистические закономерности и совпадение слов, которые могут не отражать весь контекст и нюансы текста.
  3. Чувствительность к параметрам предварительной обработки. На производительность LSA могут повлиять решения предварительной обработки, такие как удаление стоп-слов, выделение корней и токенизация. Различные варианты предварительной обработки могут привести к различным результатам.
  4. Отсутствие маркировки тем: LSA не предоставляет явных меток для тем. Хотя он обнаруживает скрытые отношения, он может не давать четкой интерпретации или маркировки основных тем в корпусе.

Таким образом, LSA — это метод обучения без учителя, который извлекает отношения между словами в коллекции документов. Это уменьшает размерность и отфильтровывает шум, позволяя идентифицировать соответствующие документы. Однако он может пожертвовать интерпретируемостью и пониманием контекста и чувствителен к выбору предварительной обработки. Кроме того, LSA не обеспечивает явной маркировки тем.

from gensim import corpora
from gensim.models import LsiModel
from gensim.models.coherencemodel import CoherenceModel
from gensim.models.ldamodel import LdaModel
from gensim.models import TfidfModel
def create_gensim_lsa_model(doc_clean, number_of_topics, words):
    # Create a dictionary from the document corpus
    dictionary = corpora.Dictionary(doc_clean)
    # Convert the dictionary into a document-term matrix
    doc_term_matrix = [dictionary.doc2bow(doc) for doc in doc_clean]
    # Create an LSA model
    lsamodel = LsiModel(doc_term_matrix, num_topics=number_of_topics)
    # Print the topics generated by the LSA model
    print(lsamodel.print_topics(num_topics=number_of_topics, num_words=words))
# Evaluate the LSA model using coherence and perplexity
    coherence_model = CoherenceModel(model=lsamodel, texts=doc_clean, dictionary=dictionary, coherence='c_v')
    coherence_score = coherence_model.get_coherence()
    print("Coherence Score: ", coherence_score)
# Calculate perplexity
    tfidf_model = TfidfModel(doc_term_matrix)
    tfidf_corpus = tfidf_model[doc_term_matrix]
    perplexity_score = lsamodel.log_perplexity(tfidf_corpus)
    print("Perplexity Score: ", perplexity_score)
return lsamodel
number_of_topics = 6
words = 10
document_list, titles = load_data("", "corpus.txt")
model = create_gensim_lsa_model(clean_text, number_of_topics, words)

Здесь также немаловажную роль играет параметр количества тем. Это итеративный процесс для определения оптимального количества тем.

03. Неотрицательная матричная факторизация

Неотрицательная матричная факторизация (NMF) — это метод матричной факторизации, который гарантирует, что элементы факторизованных матриц неотрицательны. В контексте NMF рассмотрим матрицу терминов документа, полученную из корпуса после удаления стоп-слов. Эту матрицу можно разложить на две матрицы: матрицу терминов и тем и матрицу тем и документов. Существует несколько моделей оптимизации для выполнения матричной факторизации, причем метод иерархических чередующихся наименьших квадратов (HALS) является более быстрым и эффективным подходом. В HALS процесс факторизации обновляет один столбец за раз, сохраняя при этом неизменными другие столбцы.

Вот плюсы и минусы использования NMF с HALS:

Плюсы:

  1. Ограничение неотрицательности: NMF обеспечивает неотрицательность, делая результирующие факторизованные матрицы более интерпретируемыми, особенно в контексте отношений между документом и термином.
  2. Уменьшение размерности: NMF уменьшает размерность матрицы документов и терминов, обеспечивая более эффективные вычисления и анализ.
  3. Извлечение функций: NMF может идентифицировать скрытые темы или темы в корпусе, обеспечивая компактное представление коллекции документов.
  4. Оптимизация HALS: HALS предлагает более быструю сходимость и улучшенную производительность по сравнению с другими методами оптимизации для NMF, что делает его хорошо подходящим для крупномасштабных наборов данных.

Минусы:

  1. Чувствительность к инициализации: производительность NMF чувствительна к начальным значениям факторизованных матриц. Разные инициализации могут привести к разным результатам.
  2. Переобучение: NMF может переобучать данные, если количество компонентов или тем слишком велико или если данные содержат шум или выбросы.
  3. Отсутствие интерпретируемости: в то время как NMF создает интерпретируемые факторизованные матрицы, точное значение извлеченных тем может быть субъективным и требовать ручной интерпретации.
  4. Сложность обработки разреженных данных: NMF может столкнуться с проблемами при работе с очень разреженными матрицами, поскольку наличие большого количества нулевых элементов может повлиять на качество факторизации.

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

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.decomposition import NMF
from sklearn.metrics import silhouette_score
# Vectorize the data using TF-IDF
vectorizer = TfidfVectorizer(max_features=2000, min_df=10, stop_words='english')
vectorized_data = vectorizer.fit_transform(data)
# Create an NMF model
nmf = NMF(n_components=20, solver="mu")
W = nmf.fit_transform(vectorized_data)

# Evaluate NMF using reconstruction error
reconstruction_error = nmf.reconstruction_err_
print("Reconstruction Error:", reconstruction_error)

# Evaluate NMF using silhouette score
silhouette_avg = silhouette_score(vectorized_data, nmf.transform(vectorized_data).argmax(axis=1))
print("Silhouette Score:", silhouette_avg)

04. Параллельное скрытое распределение Дирирхле

Частично помеченное распределение Дирихле (PLDA) — это метод моделирования темы, который предполагает наличие набора предопределенных меток, связанных с каждой темой в данном корпусе. Это расширение скрытого распределения Дирихле (LDA), в котором темы представлены в виде вероятностных распределений по всему корпусу.

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

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

Тем не менее, есть также некоторые ограничения, которые следует учитывать. Поскольку PLDA опирается на предварительно определенные метки, ее производительность сильно зависит от качества и релевантности меток. Если метки зашумлены или не совпадают с истинными темами, результирующие назначения тем могут не точно отражать основную структуру корпуса. Кроме того, требование иметь только одну метку для каждой темы может ограничить гибкость модели при захвате более тонких взаимосвязей между темами.

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

05. Модель распределения Пачинко

Модель распределения Пачинко (PAM) — это расширенная версия модели скрытого распределения Дирихле (LDA), целью которой является определение не только тематических отношений между словами в корпусе, но и корреляции между темами. В то время как LDA идентифицирует темы на основе совпадения слов, PAM делает еще один шаг вперед, моделируя отношения между этими темами. Это дополнительное соображение позволяет PAM лучше фиксировать семантические отношения в данных.

PAM получил свое название от популярной японской игры Пачинко и использует направленные ациклические графы (DAG) для представления взаимосвязей между темами. DAG — это конечный ориентированный граф, который визуализирует, как темы связаны друг с другом.

Преимущества ПАМ:

  1. Улучшенные семантические отношения. Включая корреляцию между темами, PAM может лучше фиксировать основные семантические отношения внутри корпуса. Это приводит к более точному и детализированному моделированию темы.
  2. Улучшенная согласованность тем: способность PAM моделировать отношения между темами часто приводит к улучшению согласованности тем. Он может генерировать более связные и значимые темы по сравнению с LDA.
  3. Большая интерпретируемость: использование DAG обеспечивает визуальное представление связей между темами, делая выходные данные модели более интерпретируемыми и более легкими для анализа.

Ограничения PAM:

  1. Повышенная сложность: включение тематических корреляций усложняет модель, делая ее более сложной для реализации и понимания по сравнению с традиционным LDA.
  2. Более высокие требования к вычислительным ресурсам: для моделирования отношений между темами в PAM может потребоваться больше вычислительных ресурсов, включая память и вычислительную мощность, особенно при работе с большими наборами данных.
  3. Чувствительность к гиперпараметрам: производительность PAM может зависеть от выбора гиперпараметров, таких как количество тем и степень корреляции тем. Для получения оптимальных результатов необходимы тщательная настройка и экспериментирование.

Таким образом, модель распределения Пачинко (PAM) улучшает модель скрытого распределения Дирихле (LDA) за счет включения корреляций между темами с использованием направленных ациклических графов (DAG). Этот подход улучшает способность модели фиксировать семантические отношения и создавать более связные темы. Однако это также приводит к повышенной сложности и вычислительным требованиям, а также чувствительности к выбору гиперпараметров.

Приложения:

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

Ограничения тематического моделирования:

Тематическое моделирование, как и любой другой метод, имеет свои ограничения. Вот некоторые общие ограничения тематического моделирования:

  1. Субъективность в интерпретации темы: алгоритмы моделирования темы обеспечивают распределение слов для каждой темы, но интерпретация и маркировка тем субъективны и требуют человеческого суждения. Разные люди могут интерпретировать одну и ту же тему по-разному, что приводит к несоответствиям в маркировке тем.
  2. Определение оптимального количества тем. Выбор подходящего количества тем для данного корпуса является сложной задачей. Если количество тем слишком мало, модель может чрезмерно упростить данные, в то время как чрезмерное количество тем может привести к переоснащению и затруднить извлечение значимых идей.
  3. Недостаток семантического понимания: алгоритмы тематического моделирования часто сосредотачиваются на статистических закономерностях и совпадении слов, которые могут не отражать полное семантическое значение текста. Алгоритмы не учитывают контекст и нюансы языка, что приводит к потенциальным ограничениям при захвате сложных отношений.
  4. Чувствительность к выбору предварительной обработки: на производительность алгоритмов тематического моделирования могут влиять решения предварительной обработки, такие как удаление стоп-слов, выделение корней или лемматизация. Различные варианты предварительной обработки могут повлиять на результирующие темы и их интерпретируемость.
  5. Сложность обработки коротких или шумных текстов: алгоритмы тематического моделирования обычно лучше работают с более длинными документами, содержащими достаточно информации для осмысленного извлечения темы. Короткие или шумные тексты, такие как твиты или сообщения чата, могут создавать проблемы для точного моделирования темы.
  6. Отсутствие временной динамики. Традиционные методы тематического моделирования по своей сути не учитывают временную динамику или изменения тем с течением времени. Для анализа временных паттернов необходимо использовать дополнительные методы, такие как динамическое тематическое моделирование.
  7. Масштабируемость. Алгоритмы тематического моделирования могут потребовать значительных вычислительных ресурсов, особенно для больших корпусов с миллионами документов. Обработка таких объемов данных может занимать много времени и ресурсов.

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

Заключение:

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

Спасибо за прочтение! В будущем я собираюсь написать больше статей по НЛП. Подпишитесь, чтобы получать информацию о них. И я также фрилансер. Если у вас есть фрилансерская работа над проектами, связанными с данными, не стесняйтесь обращаться к Linkedin. Ничто не сравнится с работой над реальными проектами! Если вам понравилась эта статья, купите мне кофе по этой ссылке… Приятного обучения😉