Photo by Mikechiego Esparagozy
Każdego dnia mamy do czynienia przez większość czasu z nieoznaczonym tekstem, a algorytmy uczenia nadzorowanego nie mogą być w ogóle wykorzystywane do wydobywania informacji z danych. Poddziedzina języka naturalnego może ujawnić podstawową strukturę w dużych ilościach tekstu. Ta dyscyplina nazywa się Topic Modeling i specjalizuje się w wydobywaniu tematów z tekstu.
W tym kontekście konwencjonalne podejścia, takie jak utajona alokacja Dirichleta i nieujemna faktoryzacja macierzy, wykazały, że nie oddają dobrze relacji między słowami, ponieważ są one oparte na worku słów.
Z tego powodu skupimy się na dwóch obiecujących podejściach, Top2Vec i BERTopic, które eliminują te wady, wykorzystując wstępnie wytrenowane modele językowe do generowania tematów. Zacznijmy!
Top2Vec to model zdolny do automatycznego wykrywania tematów z tekstu przy użyciu wstępnie wyszkolonych wektorów słów i tworzenia znaczących osadzonych tematów, dokumentów i wektorów słów.
W tym podejściu procedurę wyodrębniania tematów można podzielić na różne etapy:
- Utwórz osadzanie semantyczne: tworzone są wspólnie osadzone wektory dokumentów i słów. Chodzi o to, aby podobne dokumenty znajdowały się bliżej w przestrzeni osadzania, a odmienne dokumenty powinny być oddalone od siebie.
- Zmniejsz wymiarowość osadzania dokumentu: Zastosowanie podejścia polegającego na redukcji wymiarowości jest ważne, aby zachować większość zmienności osadzania dokumentów przy jednoczesnym zmniejszeniu przestrzeni wielowymiarowej. Ponadto pozwala na identyfikację gęstych obszarów, w których każdy punkt reprezentuje wektor dokumentu. UMAP to typowe podejście do redukcji wymiarów wybrane na tym etapie, ponieważ umożliwia zachowanie lokalnej i globalnej struktury danych wielowymiarowych.
- Zidentyfikuj grupy dokumentów: HDBScan, metoda grupowania oparta na gęstości, jest stosowana do znajdowania gęstych obszarów podobnych dokumentów. Każdy dokument jest przypisywany jako szum, jeśli nie znajduje się w gęstej grupie, lub jako etykieta, jeśli należy do gęstego obszaru.
- Oblicz środki ciężkości w oryginalnej przestrzeni osadzania: Środek ciężkości jest obliczany z uwzględnieniem przestrzeni wielowymiarowej zamiast zmniejszonej przestrzeni osadzania. Klasyczna strategia polega na obliczeniu średniej arytmetycznej wszystkich wektorów dokumentu należących do gęstego obszaru, otrzymanych w poprzednim kroku za pomocą HDBSCAN. W ten sposób dla każdego klastra generowany jest wektor tematu.
- Znajdź słowa dla każdego wektora tematu: wektory słów najbliższe wektorowi dokumentu są semantycznie najbardziej reprezentatywne.
Przykład Top2Vec
W tym samouczku przeanalizujemy negatywne recenzje McDonald's na podstawie dostępnego zestawu danych data.świat. Identyfikacja tematów z tych recenzji może być cenna dla międzynarodowej korporacji w celu ulepszenia produktów i organizacji tej sieci fast foodów w lokalizacjach w USA przedstawionych na podstawie danych.
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()
W jednym wierszu kodu wykonamy wszystkie opisane wcześniej kroki 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"},
)
Główne argumenty Top2Vec to:
- docs_bad: to lista ciągów znaków.
- universal-sentence-encoder: jest wybranym wstępnie wyszkolonym modelem osadzania.
- deep-learn: to parametr określający jakość tworzonego wektora dokumentów.
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)
Najbardziej
Z chmury słów możemy wywnioskować, że temat 0 dotyczy ogólnych skarg na obsługę w McDonaldzie, takich jak „powolna obsługa”, „okropna obsługa” i „niewłaściwe zamówienie”, podczas gdy temat 1 i 2 odnoszą się odpowiednio do jedzenia śniadaniowego ( McMuffin, biszkopt, jajko) i kawą (mrożona kawa i filiżanka kawy).
Teraz próbujemy przeszukiwać dokumenty za pomocą dwóch słów kluczowych, złych i powolnych:
( 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()
Wyjście:
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 to technika modelowania tematów, która wykorzystuje transformatory i c-TF-IDF do tworzenia gęstych klastrów, umożliwiających łatwą interpretację tematów przy jednoczesnym zachowaniu ważnych słów w opisach tematów”.
Jak sama nazwa wskazuje, BERTopic wykorzystuje potężne modele transformatorów do identyfikacji tematów obecnych w tekście. Inną cechą charakterystyczną tego algorytmu modelowania tematu jest użycie wariantu TF-IDF, zwanego klasową odmianą TF-IDF.
Podobnie jak Top2Vec, nie musi znać liczby tematów, ale automatycznie wyodrębnia tematy.
Ponadto, podobnie jak Top2Vec, jest to algorytm składający się z różnych faz. Pierwsze trzy kroki są takie same: tworzenie osadzonych dokumentów, redukcja wymiarowości za pomocą UMAP i tworzenie klastrów za pomocą HDBScan.
Kolejne fazy zaczynają odbiegać od Top2Vec. Po znalezieniu gęstych obszarów za pomocą HDBSCAN, każdy temat jest dzielony na tokeny na reprezentację worka słów, która bierze pod uwagę, czy słowo pojawia się w dokumencie, czy nie. Po tym, jak dokumenty należące do klastra są uznawane za dokumenty unikalne i stosowany jest TF-IDF. Dlatego dla każdego tematu identyfikujemy najbardziej odpowiednie słowa, które powinny mieć najwyższy współczynnik c-TF-IDF.
Przykład BERTopic
Powtarzamy analizę na tym samym zbiorze danych.
Zamierzamy wyodrębnić tematy z recenzji za pomocą 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()
Tabela zwrócona przez model zawiera informacje o wyodrębnionych 14 tematach. Temat odpowiada identyfikatorowi tematu, z wyjątkiem wszystkich ignorowanych wartości odstających, które są oznaczone jako -1.
Teraz przejdziemy do najciekawszej części dotyczącej wizualizacji naszych tematów na interaktywnych wykresach, takich jak wizualizacja najbardziej odpowiednich terminów dla każdego tematu, mapa odległości między tematami, dwuwymiarowa reprezentacja przestrzeni osadzania i hierarchia tematów.
Zacznijmy pokazywać wykresy słupkowe dla dziesięciu najważniejszych tematów. Dla każdego tematu możemy zaobserwować najważniejsze słowa, posortowane malejąco na podstawie wyniku c-TF-IDF. Im bardziej słowo jest istotne, tym wyższy jest wynik.
Pierwszy temat zawiera ogólne słowa, takie jak lokalizacja i jedzenie, temat 1 zamów i czekaj, temat 2 najgorsze i obsługa, temat 3 miejsce i brud, reklama i tak dalej.
Po wizualizacji wykresów słupkowych czas przyjrzeć się mapie odległości międzytematycznych. Zmniejszamy wymiarowość wyniku c-TF-IDF do dwuwymiarowej przestrzeni, aby zwizualizować tematy na wykresie. Na dole znajduje się suwak, który pozwala wybrać temat, który zostanie podświetlony na czerwono. Możemy zauważyć, że tematy są pogrupowane w dwie różne grupy, jedną z ogólnymi tematami, takimi jak jedzenie, kurczak i lokalizacja, a drugą z różnymi negatywnymi aspektami, takimi jak najgorsza obsługa, brud, miejsce i zimno.
Następny wykres pozwala zobaczyć związek między recenzjami a tematami. W szczególności przydatne może być zrozumienie, dlaczego recenzja jest przypisana do określonego tematu i jest dopasowana do najtrafniejszych znalezionych słów. Na przykład możemy skupić się na czerwonym skupieniu, odpowiadającym tematowi 2 z kilkoma słowami o najgorszej usłudze. Dokumenty w tym gęstym obszarze wydają się dość negatywne, jak „Straszna obsługa klienta i jeszcze gorsze jedzenie”.
Na pierwszy rzut oka podejścia te mają wiele wspólnych cech, jak automatyczne znajdowanie liczby tematów, brak konieczności wstępnego przetwarzania w większości przypadków, zastosowanie UMAP do redukcji wymiarowości osadzania dokumentów, a następnie HDBSCAN jest używany do modelując te zredukowane osadzenie dokumentów, ale różnią się zasadniczo, patrząc na sposób, w jaki przypisują tematy do dokumentów.
Top2Vec tworzy reprezentacje tematów, wyszukując słowa znajdujące się blisko środka ciężkości klastra.
W przeciwieństwie do Top2Vec, BERTopic nie bierze pod uwagę środka ciężkości klastra, ale traktuje wszystkie dokumenty w klastrze jako unikalny dokument i wyodrębnia reprezentacje tematów za pomocą opartej na klasach odmiany TF-IDF.
Top2Vec | BERtopic |
Strategia wyodrębniania tematów na podstawie centroidów klastra. | Strategia wyodrębniania tematów oparta na c-TF-IDF. |
Nie obsługuje dynamicznego modelowania tematów. | Obsługuje dynamiczne modelowanie tematów. |
Tworzy chmury słów dla każdego tematu i zapewnia narzędzia do wyszukiwania tematów, dokumentów i słów. | Pozwala na budowanie interaktywnych działek wizualizacyjnych, pozwalających na interpretację wydobytych tematów. |
Modelowanie tematyczne to rozwijająca się dziedzina przetwarzania języka naturalnego i istnieje wiele możliwych zastosowań, takich jak recenzje, nagrania audio i posty w mediach społecznościowych. Jak pokazano, ten artykuł zawiera przegląd Topi2Vec i BERTopic, które są dwoma obiecującymi podejściami, które mogą pomóc zidentyfikować tematy za pomocą kilku linii kodu i zinterpretować wyniki za pomocą wizualizacji danych. Jeśli masz pytania dotyczące tych technik lub masz inne sugestie dotyczące innych podejść do wykrywania tematów, napisz je w komentarzach.
Eugenia Anello jest obecnie pracownikiem naukowym na Wydziale Inżynierii Informatycznej Uniwersytetu w Padwie we Włoszech. Jej projekt badawczy koncentruje się na ciągłym uczeniu się połączonym z wykrywaniem anomalii.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. Dostęp tutaj.
- Źródło: 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
- Zdolny
- O nas
- Konto
- Ad
- adres
- Po
- algorytm
- Algorytmy
- wyrównany
- Wszystkie kategorie
- przydział
- Pozwalać
- pozwala
- kwoty
- analiza
- w czasie rzeczywistym sprawiają,
- i
- wykrywanie anomalii
- Inne
- Zastosowanie
- aplikacje
- stosowany
- podejście
- awanse
- POWIERZCHNIA
- obszary
- argumenty
- artykuł
- aspekty
- przydzielony
- audio
- automatycznie
- dostępny
- Łazienka
- bar
- na podstawie
- bo
- pomiędzy
- Dolny
- Śniadanie
- Budowanie
- Buduje
- obliczenie
- nazywa
- nie może
- zdolny
- zdobyć
- Etui
- łańcuch
- charakterystyka
- Wykresy
- wybrany
- Miasto
- klasyczny
- Zamknij
- bliższy
- Grupa
- klastrowanie
- kod
- Kawa
- połączony
- komentarze
- wspólny
- skarg
- za
- wobec
- zawiera
- kontekst
- Konwencjonalny
- Odpowiedni
- odpowiada
- Stwórz
- stworzony
- tworzy
- Tworzenie
- tworzenie
- Kubek
- Obecnie
- klient
- Obsługa klienta
- dane
- dzień
- czynienia
- wykazać
- Departament
- Wykrywanie
- określa
- różne
- dystans
- Odległy
- Odchodzić
- dokument
- dokumenty
- Nie
- wady
- napęd
- przejechać
- dynamiczny
- każdy
- z łatwością
- gdzie indziej
- osadzone
- Inżynieria
- Parzyste
- przykład
- Z wyjątkiem
- wyjaśnione
- wyciąg
- Wyciągi
- niezwykle
- FAST
- facet
- kilka
- pole
- Znajdź
- znalezieniu
- i terminów, a
- Skupiać
- koncentruje
- jedzenie
- znaleziono
- od
- zasadniczo
- Ogólne
- Generować
- wygenerowane
- otrzymać
- Globalne
- Go
- będzie
- wykres
- wykresy
- Rozwój
- pomoc
- hierarchia
- Wysoki
- wyższy
- Najwyższa
- HTTPS
- pomysł
- Identyfikacja
- identyfikator
- zidentyfikować
- identyfikacja
- importować
- ważny
- podnieść
- in
- Informacja
- zamiast
- interaktywne
- ciekawy
- interpretacja
- IT
- Włochy
- Knuggety
- konserwacja
- Wiedzieć
- Etykieta
- język
- duży
- nauka
- wykorzystuje
- Linia
- linie
- Lista
- miejscowy
- usytuowany
- lokalizacja
- lokalizacji
- Popatrz
- poszukuje
- Główny
- wiele
- mapa
- Matrix
- MCDONALD
- wymowny
- Media
- model
- modelowanie
- modelowanie
- modele
- jeszcze
- większość
- wielonarodowy
- Nazwa
- Naturalny
- Język naturalny
- Przetwarzanie języka naturalnego
- Potrzebować
- ujemny
- Następny
- Hałas
- numer
- liczny
- obserwować
- uzyskane
- ONE
- zamówienie
- organizacja
- oryginalny
- Inne
- pandy
- parametr
- część
- szczególny
- procent
- wykonać
- Zwroty
- Miejsce
- plato
- Analiza danych Platona
- PlatoDane
- punkt
- możliwy
- Wiadomości
- mocny
- teraźniejszość
- poprzedni
- poprzednio
- przetwarzanie
- Wytworzony
- Produkty
- projekt
- obiecujący
- pod warunkiem,
- zapewnia
- jakość
- pytania
- powód
- Czerwony
- zmniejszyć
- Zredukowany
- redukcja
- w sprawie
- związek
- Relacje
- powtarzać
- reprezentacja
- przedstawiciel
- reprezentuje
- Badania naukowe
- Efekt
- ujawniać
- przeglądu
- Recenzje
- taki sam
- Szukaj
- poszukiwania
- wybierając
- usługa
- powinien
- pokazać
- pokazane
- Widok
- podobny
- Podobnie
- ponieważ
- pojedynczy
- suwak
- powolny
- So
- Obserwuj Nas
- Media społecznościowe
- Posty w mediach społecznościowych
- kilka
- Typ przestrzeni
- wyspecjalizowanym
- specyficzny
- dzielić
- Ewolucja krok po kroku
- Cel
- Strategia
- Struktura
- taki
- Wskazuje
- Nadzorowana nauka
- wsparcie
- podpory
- stół
- Brać
- trwa
- Techniki
- dziesięć
- REGULAMIN
- Połączenia
- Tam.
- trzy
- Przez
- czas
- do
- tokenizowany
- narzędzia
- Top
- Pierwsza dziesiątka
- aktualny
- tematy
- Transformatory
- Tutorial
- typowy
- zasadniczy
- zrozumieć
- wyjątkowy
- uniwersytet
- USA
- posługiwać się
- Cenny
- Wartości
- Wariant
- wyobrażanie sobie
- czekać
- który
- Podczas
- Podczas
- będzie
- w ciągu
- słowo
- słowa
- najgorszy
- napisać
- Źle
- zefirnet