Foto: Mikechie Esparagoza
Iga päev tegeleme suurema osa ajast sildistamata tekstiga ja järelevalvega õppealgoritme ei saa andmetest teabe hankimiseks üldse kasutada. Loomuliku keele alamväli võib paljastada suures koguses teksti aluseks oleva struktuuri. Seda distsipliini nimetatakse teemade modelleerimiseks, mis on spetsialiseerunud tekstist teemade eraldamisele.
Selles kontekstis näitasid tavapärased lähenemisviisid, nagu varjatud Dirichleti jaotamine ja mittenegatiivse maatriksi faktoriseerimine, sõnade vahelisi seoseid hästi tabama, kuna need põhinevad sõnakotil.
Sel põhjusel keskendume kahele paljulubavale lähenemisviisile, Top2Vec ja BERTopic, mis käsitlevad neid puudusi, kasutades teemade loomiseks eelnevalt väljaõpetatud keelemudeleid. Alustame!
Top2Vec on mudel, mis suudab tekstist automaatselt teemasid tuvastada, kasutades selleks eelnevalt koolitatud sõnavektoreid ning luues sisukaid manustatud teemasid, dokumente ja sõnavektoreid.
Selle lähenemisviisi korral saab teemade eraldamise protseduuri jagada mitmeks etapiks.
- Semantilise manustamise loomine: luuakse ühiselt manustatud dokumendi- ja sõnavektorid. Idee seisneb selles, et sarnased dokumendid peaksid asuma manustamisruumis lähemal, samas kui erinevad dokumendid peaksid olema nende vahel kaugemal.
- Vähendage dokumendi manustamise mõõtmeid: Mõõtmete vähendamise lähenemisviisi rakendamine on oluline, et säilitada suurem osa dokumentide manustamise varieeruvusest, vähendades samal ajal suuremõõtmelist ruumi. Lisaks võimaldab see tuvastada tihedaid alasid, kus iga punkt tähistab dokumendivektorit. UMAP on selles etapis valitud tüüpiline mõõtmete vähendamise lähenemisviis, kuna see suudab säilitada suuremõõtmeliste andmete lokaalse ja globaalse struktuuri.
- Tuvastage dokumendiklastrid: sarnaste dokumentide tihedate alade leidmiseks kasutatakse tihedusepõhist rühmitamismeetodit HDBScan. Iga dokument määratakse mürana, kui see pole tihedas kobaras, või sildiks, kui see kuulub tihedasse piirkonda.
- Arvutage tsentroidid algses manustamisruumis: tsentroidi arvutamisel võetakse arvesse suuremõõtmelist ruumi, mitte vähendatud manustamisruumi. Klassikaline strateegia seisneb kõigi tihedasse piirkonda kuuluvate dokumendivektorite aritmeetilise keskmise arvutamises, mis on saadud eelmises etapis HDBSCANiga. Nii luuakse iga klastri jaoks teemavektor.
- Otsige iga teemavektori jaoks sõnu: dokumendivektorile lähimad sõnavektorid on semantiliselt kõige esinduslikumad.
Top2Vec näide
Selles õpetuses analüüsime McDonaldsi negatiivseid arvustusi andmebaasist, mis on saadaval aadressil andmed.maailm. Teemade tuvastamine nendest ülevaadetest võib olla rahvusvahelisele ettevõttele väärtuslik, et parandada selle kiirtoiduketi tooteid ja korraldust USA asukohtades, mille andmed näitavad.
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()
Ühes koodireas teeme kõik top2veci sammud, mida eelnevalt selgitati.
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 peamised argumendid on:
- docs_bad: on stringide loend.
- universaalne lausekooder: on valitud eelkoolitatud manustamismudel.
- deep-learn: on parameeter, mis määrab toodetava dokumendivektori kvaliteedi.
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)
Kõige
Sõnapilvedest võime järeldada, et teema 0 puudutab üldist kaebust McDonaldis pakutava teenuse kohta, nagu "aeglane teenindus", "jube teenindus" ja "vale tellimine", teema 1 ja 2 aga vastavalt hommikusöögile ( McMuffin, biskviit, muna) ja kohv (jääkohv ja tassikohv).
Nüüd proovime otsida dokumente kahe märksõnaga, vale ja aeglane:
( 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()
Väljund:
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 on teemade modelleerimise tehnika, mis kasutab trafosid ja c-TF-IDF-i, et luua tihedaid klastreid, mis võimaldavad hõlpsasti tõlgendatavaid teemasid, säilitades samal ajal olulised sõnad teemakirjeldustes."
Nagu nimigi ütleb, kasutab BERTopic tekstis esinevate teemade tuvastamiseks võimsaid trafomudeleid. Selle teema modelleerimisalgoritmi teine omadus on TF-IDF variandi kasutamine, mida nimetatakse TF-IDF klassipõhiseks variatsiooniks.
Nagu Top2Vec, ei pea see teadma teemade arvu, vaid tõmbab teemad automaatselt välja.
Veelgi enam, sarnaselt Top2Vec'iga on see algoritm, mis hõlmab erinevaid faase. Esimesed kolm sammu on samad: manustamisdokumentide loomine, mõõtmete vähendamine UMAP-i abil ja rühmitamine HDBScaniga.
Järjestikused faasid hakkavad Top2Vec'ist erinema. Pärast HDBSCANiga tihedate alade leidmist muudetakse iga teema sõnakoti esituseks, mis võtab arvesse, kas sõna esineb dokumendis või mitte. Pärast seda, kui klastrisse kuuluvad dokumendid loetakse unikaalseks dokumendiks ja rakendatakse TF-IDF. Seega tuvastame iga teema jaoks kõige asjakohasemad sõnad, millel peaks olema kõrgeim c-TF-IDF.
BERTopicu näide
Kordame analüüsi samal andmekogumil.
Me võtame teemad arvustustest välja, kasutades BERTopicit:
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()
Mudeli tagastatud tabel annab teavet 14 ekstraheeritud teema kohta. Teema vastab teema identifikaatorile, välja arvatud kõik kõrvalekalded, mida eiratakse ja mis on märgistatud kui -1.
Nüüd liigume kõige huvitavama osa juurde, mis puudutab meie teemade visualiseerimist interaktiivseteks graafikuteks, näiteks iga teema jaoks kõige asjakohasemate terminite visualiseerimine, teemadevaheline kauguskaart, manustamisruumi kahemõõtmeline esitus ja teema hierarhia.
Hakkame näitama kümne parima teema tulpdiagramme. Iga teema puhul saame jälgida kõige olulisemaid sõnu, mis on järjestatud c-TF-IDF skoori alusel kahanevas järjekorras. Mida rohkem sõna on asjakohasem, seda suurem on skoor.
Esimene teema sisaldab üldsõnalisi sõnu, nagu asukoht ja toit, teema 1 telli ja oota, teema 2 halvim ja teenindus, teema 3 koht ja räpane, reklaam jne.
Pärast tulpdiagrammide visualiseerimist on aeg heita pilk teemadevahelisele vahemaakaardile. Me vähendame c-TF-IDF skoori mõõtmeid kahemõõtmeliseks ruumiks, et visualiseerida süžee teemasid. Allosas on liugur, mis võimaldab valida punaseks värvitava teema. Võime märgata, et teemad on rühmitatud kahte erinevasse klastrisse, millest ühes on üldised teemad nagu toit, kana ja asukoht ning teises erinevad negatiivsed aspektid, nagu halvim teenindus, räpane, koht ja külm.
Järgmine graafik võimaldab näha arvustuste ja teemade vahelist seost. Eelkõige võib olla kasulik mõista, miks arvustus on määratud konkreetsele teemale ja mis on joondatud leitud kõige asjakohasemate sõnadega. Näiteks võime keskenduda punasele klastrile, mis vastab teemale 2, öeldes mõne sõnaga halvima teenuse kohta. Selle tiheda ala dokumendid tunduvad üsna negatiivsed, näiteks "Kohutav klienditeenindus ja veelgi hullem toit".
Esmapilgul on neil lähenemisviisidel palju ühiseid aspekte, nagu näiteks teemade arvu automaatne leidmine, enamikul juhtudel eeltöötluse puudumine, UMAP-i rakendamine dokumentide manustamise mõõtmete vähendamiseks ja seejärel kasutatakse HDBSCAN-i modelleerida neid vähendatud dokumentide manuseid, kuid need on põhimõtteliselt erinevad, kui vaadata, kuidas nad dokumentidele teemasid määravad.
Top2Vec loob teemaesitusi, leides sõnad, mis asuvad klastri tsentroidi lähedal.
Erinevalt Top2Vecist ei võta BERTopic arvesse klastri keskpunkti, kuid pidas kõiki klastris olevaid dokumente ainulaadseks ja ekstraheerib teemade esitusi, kasutades TF-IDF klassipõhist variatsiooni.
Top2Vec | BERTOpic |
Klastrite tsentroidide põhjal teemade eraldamise strateegia. | C-TF-IDF-il põhinevate teemade ekstraktimise strateegia. |
See ei toeta dünaamilist teemade modelleerimist. | See toetab dünaamilist teemade modelleerimist. |
See loob iga teema jaoks sõnapilved ning pakub teemade, dokumentide ja sõnade otsimise tööriistu. | See võimaldab luua interaktiivseid visualiseerimisskeeme, võimaldades ekstraheeritud teemade tõlgendamist. |
Teemade modelleerimine on loomuliku keele töötlemise kasvav valdkond ja seal on palju võimalikke rakendusi, nagu ülevaated, heli- ja sotsiaalmeedia postitused. Nagu on näidatud, annab see artikkel ülevaate Topi2Vecist ja BERTopicist, mis on kaks paljulubavat lähenemisviisi, mis aitavad teil tuvastada mõne koodireaga teemasid ja tõlgendada tulemusi andmete visualiseerimise kaudu. Kui teil on nende tehnikate kohta küsimusi või teil on muid ettepanekuid teemade tuvastamise muude lähenemisviiside kohta, kirjutage need kommentaaridesse.
Eugenia Anello on praegu Itaalias Padova ülikooli infotehnoloogia osakonna teadur. Tema uurimisprojekt keskendub pidevale õppimisele koos anomaalia tuvastamisega.
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- Platoblockchain. Web3 metaversiooni intelligentsus. Täiustatud teadmised. Juurdepääs siia.
- Allikas: 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
- Võimalik
- MEIST
- konto
- Ad
- aadress
- pärast
- algoritm
- algoritme
- joondatud
- Materjal: BPA ja flataatide vaba plastik
- eraldamine
- Lubades
- võimaldab
- summad
- analüüs
- analüüsima
- ja
- anomaalia tuvastamine
- Teine
- taotlus
- rakendused
- rakendatud
- lähenemine
- lähenemisviisid
- PIIRKOND
- valdkondades
- argumendid
- artikkel
- aspektid
- määratud
- heli-
- automaatselt
- saadaval
- Halb
- baar
- põhineb
- sest
- vahel
- põhi
- hommikusöök
- Ehitus
- Ehitab
- arvutamisel
- kutsutud
- ei saa
- võimeline
- lüüa
- juhtudel
- kett
- iseloomulik
- Äritegevus
- valitud
- Linn
- klassika
- lähedal
- lähemale
- Cluster
- Klastrite loomine
- kood
- Kohv
- kombineeritud
- kommentaarid
- ühine
- kaebuste
- kaaluda
- arvestades
- sisaldab
- kontekst
- tavaline
- Vastav
- vastab
- looma
- loodud
- loob
- loomine
- loomine
- Tass
- Praegu
- klient
- Kasutajatugi
- andmed
- päev
- tegelema
- Näidatud
- osakond
- Detection
- määrab
- erinev
- kaugus
- Kaugel
- Erinevus
- dokument
- dokumendid
- Ei tee
- puudused
- ajam
- läbi sõita
- dünaamiline
- iga
- kergesti
- mujal
- varjatud
- Inseneriteadus
- Isegi
- näide
- Välja arvatud
- selgitas
- väljavõte
- Väljavõtted
- äärmiselt
- KIIRE
- mees
- vähe
- väli
- leidma
- leidmine
- esimene
- Keskenduma
- keskendunud
- toit
- avastatud
- Alates
- põhimõtteliselt
- Üldine
- tekitama
- loodud
- saama
- Globaalne
- Go
- läheb
- graafik
- graafikud
- Kasvavad
- aitama
- hierarhia
- Suur
- rohkem
- kõrgeim
- HTTPS
- idee
- Identifitseerimine
- tunnus
- identifitseerima
- identifitseerimiseks
- import
- oluline
- parandama
- in
- info
- selle asemel
- interaktiivne
- huvitav
- tõlgendus
- IT
- Itaalia
- KDnuggets
- pidamine
- Teadma
- silt
- keel
- suur
- õppimine
- võimendab
- joon
- liinid
- nimekiri
- kohalik
- asub
- liising
- kohad
- Vaata
- otsin
- põhiline
- palju
- kaart
- maatriks
- MCDONALD
- tähendusrikas
- Meedia
- mudel
- modelleerimine
- modelleerimine
- mudelid
- rohkem
- kõige
- rahvusvahelised
- nimi
- Natural
- Loomulik keel
- Natural Language Processing
- Vajadus
- negatiivne
- järgmine
- müra
- number
- arvukad
- jälgima
- saadud
- ONE
- et
- organisatsioon
- originaal
- Muu
- pandas
- parameeter
- osa
- eriline
- protsent
- täitma
- fraasid
- Koht
- Platon
- Platoni andmete intelligentsus
- PlatoData
- Punkt
- võimalik
- Postitusi
- võimas
- esitada
- eelmine
- varem
- töötlemine
- Toodetud
- Toodet
- projekt
- paljutõotav
- tingimusel
- annab
- kvaliteet
- Küsimused
- põhjus
- Red
- vähendama
- Lühendatud
- vähendamine
- kohta
- suhe
- Suhted
- asjakohane
- kordama
- esindamine
- esindaja
- esindab
- teadustöö
- Tulemused
- avalduma
- läbi
- Arvustused
- sama
- Otsing
- otsimine
- valides
- teenus
- peaks
- näitama
- näidatud
- vaatepilt
- sarnane
- Samamoodi
- alates
- ühekordne
- liugur
- aeglane
- So
- sotsiaalmeedia
- Sotsiaalse meedia
- Sotsiaalmeedia postitused
- mõned
- Ruum
- spetsialiseeritud
- konkreetse
- jagada
- Samm
- Sammud
- Strateegia
- struktuur
- selline
- Soovitab
- juhendatud õppimine
- toetama
- Toetab
- tabel
- Võtma
- võtab
- tehnikat
- kümme
- tingimused
- .
- Seal.
- kolm
- Läbi
- aeg
- et
- märgistatud
- töövahendid
- ülemine
- Kümme parimat
- teema
- Teemasid
- trafod
- juhendaja
- tüüpiline
- aluseks
- mõistma
- ainulaadne
- Ülikool
- USA
- kasutama
- väärtuslik
- Väärtused
- variant
- visualiseerimine
- ootama
- mis
- kuigi
- samas
- will
- jooksul
- sõna
- sõnad
- halvim
- kirjutama
- Vale
- sephyrnet