Foto door Mikechie Esparagoza
Elke dag hebben we meestal te maken met niet-gelabelde tekst en algoritmen voor leren onder toezicht kunnen helemaal niet worden gebruikt om informatie uit de gegevens te halen. Een subveld van natuurlijke taal kan de onderliggende structuur in grote hoeveelheden tekst onthullen. Deze discipline heet Topic Modeling en is gespecialiseerd in het extraheren van onderwerpen uit tekst.
In deze context toonden conventionele benaderingen, zoals Latent Dirichlet Allocation en Non-Negative Matrix Factorization, aan dat ze de relaties tussen woorden niet goed vastleggen, aangezien ze gebaseerd zijn op zak-van-woorden.
Om deze reden gaan we ons concentreren op twee veelbelovende benaderingen, Top2Vec en BERTopic, die deze nadelen aanpakken door gebruik te maken van vooraf getrainde taalmodellen om onderwerpen te genereren. Laten we beginnen!
Top2Vec is een model dat in staat is om automatisch onderwerpen uit de tekst te detecteren door vooraf getrainde woordvectoren te gebruiken en zinvolle ingebedde onderwerpen, documenten en woordvectoren te creëren.
Bij deze aanpak kan de procedure voor het extraheren van onderwerpen worden opgesplitst in verschillende stappen:
- Creëer semantische inbedding: er worden gezamenlijk ingebedde document- en woordvectoren gemaakt. Het idee is dat gelijksoortige documenten zich dichter bij elkaar moeten bevinden in de inbeddingsruimte, terwijl ongelijksoortige documenten zich verder van elkaar moeten bevinden.
- Verminder de dimensionaliteit van de inbedding van het document: De toepassing van de dimensionaliteitsreductiebenadering is belangrijk om de meeste variabiliteit van de inbedding van documenten te behouden en tegelijkertijd de hoge dimensionale ruimte te verkleinen. Bovendien maakt het identificatie van dichte gebieden mogelijk, waarin elk punt een documentvector vertegenwoordigt. UMAP is de typische dimensionaliteitsreductiebenadering die in deze stap is gekozen omdat het de lokale en globale structuur van de hoog-dimensionale gegevens kan behouden.
- Identificeer clusters van documenten: HDBScan, een op dichtheid gebaseerde clusteringbenadering, wordt toegepast om dichtbevolkte gebieden van vergelijkbare documenten te vinden. Elk document wordt toegewezen als ruis als het zich niet in een dicht cluster bevindt, of een label als het tot een dicht gebied behoort.
- Bereken zwaartepunten in de oorspronkelijke inbeddingsruimte: Het zwaartepunt wordt berekend door rekening te houden met de hoogdimensionale ruimte, in plaats van met de gereduceerde inbeddingsruimte. De klassieke strategie bestaat uit het berekenen van het rekenkundig gemiddelde van alle documentvectoren die tot een dicht gebied behoren, verkregen in de vorige stap met HDBSCAN. Op deze manier wordt voor elk cluster een onderwerpvector gegenereerd.
- Vind woorden voor elke onderwerpvector: de woordvectoren die het dichtst bij de documentvector liggen, zijn semantisch het meest representatief.
Voorbeeld van Top2Vec
In deze zelfstudie gaan we de negatieve beoordelingen van McDonald's analyseren op basis van een dataset die beschikbaar is op data.wereld. Het identificeren van de onderwerpen uit deze beoordelingen kan waardevol zijn voor de multinational om de producten en de organisatie van deze fastfoodketen op de locaties in de VS die door de gegevens worden verstrekt, te verbeteren.
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()
In een enkele regel code gaan we alle stappen van de eerder uitgelegde top2vec uitvoeren.
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"},
)
De belangrijkste argumenten van Top2Vec zijn:
- docs_bad: is een lijst met tekenreeksen.
- universele-zin-encoder: is het gekozen vooraf getrainde inbeddingsmodel.
- deep-learn: is een parameter die de kwaliteit van de geproduceerde documentvector bepaalt.
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)
Het meest
Uit de woordwolken kunnen we afleiden dat onderwerp 0 gaat over algemene klachten over de service bij McDonald, zoals "trage service", "vreselijke service" en "bestelling verkeerd", terwijl onderwerp 1 en 2 respectievelijk verwijzen naar ontbijtmaaltijden ( McMuffin, biscuit, ei) en koffie (ijskoffie en kopkoffie).
Nu proberen we documenten te doorzoeken met behulp van twee trefwoorden, verkeerd en traag:
( 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()
Output:
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 is een onderwerpmodelleringstechniek die gebruikmaakt van transformatoren en c-TF-IDF om dichte clusters te creëren die gemakkelijk interpreteerbare onderwerpen mogelijk maken terwijl belangrijke woorden in de onderwerpbeschrijvingen behouden blijven."
Zoals de naam al doet vermoeden, gebruikt BERTopic krachtige transformatormodellen om de onderwerpen in de tekst te identificeren. Een ander kenmerk van dit onderwerpmodelleringsalgoritme is het gebruik van een variant van TF-IDF, de zogenaamde op klassen gebaseerde variatie van TF-IDF.
Net als Top2Vec hoeft het niet het aantal onderwerpen te weten, maar het haalt automatisch de onderwerpen op.
Bovendien is het, net als Top2Vec, een algoritme dat verschillende fasen omvat. De eerste drie stappen zijn hetzelfde: creatie van inbeddingsdocumenten, dimensionaliteitsreductie met UMAP en clustering met HDBScan.
De opeenvolgende fasen beginnen af te wijken van Top2Vec. Na het vinden van de dichte gebieden met HDBSCAN, wordt elk onderwerp getokeniseerd in een zak met woorden, waarbij rekening wordt gehouden met het feit of het woord in het document voorkomt of niet. Nadat de documenten behorend bij een cluster als een uniek document worden beschouwd en TF-IDF wordt toegepast. Dus voor elk onderwerp identificeren we de meest relevante woorden, die de hoogste c-TF-IDF zouden moeten hebben.
Voorbeeld van BERTopisch
We herhalen de analyse op dezelfde dataset.
We gaan de onderwerpen uit de beoordelingen halen met behulp van 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()
De tabel die door het model wordt geretourneerd, geeft informatie over de 14 geëxtraheerde onderwerpen. Onderwerp komt overeen met de onderwerp-ID, met uitzondering van alle uitbijters die worden genegeerd en die zijn gelabeld als -1.
Nu gaan we naar het meest interessante deel over de visualisatie van onze onderwerpen in interactieve grafieken, zoals de visualisatie van de meest relevante termen voor elk onderwerp, de intertopische afstandskaart, de tweedimensionale weergave van de inbeddingsruimte en de onderwerphiërarchie.
Laten we beginnen met het weergeven van de staafdiagrammen voor de tien belangrijkste onderwerpen. Voor elk onderwerp kunnen we de belangrijkste woorden observeren, gesorteerd in afnemende volgorde op basis van de c-TF-IDF-score. Hoe relevanter een woord is, hoe hoger de score.
Het eerste onderwerp bevat generieke woorden, zoals locatie en eten, onderwerp 1 bestellen en wachten, onderwerp 2 slechtst en service, onderwerp 3 plaats en vies, enzovoort.
Na het visualiseren van de staafdiagrammen, is het tijd om de intertopische afstandskaart te bekijken. We reduceren de dimensionaliteit van de c-TF-IDF-score tot een tweedimensionale ruimte om de onderwerpen in een plot te visualiseren. Onderaan bevindt zich een schuifregelaar waarmee u het onderwerp kunt selecteren dat rood wordt gekleurd. We zien dat de onderwerpen zijn gegroepeerd in twee verschillende clusters, een met generieke thema's zoals eten, kip en locatie, en een met verschillende negatieve aspecten, zoals slechtste service, vies, plek en koud.
De volgende grafiek maakt het mogelijk om de relatie tussen de beoordelingen en de onderwerpen te zien. Het kan met name handig zijn om te begrijpen waarom een recensie is toegewezen aan een specifiek onderwerp en is afgestemd op de meest relevante gevonden woorden. We kunnen ons bijvoorbeeld concentreren op het rode cluster, dat overeenkomt met onderwerp 2 met enkele woorden over de slechtste service. De documenten in dit dichtbevolkte gebied lijken nogal negatief, zoals "Vreselijke klantenservice en nog erger eten".
Op het eerste gezicht hebben deze benaderingen veel gemeenschappelijke aspecten, zoals het automatisch vinden van het aantal onderwerpen, in de meeste gevallen geen noodzaak tot voorbewerking, de toepassing van UMAP om de dimensionaliteit van documentinbeddingen te verminderen en vervolgens wordt HDBSCAN gebruikt voor het modelleren van deze gereduceerde documentinbeddingen, maar ze zijn fundamenteel anders als we kijken naar de manier waarop ze de onderwerpen aan de documenten toewijzen.
Top2Vec maakt onderwerprepresentaties door woorden te vinden die zich dicht bij het zwaartepunt van een cluster bevinden.
In tegenstelling tot Top2Vec houdt BERTopic geen rekening met het zwaartepunt van het cluster, maar beschouwt het alle documenten in een cluster als een uniek document en extraheert het onderwerprepresentaties met behulp van een op klassen gebaseerde variant van TF-IDF.
Top2Vec | BERTopic |
De strategie om onderwerpen te extraheren op basis van de zwaartepunten van het cluster. | De strategie om onderwerpen te extraheren op basis van c-TF-IDF. |
Het ondersteunt geen dynamische onderwerpmodellering. | Het ondersteunt dynamische onderwerpmodellering. |
Het bouwt woordwolken voor elk onderwerp en biedt zoekhulpmiddelen voor onderwerpen, documenten en woorden. | Het maakt het mogelijk om interactieve visualisatieplots te bouwen, waardoor interpretatie van de geëxtraheerde onderwerpen mogelijk is. |
Themamodellering is een groeiend gebied van natuurlijke taalverwerking en er zijn tal van mogelijke toepassingen, zoals recensies, audio en posts op sociale media. Zoals is aangetoond, biedt dit artikel een overzicht van Topi2Vec en BERTopic, twee veelbelovende benaderingen, die u kunnen helpen onderwerpen met weinig regels code te identificeren en de resultaten te interpreteren door middel van datavisualisaties. Als je vragen hebt over deze technieken of als je andere suggesties hebt over andere benaderingen om onderwerpen op te sporen, schrijf die dan in de comments.
Eugenia Anello is momenteel een research fellow bij de afdeling Information Engineering van de Universiteit van Padua, Italië. Haar onderzoeksproject is gericht op Continual Learning in combinatie met Anomaly Detection.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. Toegang hier.
- Bron: 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
- in staat
- Over
- Account
- Ad
- adres
- Na
- algoritme
- algoritmen
- uitgelijnd
- Alles
- toewijzing
- Het toestaan
- toestaat
- hoeveelheden
- analyse
- analyseren
- en
- onregelmatigheidsdetectie
- Nog een
- Aanvraag
- toepassingen
- toegepast
- nadering
- benaderingen
- GEBIED
- gebieden
- argumenten
- dit artikel
- aspecten
- toegewezen
- audio
- webmaster.
- Beschikbaar
- slecht
- bars
- gebaseerde
- omdat
- tussen
- Onder
- Ontbijt
- Gebouw
- bouwt
- het berekenen van
- Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen.
- kan niet
- in staat
- vangen
- gevallen
- keten
- karakteristiek
- Grafieken
- uitgekozen
- Plaats
- klassiek
- Sluiten
- dichterbij
- TROS
- clustering
- code
- Koffie
- gecombineerde
- opmerkingen
- Gemeen
- klachten
- beschouwd
- aangezien
- bevat
- verband
- conventioneel
- Overeenkomend
- komt overeen
- en je merk te creëren
- aangemaakt
- creëert
- Wij creëren
- het aanmaken
- beker
- Op dit moment
- klant
- Klantenservice
- gegevens
- dag
- omgang
- gedemonstreerd
- afdeling
- Opsporing
- bepaalt
- anders
- afstand
- afgelegen
- Divergeren
- document
- documenten
- Nee
- nadelen
- rit
- doorrijden
- dynamisch
- elk
- gemakkelijk
- elders
- ingebed
- Engineering
- Zelfs
- voorbeeld
- Behalve
- uitgelegd
- extract
- extracten
- uiterst
- SNELLE
- kameraad
- weinig
- veld-
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- het vinden van
- Voornaam*
- Focus
- gericht
- eten
- gevonden
- oppompen van
- fundamenteel
- Algemeen
- voortbrengen
- gegenereerde
- krijgen
- Globaal
- Go
- gaan
- diagram
- grafieken
- Groeiend
- hulp
- hiërarchie
- Hoge
- hoger
- hoogst
- HTTPS
- idee
- Identificatie
- identificatie
- identificeren
- het identificeren van
- importeren
- belangrijk
- verbeteren
- in
- informatie
- verkrijgen in plaats daarvan
- interactieve
- interessant
- interpretatie
- IT
- Italië
- KDnuggets
- houden
- blijven
- label
- taal
- Groot
- leren
- hefbomen
- Lijn
- lijnen
- Lijst
- lokaal
- gelegen
- plaats
- locaties
- Kijk
- op zoek
- Hoofd
- veel
- kaart
- Matrix
- MCDONALD
- zinvolle
- Media
- model
- modellering
- modellering
- modellen
- meer
- meest
- multinationaal
- naam
- Naturel
- Natuurlijke taal
- Natural Language Processing
- Noodzaak
- negatief
- volgende
- Geluid
- aantal
- vele
- waarnemen
- verkregen
- EEN
- bestellen
- organisatie
- origineel
- Overige
- panda's
- parameter
- deel
- bijzonder
- percentage
- uitvoeren
- zinnen
- plaats
- Plato
- Plato gegevensintelligentie
- PlatoData
- punt
- mogelijk
- Berichten
- krachtige
- presenteren
- vorig
- die eerder
- verwerking
- geproduceerd
- Producten
- project
- veelbelovend
- mits
- biedt
- kwaliteit
- Contact
- reden
- Rood
- verminderen
- Gereduceerd
- vermindering
- met betrekking tot
- verwantschap
- Relaties
- relevante
- herhaling
- vertegenwoordiging
- vertegenwoordiger
- vertegenwoordigt
- onderzoek
- Resultaten
- onthullen
- beoordelen
- Recensies
- dezelfde
- Ontdek
- zoeken
- selecteren
- service
- moet
- tonen
- getoond
- Zicht
- gelijk
- evenzo
- sinds
- single
- schuif
- traag
- So
- Social
- social media
- Posts op sociale media
- sommige
- Tussenruimte
- gespecialiseerde
- specifiek
- spleet
- Stap voor
- Stappen
- Strategie
- structuur
- dergelijk
- Stelt voor
- leren onder toezicht
- ondersteuning
- steunen
- tafel
- Nemen
- neemt
- technieken
- tien
- termen
- De
- Er.
- drie
- Door
- niet de tijd of
- naar
- getokeniseerd
- tools
- top
- Top tien
- onderwerp
- onderwerpen
- transformers
- zelfstudie
- typisch
- die ten grondslag liggen
- begrijpen
- unieke
- universiteit-
- USA
- .
- waardevol
- Values
- Variant
- visualisatie
- wachten
- welke
- en
- Terwijl
- wil
- binnen
- Woord
- woorden
- Slechtst
- schrijven
- Verkeerd
- zephyrnet