Фото Мікечі Еспарагоса
Щодня ми маємо справу більшу частину часу з текстом без міток, і алгоритми навчання під наглядом взагалі не можуть бути використані для отримання інформації з даних. Підполе природної мови може виявити базову структуру у великих обсягах тексту. Ця дисципліна називається моделювання тем, яка спеціалізується на виділенні тем із тексту.
У цьому контексті звичайні підходи, такі як прихований розподіл Діріхле та факторізація невід’ємної матриці, показали, що погано вловлюють зв’язки між словами, оскільки вони засновані на сумці слів.
З цієї причини ми зосередимося на двох багатообіцяючих підходах, Top2Vec і BERTopic, які усувають ці недоліки шляхом використання попередньо навчених мовних моделей для створення тем. Давайте розпочнемо!
Top2Vec — це модель, здатна автоматично виявляти теми в тексті за допомогою попередньо підготовлених векторів слів і створювати осмислені вбудовані теми, документи та вектори слів.
У цьому підході процедуру вилучення тем можна розділити на кілька етапів:
- Створення семантичного вбудовування: створюються спільно вбудовані вектори документа та слова. Ідея полягає в тому, що схожі документи мають бути ближче у просторі вбудовування, а різні документи – на відстані між ними.
- Зменшити розмірність вбудовування документа: Застосування підходу до зменшення розмірності є важливим для збереження більшої частини варіативності вбудовування документів, одночасно зменшуючи простір великих розмірів. Крім того, це дозволяє ідентифікувати щільні області, в яких кожна точка представляє вектор документа. UMAP є типовим підходом до зменшення розмірності, обраним на цьому кроці, оскільки він здатний зберегти локальну та глобальну структуру даних великої розмірності.
- Визначте кластери документів: HDBScan, підхід кластеризації на основі щільності, застосований для пошуку щільних областей подібних документів. Кожному документу призначається шум, якщо він не в щільному кластері, або мітка, якщо він належить до щільної області.
- Обчисліть центроїди у вихідному просторі вбудовування: центроїд обчислюється з урахуванням простору великих розмірів замість зменшеного простору вбудовування. Класична стратегія полягає в обчисленні середнього арифметичного всіх векторів документа, що належать до щільної області, отриманої на попередньому кроці за допомогою HDBSCAN. Таким чином для кожного кластера генерується тематичний вектор.
- Знайдіть слова для кожного вектора теми: найближчі вектори слів до вектора документа є семантично найбільш репрезентативними.
Приклад Top2Vec
У цьому підручнику ми збираємося проаналізувати негативні відгуки про McDonald's із набору даних, доступних на data.world. Виявлення тем у цих оглядах може бути цінним для багатонаціональних корпорацій, щоб покращити продукти та організацію мережі швидкого харчування в США, надані на основі даних.
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: це список рядків.
- Universal-Sentence-Encoder: це обрана попередньо навчена модель вбудовування.
- deep-learn: це параметр, який визначає якість створеного вектора документа.
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 стосуються відповідно сніданку ( Макмафін, бісквіт, яйце) і кава (кава з льодом і чашка кави).
Тепер ми намагаємося шукати документи за двома ключовими словами, неправильним і повільним:
( 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 на основі класу.
Top2Vec | Тема БЕР |
Стратегія виділення тем на основі центроїдів кластера. | Стратегія вилучення тем на основі c-TF-IDF. |
Він не підтримує динамічне моделювання тем. | Він підтримує динамічне тематичне моделювання. |
Він створює хмари слів для кожної теми та надає інструменти пошуку тем, документів і слів. | Це дозволяє будувати діаграми інтерактивної візуалізації, що дозволяє інтерпретувати виділені теми. |
Моделювання тем є зростаючою сферою обробки природної мови, і існує багато можливих застосувань, таких як огляди, аудіо та публікації в соціальних мережах. Як було показано, ця стаття містить огляди Topi2Vec і BERTopic, які є двома перспективними підходами, які можуть допомогти вам визначити теми за допомогою кількох рядків коду та інтерпретувати результати за допомогою візуалізації даних. Якщо у вас є запитання щодо цих методів або у вас є інші пропозиції щодо інших підходів до виявлення тем, пишіть це в коментарях.
Євгенія Анелло зараз працює науковим співробітником на кафедрі інформаційної інженерії Університету Падуї, Італія. Її дослідницький проект зосереджений на постійному навчанні в поєднанні з виявленням аномалій.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: 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
- адреса
- після
- алгоритм
- алгоритми
- вирівняні
- ВСІ
- розподіл
- Дозволити
- дозволяє
- суми
- аналіз
- аналізувати
- та
- виявлення аномалії
- Інший
- додаток
- застосування
- прикладної
- підхід
- підходи
- ПЛОЩА
- області
- аргументація
- стаття
- аспекти
- призначений
- аудіо
- автоматично
- доступний
- поганий
- бар
- заснований
- оскільки
- між
- дно
- сніданок
- Створюємо
- Будує
- розрахунок
- званий
- не може
- здатний
- захоплення
- випадків
- ланцюг
- характеристика
- Чарти
- вибраний
- Місто
- classic
- близько
- ближче
- кластер
- Кластеризація
- код
- кави
- комбінований
- коментарі
- загальний
- скарги
- вважається
- беручи до уваги
- містить
- контекст
- звичайний
- Відповідний
- відповідає
- створювати
- створений
- створює
- створення
- створення
- Чашка
- В даний час
- клієнт
- Контакти
- дані
- день
- справу
- продемонстрований
- відділ
- Виявлення
- визначає
- різний
- відстань
- Віддалений
- Розходяться
- документ
- документація
- Ні
- недоліки
- управляти
- проїхати
- динамічний
- кожен
- легко
- в іншому місці
- вбудований
- Машинобудування
- Навіть
- приклад
- Крім
- пояснені
- витяг
- Виписки
- надзвичайно
- ШВИДКО
- fellow
- кілька
- поле
- знайти
- виявлення
- Перший
- Сфокусувати
- увагу
- харчування
- знайдений
- від
- принципово
- Загальне
- породжувати
- генерується
- отримати
- Глобальний
- Go
- буде
- графік
- графіки
- Зростання
- допомога
- ієрархія
- Високий
- вище
- найвищий
- HTTPS
- ідея
- Ідентифікація
- ідентифікатор
- ідентифікувати
- ідентифікує
- імпорт
- важливо
- удосконалювати
- in
- інформація
- замість
- інтерактивний
- цікавий
- інтерпретація
- IT
- Італія
- KDnuggets
- зберігання
- Знати
- етикетка
- мова
- великий
- вивчення
- важелі
- Лінія
- ліній
- список
- місцевий
- розташований
- розташування
- місць
- подивитися
- шукати
- головний
- багато
- карта
- Матриця
- МАКДОНАЛЬД
- значущим
- Медіа
- модель
- моделювання
- моделювання
- Моделі
- більше
- найбільш
- багатонаціональний
- ім'я
- Природний
- Природна мова
- Обробка природних мов
- Необхідність
- негативний
- наступний
- шум
- номер
- численний
- спостерігати
- отриманий
- ONE
- порядок
- організація
- оригінал
- Інше
- панди
- параметр
- частина
- приватність
- відсоток
- виконувати
- фрази
- місце
- plato
- Інформація про дані Платона
- PlatoData
- точка
- це можливо
- Пости
- потужний
- представити
- попередній
- раніше
- обробка
- Вироблений
- Продукти
- проект
- перспективний
- за умови
- забезпечує
- якість
- питань
- причина
- червоний
- зменшити
- Знижений
- зниження
- про
- відносини
- Відносини
- доречний
- повторювати
- подання
- представник
- представляє
- дослідження
- результати
- показувати
- огляд
- Відгуки
- то ж
- Пошук
- Грати короля карти - безкоштовно Nijumi логічна гра гри
- вибирає
- обслуговування
- Повинен
- Показувати
- показаний
- зір
- аналогічний
- Аналогічно
- з
- один
- повзунок
- сповільнювати
- So
- соціальна
- соціальні медіа
- Повідомлення в соціальних мережах
- деякі
- Простір
- спеціалізований
- конкретний
- розкол
- Крок
- заходи
- Стратегія
- структура
- такі
- Запропонує
- контрольоване навчання
- підтримка
- Опори
- таблиця
- Приймати
- приймає
- методи
- десять
- terms
- Команда
- Там.
- три
- через
- час
- до
- токенізований
- інструменти
- топ
- Десять кращих
- тема
- теми
- Трансформатори
- підручник
- типовий
- що лежить в основі
- розуміти
- створеного
- університет
- USA
- використання
- Цінний
- Цінності
- варіант
- візуалізації
- чекати
- який
- в той час як
- У той час як
- волі
- в
- слово
- слова
- найгірше
- запис
- Неправильно
- зефірнет