NLP R 1. rész: Téma modellezés azonosítsa a témákat az éttermi véleményekben

(Jurriaan Nagelkerke) ( 2020. november 13.)

Ezt a történetet és írták. Ez része a NLP R sorozatunknak ( Természetes nyelv feldolgozása prediktív célokra R vel) , ahol a Téma modellezést, a Word beágyazásokat, a transzformátorokat és a BERT-et használjuk. cikkekből összehasonlítjuk a különböző NLP technikákat, hogy megmutassuk, hogyan szerezhetünk értékes információkat a strukturálatlan szövegből. Körülbelül egy évvel ezelőtt gyűjtöttünk véleményeket holland éttermekről. Arra voltunk kíváncsiak, vajon „a tömeg bölcsessége” – az éttermi látogatók véleménye – felhasználható-e annak megjóslására, hogy mely éttermek kapják a legvalószínűbb új Michelin-csillagot. Olvassa el ezt a bejegyzést , hogy megnézze, hogyan működött ez. A témamodellezést használtuk elsődleges eszközként, hogy információkat nyerjünk ki az áttekintő szövegekből, és ezt kombináltuk a prediktív modellezési technikákkal, hogy véget érjünk az előrejelzéseinknek.

Nagy figyelmet szenteltünk jóslatainkkal, és kérdéseket vetettünk fel a szövegelemző rész elkészítésével kapcsolatban is. E kérdések megválaszolásához a következő cikkekben részletesebben elmagyarázzuk megközelítésünket. De publikációnk után nem hagytuk abba az NLP technikák feltárását, és szeretünk megosztani az új NLP technikák hozzáadásával kapcsolatos felismeréseket is. Pontosabban kétféle szóbeágyazást fogunk használni: egy klasszikus Word2Vec modellt és egy GLoVe beágyazási modellt – transzfertanulást használunk előre elkészített szóbeágyazásokkal, és a BERT fájlt fogjuk használni. Összehasonlítjuk ezen fejlett NLP technikák hozzáadott értékét az ugyanazon az adatkészleten alapul szolgáló témamodellünkkel. Bemutatva, hogy mit és hogyan tettünk, reméljük, hogy másokat is eligazíthatunk, akik szívesen használják a szöveges adatokat saját adattudományi törekvéseikhez.

Egy (előző cikkben) megmutattuk, hogyan előkészítette adatainkat a különböző NLP technikákhoz. Itt kezdjük az NLP technikákkal foglalkozó cikksorozatunkat azáltal, hogy bemutatjuk a témamodellezést , és bemutatjuk, hogyan lehet azonosítani a témákat, vizualizálni a témamodellt eredmények. Egy (későbbi cikkben) bemutatjuk, hogyan használhatja a témamodell eredményeit egy prediktív modellben.

Mi a témamodellezés?

A témák felfedezéséhez az éttermi véleményezők írnak erről éttermi véleményükben, mi az Topic Modeling szót használjuk. De mi az a témamodell? A gépi tanulásban és a természetes nyelv feldolgozásában a témamodell egy olyan statisztikai modell, amely felhasználható a dokumentumgyűjteményben előforduló absztrakt témák felfedezésére. Számos algoritmus létezik a témák szöveggyűjteményből történő kinyerésére, de a látens Dirichlet-allokáció az egyik legnépszerűbb algoritmus, mert hatékony en eredményez jól értelmezhető témák. A témák értelmezhetősége a témamodell egyik fontos jellemzője, mivel nem csak statisztikailag releváns szavak csoportjait akarjuk megtalálni, hanem azt is, hogy képesek legyünk az azonosított témákat olyan témanévvel felcímkézni, amelyhez mások is kapcsolódhatnak. Mint ilyen, a témamodellezés hasonlóságot mutat a klaszterezési technikákkal, például a KMeans, ahol az értelmezés ugyanolyan fontos, mint a statisztikai mérőszámok a “jó” megoldás meghatározásakor. A témamodellezés / LDA működését a Blei megjeleníti:

Amint az ábra mutatja:

  • Mindegyik A téma eloszlás a szavak között
  • Minden dokumentum eloszlás a témák között

Tehát miután befejeztük a témák modellezését a véleményeinkben:

  • tudnunk kell, hogy olyan témák vagy témák, amelyekről a bírálók írnak éttermi áttekintéseik,
  • tudjuk, hogy mely jelzők vagy szavak a legfontosabbak ezekben a témákban, és
  • minden egyes áttekintésnél elmondhatjuk, hogy mennyiben szól az azonosított témákról és erről keverék lehet – 80\% az X témához és 20\% az Y témához .

0. lépés: A kontextusunk beállítása

Először , beállítottuk a munkafüzet környezetünket a szükséges csomagokkal a témamodellezés elvégzéséhez.

A (blog a prepar a szöveges adatok beillesztése) már röviden bemutattuk a tidiverse és a rendezett szövegeket.Itt adunk néhány további csomagot a listához:

  • topicmodels egy csomag, amely megbecsüli a témamodelleket LDA-val és buildekkel a tm csomaggal létrehozott adatstruktúrákon
  • tm egy erőteljes, általános csomag, mindenféle szövegbányászati ​​funkcióval, többek között dokumentum létrehozása kifejezésmátrixok, amelyekre szükségünk van a témamodellezéshez.
  • ldavis remek csomag a témamodell vizualizálására és értelmezésére, és nagyon hasznos a címkézésnél témakörök

1. lépés: Előre feldolgozott adatok betöltése

Előtte elmélyülünk a dolgok analitikai oldalán, szükségünk van néhány előkészített szöveges adatra. Mint minden valódi adatkutató tudja, a megfelelő adatok előkészítése az Ön idejének nagy részét elviszi, és a legmeghatározóbb a végső elemzési eredmények minősége szempontjából. A szöveges adatok előkészítése még egy csésze tea a strukturált numerikus vagy kategorikus adatok elkészítéséhez képest. Ebben a blogban a szövegelemzésre összpontosítunk. Mégis szeretnénk megmutatni, hogyan tisztítottuk és készítettük el az összegyűjtött adatokat. Ebben (az előző blogban) részletesen elmagyarázzuk, hogyan dolgoztuk fel az adatokat, így a következő 5 fájlt használhatjuk fel NLP elemzésünkben:

  • reviews.csv: csv fájl eredeti és elkészített áttekintő szövegekkel – az NLP-elemzéseink forrása. (mellékelt kulcs: restoreviewid, ezért a felülvizsgálat egyedi azonosítója)
  • labels.csv : a 1/0 értékű csv fájl, amely jelzi, hogy az értékelés egy Michelin étterem véleménye-e vagy sem (mellékelt kulcs: restoreviewid)
  • restoid.csv : csv fájl étterem-azonosítókkal, hogy meg lehessen határozni, hogy mely vélemények melyik étterembe tartoznak (mellékelt kulcs: restoreviewid)
  • trainids.csv : 1/0 értékű csv fájl, amely jelzi, hogy a felülvizsgálatot edzéshez vagy teszteléshez kell-e használni – a véleményeket már megosztottuk a vonaton / teszt ugyanazok a minták újrafelhasználásának engedélyezésére a technikák igazságos összehasonlítása érdekében (beleértve a kulcsot: restoreviewid)
  • features.csv

Ezek a fájlok Az NLP technikák tisztított és releváns adatait a nyilvános blob tárolón keresztül bocsátjuk rendelkezésére, így futtathatja az összes általunk bemutatott kódot, és részletesebben láthatja a dolgok működését. A témamodellünkhöz három ilyen fájlra van szükségünk:

2. lépés: Adatok előkészítése a témához modellezés

A megtisztított áttekintő szövegekből kiindulva néhány dolgot meg kell tennünk, mielőtt megbecsülhetnénk a témamodelljeinket:

  1. Tokenizáljuk elkészített szövegünket (beleértve a bigramokat is)
  2. Mintajelzések a témamodellünk oktatásához
  3. A releváns tokenek szűrése
  4. Dokumentum-terminálmátrix létrehozása

2.1. Tokenizálja az elkészített szövegünket (beleértve a bigramokat is)

A látens Dirichlet-allokáció (LDA), a téma modellezéséhez használt technika „szavak zsákja”. Ez azt jelenti, hogy az NLP technika nem veszi figyelembe a tokenek sorrendjét a szöveg elemzésekor. Ezért nem vesszük figyelembe, hogy a token hol található a szövegben, és milyen más tokenek vannak a token közelében (megelőző / következő tokenek) a dokumentumon belül . Ez olyan, mintha a dokumentum szövegéből származó összes tokent egy zacskóba dobnák, összekeverik őket, de megtartják azt az információt, hogy a tokenek vannak ugyanabban a dokumentumban. Ennek eredményeként elengedhetjük a fontos információkat, ha sok érdekes kollokáció – a tokenek gyakori kombinációja – szerepel a szövegben. Népszerű példák az emberek („Donald Trump”, „Jonnie Boer”) vagy helyek („Egyesült Államok”, „Den Haag”) nevei, de a szövegkörnyezet-specifikus szavak kombinációi is fontosak lehetnek a témamodellünkben: „witte wijn ( fehérbor ), rode wijn , ( vörösbor ), gaan eten ( megy enni ). Annak érdekében, hogy ne maradjanak le ezekről a fontos kollokációkról, hozzáadjuk az előkészített bigramokat , amelyek jelen vannak a szövegünkben. Ne feledje, hogy a dataprep-ben már eltávolítottuk a stopszavakat és az interakciókat.

Miután bigramokat adtunk a betöltött, megtisztított szövegekhez, újra felosztottuk a szövegeket, hogy egy adatkeretet kapjunk, ahol minden sor egy áttekintés – token kombináció. A leállítási szavak eltávolítása után kiszűrjük az olyan véleményeket, amelyek túl rövidek (5 tokenek). Ebben a formátumban készen állunk az utolsó előkészületekre, mielőtt megkezdhetnénk a témák modellezését.

2.2 Mintajelzések a témamodellünk képzéséhez

Következő lépésünkben kiszűrjük a legrelevánsabb tokeneket, amelyeket bele kell foglalni a dokumentum kifejezés mátrixába, majd a téma modellezésébe.De először meg kell határoznunk, hogy mely dokumentumok (vélemények) a legfontosabbak számunkra. Bizonyos okokból nem szeretnénk az összes véleményt felhasználni a témamodellünk bemeneteként:

  • Végül egy predikciós modellben szeretnénk felhasználni a témákat, hogy jósolják meg a Michelin-csillagokat. A legjobb gyakorlat, ha félretesz egy tesztkészletet, mielőtt felépítenénk a témamodellt, és eredményeit felhasználnánk a downstream prediktív feladatban. Így a témamodellünket és az előrejelzésünket a vonatadatokra építjük, és a tesztadatokat az értékelésig láthatatlanul tartjuk.
  • Amint az alábbiakban látható, az összes értékelés legfeljebb 3\% -a Michelin-értékelés. A témamodellezéshez használt vonatkészletben a Michelin-vélemények arányának növelésével valószínűbb, hogy a Michelin-áttekintésekben tárgyalt konkrét témákat azonosítani fogják.

Ezen okok miatt az előkészítés további részét a témamodellünkre és a témamodellek becslésére összpontosítja a felülvizsgálatok egy részére. Ez az alkészlet csak olyan áttekintéseket tartalmaz, amelyeket az adat-előkészítő füzetünkben már képzési esetekként határoztak meg. Ezen az alkészleten belül az összes Michelin-értékelést (kb. 3 000) összegyűjtjük, és kiegészítjük a nem Michelin-véleményekkel, hogy körülbelül 10 000 véleményt kapjunk:

# A tibble: 2 x 3
ind\_michelin n pct

1 0 141554 97\%
2 1 4313 3\%
# A tibble: 5 x 5
# Groups: train\_smpl, train [3]
train\_smpl train ind\_michelin n\_reviews n\_tokens

1 0 0 0 40997 433179
2 0 0 1 1290 35129
3 0 1 0 88505 773887
4 1 1 0 7181 111435
5 1 1 1 2971 70548
[1] "10152 unique reviews and 163137 unique tokens selected to train topic model"

2.3 Tokenek szűrése

Most, hogy bigramokat adtunk a tokenekhez, és újból tokenizáltuk a szövegeinket, még mindig sok-sok egyedi token áll rendelkezésre a témamodellünkhöz . A legjobb gyakorlat, ha megszabadulunk a ritka kifejezések hosszú farkától. Először nézzük meg, hogy néz ki a token frekvencia eloszlása. Ne feledje, hogy (adat-előkészítő blogunkban) már eltávolítottunk minden leállítási szót a szövegekből, beleértve a 128 egyedi nagy frekvenciájú „stop” szót is, amelyeket az adatok előkészítésekor a token gyakoriságának megtekintésével adtunk meg.

A fenti ábra egyértelműen megmutatja, hogy az egyedi tokenek hatalmas mennyisége ritkán fordul elő az összes értékelésben, 75\% csak egyszer fordul elő.

Fókuszáljon az öt alkalommal előforduló tokenekre, ill. többet a vonat Corpus

Amint a token frekvencia számlálásából láthatjuk, sok olyan token létezik, amelyek csak egyszer vagy néhányszor fordulnak elő: Az összes egyedi token körülbelül 92\% -a kevesebb, mint ötször fordul elő a mi felülvizsgálati korpusz. Ezek az alacsony frekvenciájú tokenek hatással vannak a témamodell elemzésére. A gyakran használt tokenekre összpontosítva kiválasztunk olyan tokeneket, amelyek ötször vagy többször fordulnak elő az előkészített vonatadatokban. Remélhetőleg ez elegendő ahhoz, hogy témákat tanulhassunk a tokenekből, amelyek ugyanazon áttekintésekben együtt fordulnak elő. Témamodellünk optimalizálásakor változtathatjuk a minimális gyakoriságot az eredmények hatásának értékeléséhez.

Miért ne a TF-IDF?

Miután elolvasta a szövegelemző eszközöket, felmerülhet a kérdés: Miért nem használjuk a TF-IDF-et a legrelevánsabb tokenek kiválasztásához? A TF-IDF a Term Frequency – Inverse Document Frequency kifejezés. Ez a mutató egyesíti a kifejezés gyakoriságát – milyen gyakran van a token egy dokumentumban? – a dokumentum gyakoriságának inverzével – hány egyedi dokumentumban van jelen a kifejezés? Bár a TF-IDF gyakran jó választás a legrelevánsabb tokenek kiválasztására, ez nem a mi kontextusunkban van, ahol a dokumentum mérete korlátozott, és ugyanazon token újbóli megjelenése ugyanabban a szövegben alacsony. Nem gyakran előfordul, hogy egy token Term frekvenciája meghaladja az 1-et. Ennek eredményeként csak az Inverz dokumentum gyakorisága része a meghatározó, és ez kedvez azoknak a tokeneknek, amelyek csak egy vagy két felülvizsgálat során fordulnak elő. Ezért itt nem a TF-IDF-et használjuk, hanem a témamodellezéshez releváns tokenek kiválasztásához az általános gyakoriságot vesszük figyelembe. Azért is, mert már eltávolítottuk a szövegből a leállítási szavak egyéni listáját, ezért a túl gyakori tokeneket már eltávolítottuk.

A ritka tokenek szűrésével csökkentettük a figyelembe veendő tokenek számát. az LDA-ban drámai módon összpontosítva a 12K (8\%) leggyakoribb tokenekre, és eltávolítva a korpuszban túl ritkán előforduló 146K (92\%) tokent. Ezek a kiválasztott tokenek azonban továbbra is a dokumentumok összes tokenek 73\% -át képviselik:

# A tibble: 2 x 5
min\_5\_freq n\_unique\_tokens n\_tokens pct\_unique\_tokens pct\_all\_tokens

1 token frequency: 2 token frequency: >=5 12525 518146 8\% 73\%

2.4 DTM létrehozása

A témamodellünk felépítéséhez használni kívánt tokenek szűrése után létrehozhatjuk a bemenetet a LDA. Ehhez szükséges egy document-term-matrix vagy DTM mátrix, tehát egy mátrix szerepel a sorokban az összes dokumentumunkkal (áttekintéssel) és az oszlopokban az összes kifejezéssel vonatkozó jelzők). Ne feledje, hogy a value paraméterhez az átfogó token gyakoriságát használjuk.Itt számíthat a dokumentum-specifikus kifejezés gyakoriságára , azonban az általános token gyakoriságot használjuk arra, hogy sokkal nagyobb hangsúlyt fektessünk a témamodell megtalálásában azokra a kifejezésekre, amelyek általában gyakoribbak; az áttekintések rövid terjedelme miatt (összehasonlítva a témamodellezésben gyakran használt könyvekkel vagy cikkekkel) korlátozott annak valószínűsége, hogy egyetlen token gyakrabban forduljon elő az áttekintésben.

DTM dimensions: 
Documents (10152) x Tokens (12525) (average token frequency: 702.3)

3. lépés: Témamodell kidolgozása

Most, hogy van egy DTM, készen állunk a témamodellezés megkezdésére! Eddig elég sok olyan döntést hoztunk, amelyek hatással voltak elemzési eredményünkre: milyen minimális áttekintési hosszúságot kell használni, milyen megállító szavakat kell kizárni, milyen n -ba foglalandó grammok, a tokenek használatához szükséges minimális token gyakoriság … És még néhány döntést meg kell hozni.

Az LDA számos olyan paraméterrel rendelkezik, amelyek befolyásolják az eredményt, amelyek közül a legfontosabbak:

  • k : A témák száma! Igen, ez egy paraméter és nem egy eredmény. Hasonló fürtözési technikákhoz, mint a KMeans, meg kell mondania, hogy hány klasztert / témát szeretne azonosítani ify.
  • method : A topicmodels csomag különböző optimalizálási módszereket tesz lehetővé, VEM algorithm vagy Gibbs sampling, az alapértelmezett érték a VEM.
  • control : a becslés irányításához szükséges kontrollváltozók listája – a releváns paraméterek a választott VEM vagy Gibbs módszertől függenek, de a legfontosabbak a következők:
  • nstart : Azonos beállításokkal, de különböző magokkal végrehajtandó futtatások száma
  • seed : A reprodukálhatóság érdekében véletlen mag állítható be. Ha az nstart> 1, akkor több magot kell megadnia, nstartonként 1-t (pl. C (123, 234 “, 345”))
  • best : Ha IGAZ (alapértelmezés), akkor csak a legjobban illeszkedő eredményt tartalmazó futás marad meg, ha FALSE az összes futás listája visszaadódik, így az összeset megvizsgálhatja közülük.

Az összes rendelkezésre álló paraméter és beállítás teljes áttekintéséhez lásd a topicmodels csomag matricáját .

Becsülje meg az LDA témamodelljét

A leghatásosabb paraméter a k : a szám témák ból azonosítani. Hogyan válasszunk k értéket? Ez részben vita eredményeként várható (hány témát találunk ebben az összefüggésben?) És a próba & hiba eredménye (próbálkozzon a k különböző értékeivel, értékelje az eredményeket). Néhány adatkutatónak ez nem tetszhet, inkább statisztikákat nézeget, hogy útmutatást nyújtson nekik ebben a folyamatban, de azok számára, akik ismerik az egyéb felügyelet nélküli adattudományi technikákat, mint például a KMeans, ez nem olyan új. A klaszterezés és a témamodellezés bizonyos mértékben inkább művészet, mint tudomány. Statisztikai technikák és mérőszámok által vezérelve az adatkutató egy (üzleti) igényeknek megfelelő témamodellezési megoldást készít. Ha valamilyen statisztikai háttérrel rendelkező k kezdőpontjára van szüksége, akkor kipróbálhatja ezt a megközelítést vagy ezt megközelítés.

Kezdjük egy témamodellel, hogy azonosítsunk 3 témát, és fedezzük fel az eredményt. Nincs okunk ezen a ponton egyéb alapértelmezett értékeket megváltoztatni.

Témamodell kiértékelése

A témamodell illesztve van, tehát vizsgáljuk meg!

Az illesztett lda objektum számos mátrixot tartalmaz:

  • phi : mátrix tokenek elosztásával (sorokban) témák felett (oszlopokban)
  • theta : mátrix a dokumentumok (tehát: áttekintések, sorokban) elosztásával a témák (oszlopok) felett

A phi és a theta, az összes oszlop összege egyenlő 1-vel, jelentése:

  • A phi esetében a témán belüli összes token pontszám összege 1 – a magasabb pontszám azt jelenti, hogy a token nagyobb jelentőséggel bír a témában .
  • A theta esetében az összes témakör pontszámának összege egy dokumentumon belül 1 – magasabb pontszám, ami azt jelenti, hogy a téma jobban jelen van az adott dokumentumban.

A témamodellünk felfedezéséhez kezdjük azzal, hogy megvizsgáljuk a témánként legfontosabb jelzőket. Ehhez meg kell határoznunk, hogy egy token mikor fontos egy témához. Vitathatnánk, hogy a token akkor fontos a téma számára, ha nagy valószínűséggel fordul elő egy p(token|topic) témán belül. Lássuk, hogyan néz ki ez a 3 témájú témamodellünk számára. Használjuk a tidytext csomag tiszta funkcióját, amely elősegíti a témamodell adatainak elkészítését a legfontosabb tokenek megjelenítéséhez. témánként: tidy().

Ezzel a cselekménnyel először megismerhetjük, hogy az első témamodellünkben szereplő témák mit jelentenek. Mint a cselekményből láthatjuk, a témakörönkénti token valószínűségnek az a hátránya, hogy a nagy általános gyakorisággal rendelkező tokenek nagyobb valószínűséggel jelennek meg a top 10-ben több témában. Például az étterem több top 10 topikban jelenik meg. Csak a téma teljes valószínûségét tekintve rejthetõ el, hogy a konkrét kissé ritkább tokenek nagyon kapcsolódnak egy adott témához. Ennek elemzéséhez a témában a token gyakoriságát relatív a token általános gyakoriságához: p(token|topic)/p(token). Ez megmutatja, hogy milyen tokenek szorosan kapcsolódnak a témához, függetlenül a tokenek gyakoriságától.

Az (csak) utóbbi megközelítésnek megvan a maga hátránya, kiemelve azokat a fontos tokeneket, amelyek nem fordulhatnak elő hogy sok vélemény. A legjobb megközelítés valahol a közepén lehet: A témamodell értékeléséhez az a legértékesebb, ha mindkét szempontból – abszolút kifejezés valószínűsége és relatív kifejezés valószínűsége -, sőt talán a kettő keverékéből is kutathatunk. Emiatt a LDAvis csomag annyira értékes, mert pontosan ezt teszi lehetővé! Az LDAvis-nek szüksége van egy JSON-ra, amely információkat tartalmaz a témamodellről és a szókincsről:

Mellékjegyzet itt: az LDAvis R csomag használható az R vagy az RStudio alkalmazásból, de nem közvetlenül olyan notebook környezetből, mint a Jupyter vagy a Databricks. Ezért a pyLDAvis portot használtuk az LDAvis csomaghoz, mivel ez megkönnyíti a csodálatos LDAvis eszköz beillesztését egy notebookba. Egyes böngészőkben azonban a pyLDAvis nem működik megfelelően. Ha ez megtörténik, kérjük, olvassa el az alábbi példát. Nyugodtan töltse le ezt a jegyzetfüzetet és próbálja ki maga az LDAvis programot.

Az LDAvis helyi futtatásához R vagy RStudio segítségével futtathat serVis(json) . Az interaktív LDAvis felfedezéséhez az alábbi képernyőnyomtatásról lásd ezt a linket .

A bal oldali ábrán a Témák ( Hány dokumentumot tulajdonítanak a témának?) , valamint a Témák közötti távolság ( Milyen témák vannak többé-kevésbé kapcsolatban egymással? ). A jobb oldalon láthatóak a kiválasztott témakör fontos tokenjei (vagy a témamodell összesített legfontosabb tokenjei, ha nincs kiválasztva téma). A jobb felső csúszkával megváltoztathatjuk a lambdát, ahol a lambda eldönti, hogy mennyire támogatjuk a témán belüli abszolút jelző valószínűségét (p(token|topic), lambda = 1), vagy előnyben részesítjük a relatív tokent valószínűség a témán belül (p(token|topic)/p(token), lambda = 0). Ezzel a megjelenítéssel való játék gyakran a legjobb módja a megismert témák megismerésének. És – ami a legfontosabb – kitalálni az egyes témákhoz egy megfelelő témacímkét! Ez szintén nagy segítséget nyújt annak eldöntésében, hogy az aktuális témamodell elegendő-e a downstream feladathoz, vagy módosítani kíván-e néhány beállítást (k, method, seed, …) vagy akár az adatokat (a kiválasztott dokumentumok vagy tokenek módosítása) jobb eredmény.

Ismétlések a nyertes témamodell felé

Korábban azt mondtuk: topic modeling az – akárcsak a klaszterelemzés és más felügyelet nélküli gépi tanulási technikák – több művészet, mint tudomány! Ezért valószínűleg elég sok időt fog tölteni a témamodell módosításával, mielőtt a “legjobb” témamodellhez jutna. Idézzük a “legjobb” -t idézőjelekbe, mert ami a “legjobb”, nagyban függ mind a témamodellre gondolt alkalmazásoktól, mind a kreativitástól! Tehát ez elég szubjektív! A „legjobb” témamodell megtalálásának során valószínűleg van néhány olyan pillanata, amelyről azt gondolja, hogy nem nyert semmilyen alkalmazható megoldást, és más pillanatok, amelyeken átélheti azt az extázist, hogy látja ezeket a belső témákat, amelyek átélik a témát. zsetonok, amelyek uralják azt.Az optimális témamodell megrajzolásához itt a legfontosabb eszközök:

  • k – a témák száma
  • kizárja az extra túl domináns (gyakori) tokenek (ezek még mindig legyen túl domináns, és ne nyomja le az érdekesebb aldomaineket a szövegben)
  • növelje a minimális token gyakoriságot összpontosítson a dominánsabb tokenekre
  • mintadokumentumok , hogy a legfontosabb témákra összpontosítson a fontos témák megtalálásához , megváltoztathatnánk a mintavételi stratégiát

Ezen paramétereken kívül van néhány LDA paramétere is, amelyet változtathat, de tapasztalataink szerint a fenti paraméterek a legfontosabbak, amelyekkel kezdeni kell. Míg a k növelése vagy csökkentése csak azt jelenti, hogy újra kell becsülnie az LDA-t, a vélemények mintavételének megváltoztatása vagy a tokenek figyelembe vétele azt jelenti, hogy újból létre kell hoznia a DTM-t.

Mit tettünk? Sok verejtékezés, néhány átkozódás és sok megoldás feltárása után a következőket tettük:

  • k-t 7 témára változtattam.
  • Egyesítettünk zsetonokat, és kizártunk néhány túl gyakori tokenek
  • Fedezzen fel több alaperedményt (nstart és best=FALSE segítségével), hogy megtalálja a legjobban értelmezhető témamodellt **
  • Végül válassza ki a legjobb magot, és állítsa be a best=TRUE beállítást, hogy csak a legjobb LDA modell maradjon.

** A függvény lehetővé teszi több futtatás elvégzését azáltal, hogy megadja a nstart paramétert a futtatások számának beállításához, és a seed beállítást a magokat ezeknek a futásoknak az irányítására. A best=TRUE beállításakor csak a legjobb naplózási valószínűséggel rendelkező megoldás marad meg, best=FALSE értékre állítva lehetővé teszi az összes témamodell felfedezését (a A visszatérő objektum most az összes témaminta felsorolása).

Az eredmények ismétlésével és összehasonlításával 7 olyan témát kaptunk, amelyet szépen felcímkézhetnénk azoknak a tantárgyaknak a neveivel, amelyekről a bírálók beszélnek az éttermek áttekintésekor. Íme a megoldás a már hozzáadott címkékkel ellátott témákra:

DTM dimensions: 
Documents (10152) x Tokens (12496) (average token frequency: 416.26)

Az interaktív LDAvis felfedezéséhez látogasson el a következőre: ez a html fájl .

Bár egyes témák még mindig keverékei a dolgoknak, örömmel használjuk ezt a megoldást a Michelin-csillagok előrejelzésében. Néhány egyértelmű különbséget látunk az azonosított témák között, és arra számítunk, hogy az egyes áttekintések nyers szövegének e témák valószínűségének vektorává történő lefordítása segít a Michelin-csillagok előrejelzésében. Íme egy áttekintés a témákról az általunk megadott címkékkel és a leggyakoribb tokenjeikkel:

Témamodellezés – csomagolás

Ebben cikkben bemutattuk, hogyan készíthet egy topikmodellt, hogy azonosítsa a látens konstrukciókat vagy az „áttekintő témákat”, amelyekről az éttermi beszámolókban beszélnek. Mint látta, a végső „legjobb” témamodell megalkotása előtt meglehetősen sok választási lehetőséget kell meghozni, és ezek közül néhányat nem könnyű meghozni, mivel az irányadó statisztikák nem mindig állnak rendelkezésre. Emlékezzen arra, amit korábban kijelentettünk: A témamodellezés felügyelet nélküli technika, és ettől „inkább művészet az a tudomány”. Ami sok felhasználási eset szempontjából fontos, hogy végül olyan témákhoz kerüljön, amelyeket képesek értelmezni és megmagyarázni, mivel képesnek kell lennie az itt felépített funkciók értelmezésére, miközben azokat a downstream feladatokban használja. Hét témájú modellünkkel bízunk benne, hogy megtehetjük!

Előnyök

A témamodellezésben – és főleg az LDA-ban – remek dolog az, hogy amikor minden csípés és küzdelem kész, akkor valószínűleg kezelhető számú, jól értelmezhető témához jut. Ez lehetővé teszi, hogy az egyes dokumentumokhoz megossza a témák közötti elosztást. Mivel a téma valószínûsége 1-nek felel meg, és numerikus érték, ezért a strukturálatlan, különbözõ hosszúságú szövegeket néhány új, könnyen feldolgozható szolgáltatásba foglalta össze. Olyan funkciók, amelyek nagy jelentőséggel bírhatnak a downstream feladatokban, például a prediktív modellezés vagy a szegmentálási feladatok.

Hátrányok

A témamodellezés legnagyobb hátránya valószínűleg a „legjobb” modell megtalálásának szubjektivitása. . Ezért meglehetősen sok időbe és erőfeszítésbe kerülhet egy megfelelő témamodell-megoldás kidolgozása. Lehet, hogy több statisztikailag egyenértékű megoldás létezik, amelyek jelentősen eltérhetnek az eredményül kapott témákban.Ezért amikor kissé eltérő adatokkal vagy beállításokkal futtatja újra az elemzést, mindig fennáll annak az esélye, hogy a modell értelmezése drámai módon megváltozik. Különösen akkor, ha a szöveges adatokban nincs domináns témakör-megoldás, minden egyes futtatás eltérő eredményeket hozhat. Győződjön meg róla, hogy nyomon követi a korábbi futtatásokat, rögzítve a felhasznált magokat és az adatkészleteket, így nem fogja tapasztalni a frusztrációt egy gyönyörű témamodell-megoldás megtalálásában, amelyet szépen értelmezhet az en description-ben, majd elveszítheti, hogy soha többé ne állítsa vissza.

Várakozás

Korábban meghatároztuk célunkat: Megjósolni, hogy mely éttermeknek van Michelin-csillaguk. Az egyik (következő blogunkban) ezért az áttekintő szövegekben a témák közötti elosztást használjuk annak megjóslására, hogy a felülvizsgálat Michelin-értékelés vagy sem. Ezeket az előrejelzéseket összesítjük az összes véleményen, amelyet egy étteremnek értékelnie kellett, hogy mennyire vagyunk képesek megjósolni a Michelin-csillagokat. Ettől eltekintve (más technikákkal) (word2vec, GloVe, BERT) fogjuk összefoglalni az áttekintő szövegeket olyan funkciókba, amelyekkel a Michelin-csillagokat megjósolhatjuk, és megmutatjuk, hogy melyik megközelítés működik a legjobban. Először a szó beágyazási technikáinak (word2vec, GloVe) bemutatásával kezdjük a következő blogunkban, és megmutatjuk, hogyan alakíthatjuk áttekintő szövegeinket beágyazásokká, és hogyan értelmezhetjük és vizualizálhatjuk ezeket.

Ez a cikk a NLP R sorozattal. A sorozat összes cikkének áttekintése megtalálható (itt található).

  • A sorozat előző része: (Adat-előkészítés a természetes nyelv feldolgozásához)
  • A következő a sorozatban : (Képzési szó beágyazási modellje és eredmények megjelenítése)

Ön is meg akarja csinálni? Töltse le bátran a Databricks Jegyzetfüzetet vagy az R-szkriptet a gitlab oldalról.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük