Фото Микечи Эспарагоса
Каждый день мы большую часть времени имеем дело с неразмеченным текстом, и алгоритмы обучения с учителем вообще не могут использоваться для извлечения информации из данных. Подполе естественного языка может раскрыть основную структуру большого количества текста. Эта дисциплина называется моделированием тем и специализируется на извлечении тем из текста.
В этом контексте традиционные подходы, такие как скрытое распределение Дирихле и неотрицательная матричная факторизация, продемонстрировали, что они плохо отражают отношения между словами, поскольку они основаны на наборе слов.
По этой причине мы сосредоточимся на двух многообещающих подходах, Top2Vec и BERTopic, которые устраняют эти недостатки, используя предварительно обученные языковые модели для создания тем. Давайте начнем!
Top2Vec — это модель, способная автоматически определять темы из текста с помощью предварительно обученных векторов слов и создавать осмысленные встроенные темы, документы и векторы слов.
При таком подходе процедуру извлечения тем можно разделить на несколько этапов:
- Создать семантическое встраивание: создаются совместно встроенные векторы документа и слова. Идея состоит в том, что похожие документы должны быть ближе в пространстве встраивания, а разнородные документы должны быть удалены друг от друга.
- Уменьшить размерность встраивания документа: применение подхода уменьшения размерности важно для сохранения большей части вариативности встраивания документов при уменьшении многомерного пространства. Кроме того, он позволяет идентифицировать плотные области, в которых каждая точка представляет собой вектор документа. UMAP — типичный подход к уменьшению размерности, выбранный на этом этапе, поскольку он способен сохранять локальную и глобальную структуру многомерных данных.
- Выявление групп документов: HDBScan, метод кластеризации на основе плотности, применяется для поиска плотных областей похожих документов. Каждому документу назначается шум, если он не находится в плотном кластере, или метка, если он принадлежит к плотной области.
- Вычислить центроиды в исходном пространстве вложения: центроид вычисляется с учетом многомерного пространства вместо уменьшенного пространства вложения. Классическая стратегия заключается в вычислении среднего арифметического всех векторов документов, принадлежащих плотной области, полученных на предыдущем шаге с помощью HDBSCAN. Таким образом, для каждого кластера создается тематический вектор.
- Найдите слова для каждого вектора темы: ближайшие векторы слов к вектору документа являются семантически наиболее репрезентативными.
Пример Top2Vec
В этом уроке мы собираемся проанализировать негативные отзывы о McDonald's из набора данных, доступного на данные.мир. Определение тем из этих обзоров может быть полезным для транснациональной корпорации для улучшения продуктов и организации этой сети быстрого питания в местах США, представленных в данных.
import pandas as pd
from top2vec import Top2Vec file_path = "McDonalds-Yelp-Sentiment-DFE.csv"
df = pd.read_csv( file_path, usecols=["_unit_id", "city", "review"], encoding="unicode_escape",
)
df.head()
docs_bad = df["review"].values.tolist()
В одной строке кода мы собираемся выполнить все шаги top2vec, описанные ранее.
topic_model = Top2Vec( docs_bad, embedding_model="universal-sentence-encoder", speed="deep-learn", tokenizer=tok, ngram_vocab=True, ngram_vocab_args={"connector_words": "phrases.ENGLISH_CONNECTOR_WORDS"},
)
Основные аргументы Top2Vec:
- docs_bad: список строк.
- универсальный кодировщик предложений: выбранная предварительно обученная модель встраивания.
- глубокое обучение: параметр, определяющий качество создаваемого вектора документа.
topic_model.get_num_topics() #3
topic_words, word_scores, topic_nums = topic_model.get_topics(3) for topic in topic_nums: topic_model.generate_topic_wordcloud(topic)
Большинство
Из облаков слов мы можем сделать вывод, что тема 0 касается общих жалоб на обслуживание в McDonald, таких как «медленное обслуживание», «ужасное обслуживание» и «неправильный заказ», а темы 1 и 2 относятся соответственно к еде на завтрак ( McMuffin, печенье, яйцо) и кофе (кофе со льдом и чашка кофе).
Теперь мы пытаемся искать документы, используя два ключевых слова, неправильный и медленный:
( documents, document_scores, document_ids,
) = topic_model.search_documents_by_keywords( keywords=["wrong", "slow"], num_docs=5
)
for doc, score, doc_id in zip(documents, document_scores, document_ids): print(f"Document: {doc_id}, Score: {score}") print("-----------") print(doc) print("-----------") print()
Вывод:
Document: 707, Score: 0.5517634093633295
-----------
horrible.... that is all. do not go there.
----------- Document: 930, Score: 0.4242547340973836
-----------
no drive through :-/
----------- Document: 185, Score: 0.39162203345993046
-----------
the drive through line is terrible. they are painfully slow.
----------- Document: 181, Score: 0.3775083338082392
-----------
awful service and extremely slow. go elsewhere.
----------- Document: 846, Score: 0.35400602635951994
-----------
they have bad service and very rude
-----------
«BERTopic — это метод моделирования тем, который использует преобразователи и c-TF-IDF для создания плотных кластеров, позволяющих легко интерпретировать темы, сохраняя при этом важные слова в описаниях тем».
Как следует из названия, BERTopic использует мощные модели преобразования для определения тем, присутствующих в тексте. Другой характеристикой этого алгоритма тематического моделирования является использование варианта TF-IDF, называемого классовым вариантом TF-IDF.
Как и Top2Vec, ему не нужно знать количество тем, но он автоматически извлекает темы.
Более того, как и в случае с Top2Vec, это алгоритм, состоящий из нескольких этапов. Первые три шага одинаковы: создание встраиваемых документов, уменьшение размерности с помощью UMAP и кластеризация с помощью HDBScan.
Последующие фазы начинают расходиться с Top2Vec. После обнаружения плотных областей с помощью HDBSCAN каждая тема разбивается на наборы слов, в которых учитывается, встречается ли слово в документе или нет. После того, как документы, принадлежащие кластеру, считаются уникальным документом и применяется TF-IDF. Итак, для каждой темы мы определяем наиболее релевантные слова, которые должны иметь самый высокий c-TF-IDF.
Пример BERTopic
Мы повторяем анализ на том же наборе данных.
Мы собираемся извлечь темы из обзоров, используя BERTopic:
model_path_bad = 'model/bert_bad'
topic_model_bad = train_bert(docs_bad,model_path_bad)
freq_df = topic_model_bad.get_topic_info()
print("Number of topics: {}".format( len(freq_df)))
freq_df['Percentage'] = round(freq_df['Count']/freq_df['Count'].sum() * 100,2)
freq_df = freq_df.iloc[:,[0,1,3,2]]
freq_df.head()
Таблица, возвращаемая моделью, содержит информацию о 14 извлеченных темах. Тема соответствует идентификатору темы, за исключением всех игнорируемых выбросов, помеченных как -1.
Теперь мы собираемся перейти к самой интересной части, касающейся визуализации наших тем в интерактивных графиках, таких как визуализация наиболее релевантных терминов для каждой темы, карта межтематических расстояний, двумерное представление пространства встраивания и иерархия тем.
Давайте начнем показывать гистограммы для первых десяти тем. Для каждой темы мы можем наблюдать за наиболее важными словами, отсортированными в порядке убывания на основе оценки c-TF-IDF. Чем релевантнее слово, тем выше оценка.
Первая тема содержит общие слова, такие как расположение и еда, тема 1 заказ и ожидание, тема 2 худшее и обслуживание, тема 3 место и грязно, реклама и так далее.
После визуализации гистограмм пришло время взглянуть на карту межтематических расстояний. Мы уменьшаем размерность оценки c-TF-IDF до двумерного пространства, чтобы визуализировать темы на графике. Внизу есть ползунок, который позволяет выбрать тему, которая будет окрашена в красный цвет. Мы можем заметить, что темы сгруппированы в две разные группы: одна с общей тематикой, такой как еда, курица и местоположение, а другая с различными негативными аспектами, такими как худшее обслуживание, грязно, место и холод.
Следующий график позволяет увидеть взаимосвязь между отзывами и темами. В частности, может быть полезно понять, почему отзыв привязан к определенной теме и выровнен по наиболее релевантным найденным словам. Например, мы можем сосредоточиться на красном кластере, соответствующем теме 2, с несколькими словами о худшем обслуживании. Документы в этой плотной зоне кажутся довольно негативными, например, «Ужасное обслуживание клиентов и еще худшая еда».
На первый взгляд, эти подходы имеют много общего, например, автоматическое определение количества тем, отсутствие необходимости предварительной обработки в большинстве случаев, применение UMAP для уменьшения размерности вложений документов, а затем HDBSCAN используется для моделируя эти сокращенные вложения документов, но они принципиально отличаются, если смотреть на то, как они назначают темы документам.
Top2Vec создает тематические представления, находя слова, расположенные близко к центроиду кластера.
В отличие от Top2Vec, BERTopic не принимает во внимание центр тяжести кластера, но рассматривает все документы в кластере как уникальный документ и извлекает представления темы, используя разновидность TF-IDF на основе классов.
Топ2Век | BERТема |
Стратегия извлечения тем на основе центроидов кластера. | Стратегия извлечения тем на основе c-TF-IDF. |
Он не поддерживает динамическое моделирование темы. | Он поддерживает динамическое моделирование темы. |
Он создает облака слов для каждой темы и предоставляет инструменты поиска тем, документов и слов. | Это позволяет строить интерактивные графики визуализации, позволяющие интерпретировать извлеченные темы. |
Тематическое моделирование — это растущая область обработки естественного языка, и существует множество возможных приложений, таких как обзоры, аудио и сообщения в социальных сетях. Как было показано, в этой статье представлен обзор Topi2Vec и BERTopic, двух многообещающих подходов, которые могут помочь вам определить темы с помощью нескольких строк кода и интерпретировать результаты с помощью визуализации данных. Если у вас есть вопросы по этим техникам или у вас есть другие предложения по поводу других подходов к обнаружению тем, пишите в комментариях.
Евгения Анелло в настоящее время является научным сотрудником кафедры информационной инженерии Университета Падуи, Италия. Ее исследовательский проект сосредоточен на непрерывном обучении в сочетании с обнаружением аномалий.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: https://www.kdnuggets.com/2023/01/topic-modeling-approaches-top2vec-bertopic.html?utm_source=rss&utm_medium=rss&utm_campaign=topic-modeling-approaches-top2vec-vs-bertopic
- 1
- 10
- 100
- 7
- a
- в состоянии
- О нас
- Учетная запись
- Ad
- адрес
- После
- алгоритм
- алгоритмы
- выровненный
- Все
- распределение
- Позволяющий
- позволяет
- суммы
- анализ
- анализировать
- и
- обнаружение аномалии
- Другой
- Применение
- Приложения
- прикладной
- подхода
- подходы
- ПЛОЩАДЬ
- области
- Аргументы
- гайд
- аспекты
- назначенный
- аудио
- автоматически
- доступен
- Плохой
- бар
- основанный
- , так как:
- между
- Дно
- Завтрак
- Строительство
- строит
- расчет
- под названием
- не могу
- способный
- захватить
- случаев
- цепь
- характеристика
- Графики
- выбранный
- Город
- классический
- Закрыть
- ближе
- Кластер
- кластеризации
- код
- Кофе
- сочетании
- Комментарии
- Общий
- жалобы
- считается
- принимая во внимание
- содержит
- контекст
- обычный
- соответствующий
- соответствует
- Создайте
- создали
- создает
- Создающий
- создание
- чашка
- В настоящее время
- клиент
- Служба поддержки игроков
- данным
- день
- занимавшийся
- убивают
- Кафедра
- обнаружение
- определяет
- различный
- расстояние
- отдаленный
- расходиться
- документ
- Документация
- не
- недостатки
- управлять
- проехать через
- динамический
- каждый
- легко
- в другом месте
- встроенный
- Проект и
- Даже
- пример
- Кроме
- объяснены
- извлечение
- Экстракты
- чрезвычайно
- БЫСТРО
- человек
- несколько
- поле
- Найдите
- обнаружение
- First
- Фокус
- внимание
- питание
- найденный
- от
- принципиально
- Общие
- порождать
- генерируется
- получить
- Глобальный
- Go
- будет
- график
- Графики
- Рост
- помощь
- иерархия
- High
- высший
- наивысший
- HTTPS
- идея
- Идентификация
- идентификатор
- определения
- идентифицирующий
- Импортировать
- важную
- улучшать
- in
- информация
- вместо
- интерактивный
- интересный
- интерпретация
- IT
- Италии
- КДнаггетс
- хранение
- Знать
- этикетка
- язык
- большой
- изучение
- рычаги
- линия
- линий
- Список
- локальным
- расположенный
- расположение
- места
- посмотреть
- искать
- Главная
- многих
- карта
- матрица
- МАКДОНАЛЬД
- значимым
- Медиа
- модель
- моделирование
- моделирование
- Модели
- БОЛЕЕ
- самых
- многонациональный
- имя
- натуральный
- Естественный язык
- Обработка естественного языка
- Необходимость
- отрицательный
- следующий
- Шум
- номер
- многочисленный
- наблюдать
- полученный
- ONE
- заказ
- организация
- оригинал
- Другое
- панд
- параметр
- часть
- особый
- процент
- выполнять
- фразы
- Часть
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- возможное
- Блог
- мощный
- представить
- предыдущий
- предварительно
- обработка
- Произведенный
- Продукция
- Проект
- многообещающий
- при условии
- приводит
- Вопросы
- причина
- Red
- уменьшить
- Цена снижена
- снижение
- по
- отношения
- Отношения
- соответствующие
- повторять
- представление
- представитель
- представляет
- исследованиям
- Итоги
- показывать
- обзоре
- Отзывы
- то же
- Поиск
- поиск
- выбор
- обслуживание
- должен
- показывать
- показанный
- достопримечательность
- аналогичный
- Аналогичным образом
- с
- одинарной
- ползунок
- медленной
- So
- Соцсети
- социальные сети
- Сообщения в социальных сетях
- некоторые
- Space
- специализированный
- конкретный
- раскол
- Шаг
- Шаги
- Стратегия
- Структура
- такие
- Предлагает
- контролируемое обучение
- поддержка
- Поддержка
- ТАБЛИЦЫ
- взять
- принимает
- снижения вреда
- 10
- terms
- Ассоциация
- Там.
- три
- Через
- время
- в
- лексемы
- инструменты
- топ
- Десятка лучших
- тема
- Темы
- трансформеры
- учебник
- типичный
- лежащий в основе
- понимать
- созданного
- Университет
- США
- использование
- ценный
- Наши ценности
- Вариант
- визуализация
- ждать
- который
- в то время как
- В то время как
- будете
- в
- Word
- слова
- Наихудший
- записывать
- Неправильно
- зефирнет