Foto: Mikechie Esparagoza
Vsak dan imamo večino časa opravka z neoznačenim besedilom in algoritmov za nadzorovano učenje sploh ni mogoče uporabiti za pridobivanje informacij iz podatkov. Podpolje naravnega jezika lahko razkrije temeljno strukturo v velikih količinah besedila. Ta disciplina se imenuje Topic Modeling, ki je specializirana za pridobivanje tem iz besedila.
V tem kontekstu se je izkazalo, da običajni pristopi, kot sta latentna Dirichletova alokacija in faktorizacija nenegativne matrike, ne zajamejo dobro odnosov med besedami, saj temeljijo na zbirki besed.
Iz tega razloga se bomo osredotočili na dva obetavna pristopa, Top2Vec in BERTopic, ki obravnavata te pomanjkljivosti z izkoriščanjem vnaprej usposobljenih jezikovnih modelov za ustvarjanje tem. Začnimo!
Top2Vec je model, ki je sposoben samodejno zaznati teme iz besedila z uporabo vnaprej usposobljenih besednih vektorjev in ustvariti smiselne vdelane teme, dokumente in besedne vektorje.
Pri tem pristopu lahko postopek ekstrakcije tem razdelimo na več korakov:
- Ustvari semantično vdelavo: ustvarjeni so skupaj vdelani vektorji dokumenta in besede. Ideja je, da bi morali biti podobni dokumenti bližje v vdelanem prostoru, medtem ko bi morali biti različni dokumenti oddaljeni med njimi.
- Zmanjšajte dimenzijo vdelave dokumenta: Uporaba pristopa zmanjšanja dimenzij je pomembna za ohranitev večine variabilnosti vdelave dokumentov ob zmanjšanju prostora velikih dimenzij. Poleg tega omogoča identifikacijo gostih območij, v katerih vsaka točka predstavlja vektor dokumenta. UMAP je tipičen pristop zmanjševanja razsežnosti, izbran v tem koraku, ker lahko ohrani lokalno in globalno strukturo visokodimenzionalnih podatkov.
- Identificirajte skupine dokumentov: HDBScan, pristop združevanja v gruče na podlagi gostote, se uporablja za iskanje gostih področij podobnih dokumentov. Vsakemu dokumentu je dodeljen šum, če ni v gosti gruči, ali oznaka, če pripada gostemu območju.
- Izračunajte centroide v prvotnem vdelanem prostoru: Središčna točka se izračuna z upoštevanjem prostora velikih dimenzij namesto zmanjšanega prostora za vdelavo. Klasična strategija je sestavljena iz izračuna aritmetične sredine vseh dokumentnih vektorjev, ki pripadajo zgoščenemu območju, dobljenih v prejšnjem koraku s HDBSCAN. Na ta način se za vsako gručo ustvari tematski vektor.
- Poiščite besede za vsak tematski vektor: besedni vektorji, ki so najbližji vektorju dokumenta, so pomensko najbolj reprezentativni.
Primer Top2Vec
V tej vadnici bomo analizirali negativne ocene McDonald'sa iz nabora podatkov, ki je na voljo na podatki.svet. Identifikacija tem iz teh pregledov je lahko dragocena za multinacionalke, da izboljšajo izdelke in organizacijo te verige hitre prehrane na lokacijah v ZDA, ki jih zagotavljajo podatki.
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()
V eni sami vrstici kode bomo izvedli vse prej razložene korake 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"},
)
Glavni argumenti Top2Vec so:
- docs_bad: je seznam nizov.
- univerzalni kodirnik stavkov: je izbrani vnaprej usposobljeni model vdelave.
- deep-learn: je parameter, ki določa kakovost izdelanega vektorja dokumenta.
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)
Večina
Iz besednih oblakov lahko sklepamo, da se tema 0 nanaša na splošne pritožbe glede storitev v McDonaldu, kot so "počasna postrežba", "grozna postrežba" in "napačno naročilo", medtem ko se tema 1 in 2 nanašata na hrano za zajtrk ( McMuffin, biskvit, jajce) in kava (ledena kava in skodelica kave).
Zdaj poskušamo iskati dokumente z dvema ključnima besedama, napačno in počasno:
( 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()
izhod:
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 je tehnika modeliranja tem, ki izkorišča transformatorje in c-TF-IDF za ustvarjanje gostih grozdov, ki omogočajo teme, ki jih je enostavno interpretirati, hkrati pa ohranja pomembne besede v opisih tem."
Kot že ime pove, BERTopic uporablja zmogljive modele transformatorjev za prepoznavanje tem, ki so prisotne v besedilu. Druga značilnost tega algoritma za modeliranje teme je uporaba različice TF-IDF, imenovane različica TF-IDF, ki temelji na razredu.
Tako kot Top2Vec mu ni treba vedeti števila tem, ampak teme samodejno izvleče.
Poleg tega gre podobno kot Top2Vec za algoritem, ki vključuje različne faze. Prvi trije koraki so enaki: ustvarjanje vdelanih dokumentov, zmanjšanje dimenzionalnosti z UMAP in združevanje v gruče s HDBScan.
Zaporedne faze se začnejo oddaljevati od Top2Vec. Po iskanju gostih območij s HDBSCAN se vsaka tema tokenizira v predstavitev vrečke besed, ki upošteva, ali se beseda pojavi v dokumentu ali ne. Ko se dokumenti, ki pripadajo gruči, štejejo za edinstven dokument in se uporabi TF-IDF. Torej, za vsako temo identificiramo najbolj ustrezne besede, ki bi morale imeti najvišji c-TF-IDF.
Primer BERTopic
Analizo ponovimo na istem nizu podatkov.
Teme bomo izluščili iz pregledov s pomočjo 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, ki jo vrne model, ponuja informacije o 14 ekstrahiranih temah. Tema ustreza identifikatorju teme, razen vseh izstopajočih vrednosti, ki so prezrte in so označene kot -1.
Zdaj bomo prešli na najbolj zanimiv del v zvezi z vizualizacijo naših tem v interaktivnih grafih, kot je vizualizacija najbolj relevantnih izrazov za vsako temo, zemljevid razdalje med temami, dvodimenzionalna predstavitev prostora za vdelavo in hierarhijo tem.
Začnimo prikazovati palične grafikone za prvih deset tem. Za vsako temo lahko opazimo najpomembnejše besede, razvrščene po padajočem vrstnem redu na podlagi ocene c-TF-IDF. Bolj ko je beseda ustrezna, višja je ocena.
Prva tema vsebuje generične besede, kot sta lokacija in hrana, tema 1 naročilo in čakanje, tema 2 najslabše in storitev, tema 3 mesto in umazano, oglas itd.
Po vizualizaciji paličnih grafikonov je čas, da si ogledate zemljevid razdalje med temami. Dimenzionalnost ocene c-TF-IDF zmanjšamo v dvodimenzionalni prostor, da vizualiziramo teme v risbi. Na dnu je drsnik, ki omogoča izbiro teme, ki bo obarvana rdeče. Opazimo lahko, da so teme združene v dva različna sklopa, enega z generično tematiko, kot so hrana, piščanec in lokacija, drugega pa z različnimi negativnimi vidiki, kot so najslabša postrežba, umazanost, kraj in mraz.
Naslednji graf omogoča ogled razmerja med pregledi in temami. Zlasti je lahko koristno razumeti, zakaj je ocena dodeljena določeni temi in je usklajena z najustreznejšimi najdenimi besedami. Lahko se na primer osredotočimo na rdečo gručo, ki ustreza temi 2 z nekaj besedami o najslabši storitvi. Dokumenti znotraj tega zgoščenega območja se zdijo precej negativni, na primer »Grozne storitve za stranke in še slabša hrana«.
Na prvi pogled imajo ti pristopi veliko skupnih vidikov, kot je samodejno iskanje števila tem, v večini primerov ni potrebe po predhodni obdelavi, uporaba UMAP za zmanjšanje dimenzionalnosti vdelav dokumentov in nato HDBSCAN, ki se uporablja za modeliranje teh zmanjšanih vdelav dokumentov, vendar so bistveno drugačni, ko pogledamo način dodeljevanja tem dokumentom.
Top2Vec ustvari predstavitve tem z iskanjem besed, ki se nahajajo blizu središča gruče.
Za razliko od Top2Vec, BERTopic ne upošteva centroida gruče, vendar je vse dokumente v gruči obravnaval kot edinstven dokument in izvlekel predstavitve tem z uporabo različice TF-IDF, ki temelji na razredu.
Top2Vec | Tema BER |
Strategija za pridobivanje tem na podlagi centroidov gruče. | Strategija za pridobivanje tem na podlagi c-TF-IDF. |
Ne podpira dinamičnega modeliranja tem. | Podpira dinamično modeliranje tem. |
Gradi besedne oblake za vsako temo in nudi orodja za iskanje tem, dokumentov in besed. | Omogoča gradnjo interaktivnih vizualizacijskih risb, kar omogoča interpretacijo ekstrahiranih tem. |
Tematsko modeliranje je rastoče področje obdelave naravnega jezika in obstajajo številne možne aplikacije, kot so ocene, zvok in objave v družabnih medijih. Kot je bilo prikazano, ta članek ponuja pregled Topi2Vec in BERTopic, ki sta dva obetavna pristopa, ki vam lahko pomagata prepoznati teme z nekaj vrsticami kode in interpretirati rezultate z vizualizacijami podatkov. Če imate vprašanja o teh tehnikah ali imate druge predloge o drugih pristopih za odkrivanje tem, jih napišite v komentarje.
Evgenija Anello je trenutno raziskovalec na Oddelku za informacijski inženiring Univerze v Padovi v Italiji. Njen raziskovalni projekt je osredotočen na nenehno učenje v kombinaciji z odkrivanjem anomalij.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- Platoblockchain. Web3 Metaverse Intelligence. Razširjeno znanje. Dostopite tukaj.
- vir: 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
- Sposobna
- O meni
- Račun
- Ad
- Naslov
- po
- algoritem
- algoritmi
- poravnano
- vsi
- dodelitev
- Dovoli
- omogoča
- zneski
- Analiza
- analizirati
- in
- odkrivanje anomalije
- Še ena
- uporaba
- aplikacije
- uporabna
- pristop
- pristopi
- OBMOČJE
- območja
- Argumenti
- članek
- vidiki
- dodeljena
- audio
- samodejno
- Na voljo
- Slab
- bar
- temeljijo
- ker
- med
- Bottom
- zajtrk
- Building
- Gradi
- izračun
- se imenuje
- ne more
- lahko
- zajemanje
- primeri
- verige
- Značilnost
- Charts
- izbran
- mesto
- klasična
- Zapri
- bližje
- Grozd
- grozdenje
- Koda
- Kava
- kombinirani
- komentarji
- Skupno
- Pritožbe
- šteje
- upoštevamo
- Vsebuje
- ozadje
- konvencionalne
- Ustrezno
- ustreza
- ustvarjajo
- ustvaril
- ustvari
- Ustvarjanje
- Oblikovanje
- Pokal
- Trenutno
- stranka
- Za stranke
- datum
- dan
- deliti
- Dokazano
- Oddelek
- Odkrivanje
- določa
- drugačen
- razdalja
- oddaljeni
- Razhajajo se
- dokument
- Dokumenti
- Ne
- pomanjkljivosti
- pogon
- vožnja skozi
- dinamično
- vsak
- enostavno
- drugje
- vgrajeni
- Inženiring
- Tudi
- Primer
- Razen
- razložiti
- ekstrakt
- Izvlečki
- izredno
- FAST
- kolega
- Nekaj
- Polje
- Najdi
- iskanje
- prva
- Osredotočite
- osredotočena
- hrana
- je pokazala,
- iz
- v osnovi
- splošno
- ustvarjajo
- ustvarila
- dobili
- Globalno
- Go
- dogaja
- graf
- grafi
- Pridelovanje
- pomoč
- hierarhija
- visoka
- več
- najvišja
- HTTPS
- Ideja
- Identifikacija
- identifikator
- identificirati
- identifikacijo
- uvoz
- Pomembno
- izboljšanje
- in
- Podatki
- Namesto
- interaktivno
- Zanimivo
- razlago
- IT
- Italija
- KDnuggets
- vzdrževanje
- Vedite
- label
- jezik
- velika
- učenje
- Leverages
- vrstica
- linije
- Seznam
- lokalna
- nahaja
- kraj aktivnosti
- Lokacije
- Poglej
- si
- Glavne
- več
- map
- Matrix
- MCDONALD
- smiselna
- mediji
- Model
- modeliranje
- modeliranje
- modeli
- več
- Najbolj
- multinacionalno
- Ime
- naravna
- Naravni jezik
- Obdelava Natural Language
- Nimate
- negativna
- Naslednja
- hrup
- Številka
- številne
- opazujejo
- pridobljeni
- ONE
- Da
- organizacija
- izvirno
- Ostalo
- pand
- parameter
- del
- zlasti
- odstotek
- opravlja
- stavki
- Kraj
- platon
- Platonova podatkovna inteligenca
- PlatoData
- Točka
- mogoče
- Prispevkov
- močan
- predstaviti
- prejšnja
- prej
- obravnavati
- Proizvedeno
- Izdelki
- Projekt
- obetaven
- če
- zagotavlja
- kakovost
- vprašanja
- Razlog
- Rdeča
- zmanjša
- Zmanjšana
- zmanjšanje
- o
- Razmerje
- Razmerja
- pomembno
- ponovite
- zastopanje
- predstavnik
- predstavlja
- Raziskave
- Rezultati
- razkrivajo
- pregleda
- Mnenja
- Enako
- Iskalnik
- iskanje
- izbiranje
- Storitev
- shouldnt
- Prikaži
- pokazale
- Sight
- Podoben
- podobno
- saj
- sam
- Drsnik
- počasi
- So
- socialna
- družbeni mediji
- Objave v družabnih medijih
- nekaj
- Vesolje
- specializirani
- specifična
- po delih
- Korak
- Koraki
- Strategija
- Struktura
- taka
- Predlaga
- nadzorovano učenje
- podpora
- Podpira
- miza
- Bodite
- meni
- tehnike
- deset
- Pogoji
- O
- Tukaj.
- 3
- skozi
- čas
- do
- tokenizirano
- orodja
- vrh
- Najboljših deset
- temo
- Teme
- transformatorji
- Navodila
- tipičen
- osnovni
- razumeli
- edinstven
- univerza
- ZDA
- uporaba
- dragocene
- Vrednote
- Variant
- vizualizacija
- Počakaj
- ki
- medtem
- Medtem ko
- bo
- v
- beseda
- besede
- Klobase
- pisati
- Napačen
- zefirnet