NLP s R část 1: Modelování témat do identifikujte témata v recenzích restaurací

(Jurriaan Nagelkerke) ( 13. listopadu 2020)

Tento příběh napsali a . Je součástí naší NLP s R série ( Zpracování přirozeného jazyka pro prediktivní účely s R ) , kde používáme modelování témat, vkládání slov, transformátory a BERT.

V pořadí článků porovnáváme různé techniky NLP, abychom vám ukázali, jak získáváme cenné informace z nestrukturovaného textu. Asi před rokem jsme shromáždili recenze o nizozemských restauracích. Zajímalo nás, zda „moudrost davu“ – recenze návštěvníků restaurací – lze použít k předpovědi, které restaurace s největší pravděpodobností obdrží novou michelinskou hvězdu. Přečtěte si tento příspěvek a podívejte se, jak to fungovalo. Jako náš primární nástroj k extrakci informací z textů recenzí jsme použili topic modeling a kombinovali jsme to s technikami prediktivního modelování, abychom skončili s našimi předpovědi.

Získali jsme hodně pozornosti s našimi předpovědi a také otázkami o tom, jak jsme provedli část analýzy textu. Abychom odpověděli na tyto otázky, vysvětlíme náš přístup podrobněji v následujících článcích. Po naší publikaci jsme ale nepřestali zkoumat techniky NLP a rádi bychom se také podělili o postřehy z přidání dalších nových technik NLP. Konkrétněji použijeme dva typy vkládání slov – klasický model Word2Vec a model pro vkládání GLoVe – použijeme přenosové učení s předcvičeným vkládáním slov a použijeme BERT . Porovnáváme přidanou hodnotu těchto pokročilých technik NLP s naším základním tematickým modelem na stejné datové sadě. Tím, že ukážeme, co jsme udělali a jak jsme to udělali, doufáme, že pomůžeme ostatním, kteří mají zájem používat textová data pro vlastní úsilí v oblasti vědy o datech.

V (předchozím článku) jsme ukázali, jak jsme připravil naše data pro použití pro různé techniky NLP. Zde zahájíme sérii článků o technikách NLP zavedením Modelování témat a ukážeme vám, jak identifikovat témata, vizualizovat tematický model Výsledek. V (pozdějším článku) si ukážeme, jak použít výsledky modelu tématu v prediktivním modelu.

Co je modelování témat?

Chcete-li objevit témata, která recenzenti restaurací, o kterých píšou ve svých recenzích restaurací, používáme Topic Modeling. Ale co je to Topic Model? Ve strojovém učení a zpracování přirozeného jazyka je tematický model typem statistického modelu, který lze použít k objevování abstraktních témat , která se vyskytují ve sbírce dokumentů. Existuje řada algoritmů pro extrahování témat ze sbírky textů, ale Latentní Dirichletovo přidělení je jedním z nejpopulárnějších algoritmů, protože je efektivní vysoce interpretovatelná témata. Interpretovatelnost témat je důležitým rysem tematického modelu, protože nechceme jen najít statisticky relevantní seskupení slov, chceme také mít možnost označit identifikovaná témata názvem tématu, ke kterému se mohou ostatní vztahovat. Modelování témat má určité podobnosti s klastrovacími technikami, jako je KMeans, kde je interpretace stejně důležitá jako statistické metriky při určování toho, co je „dobré“ řešení. Jak funguje modelování témat / LDA, zobrazuje Blei jako:

Jak ukazuje obrázek:

  • Každý topic je distribuce přes slova
  • každý dokument je distribuce do témat

Takže po dokončení modelování témat naše recenze:

  • měli bychom vědět, že jsou témata nebo předměty, o kterých recenzenti píší jejich recenze restaurací,
  • víme, jaké tokeny nebo slova jsou v těchto tématech nejdůležitější, a
  • můžeme pro každou jednotlivou recenzi říci, do jaké míry jde o identifikovaná témata a toto může být mix – 80\% o tématu X a 20\% o tématu Y .

Krok 0: Nastavení našeho kontextu

Nejprve , jsme nastavili prostředí našeho sešitu s požadovanými balíčky k provádění modelování témat.

V našem (blogu o přípravě textových dat) jsme již krátce představili tidyverse a tidytext.Zde přidáme do seznamu několik dalších balíčků:

  • topicmodels je balíček pro odhad tematických modelů pomocí LDA a sestavení na datové struktury vytvořené pomocí balíčku tm
  • tm je výkonný, obecný balíček se všemi druhy funkcí dolování textu, mezi nimiž je vytváření dokumentů matice termínů, které pro modelování témat potřebujeme
  • ldavis je skvělý balíček pro vizualizaci a interpretaci tematického modelu a velmi užitečné při označování topic

Krok 1. Načíst předzpracovaná data

Před ponoříme se do analytické stránky věci, potřebujeme připravená textová data. Jak vědí všichni opravdoví vědci v oblasti dat, správná příprava dat vám zabere většinu času a je rozhodující pro kvalitu výsledků analýzy, které nakonec získáte. Příprava textových dat je další šálek čaje ve srovnání s přípravou strukturovaných číselných nebo kategorických dat. V tomto blogu se zaměřujeme na textovou analýzu. Přesto vám chceme ukázat, jak jsme údaje, které jsme shromáždili, vyčistili a připravili. V tomto (předchozím blogu) podrobně vysvětlíme, jak jsme předzpracovali data, což vedlo k následujícím 5 souborům, které můžeme použít v naší analýze NLP:

  • reviews.csv: soubor CSV s původními a připravenými texty recenzí – palivo pro naše analýzy NLP. (zahrnutý klíč: restoreviewid, tedy jedinečný identifikátor pro kontrolu)
  • labels.csv : a soubor csv s hodnotami 1/0, který označuje, zda je recenze recenzí pro restauraci Michelin nebo ne (zahrnutý klíč: restoreviewid)
  • restoid.csv : soubor CSV s ID restaurace, aby bylo možné určit, které recenze patří ke které restauraci (zahrnutý klíč: restoreviewid)
  • trainids.csv : soubor CSV s hodnotami 1/0, který označuje, zda má být recenze použito pro školení nebo testování – recenze jsme již rozdělili ve vlaku / test umožňující opětovné použití stejných vzorků pro spravedlivé srovnání mezi technikami (zahrnutý klíč: restoreviewid)
  • features.csv : soubor csv s dalšími funkcemi týkajícími se recenzí (zahrnutý klíč: restoreviewid)

Tyto soubory s th Vyčištěná a relevantní data pro techniky NLP jsou vám k dispozici prostřednictvím veřejného úložiště objektů blob, takže můžete spustit celý kód, který vám sami představíme, a uvidíte, jak věci fungují podrobněji. Pro náš tematický model potřebujeme tři z těchto souborů:

Krok 2: Příprava dat pro téma modelování

Počínaje od vyčištěných textů recenzí musíme udělat několik věcí, než můžeme odhadnout naše tematické modely:

  1. Tokenizovat náš připravený text (včetně bigramů)
  2. Ukázky recenzí pro školení našeho tematického modelu
  3. Filtrování relevantních tokenů
  4. Vytvoření matice termínů dokumentu

2.1. Tokenizujte náš připravený text (včetně bigramů)

Latentní Dirichlet Allocation (LDA), technika, kterou používáme pro modelování témat, je technika „pytle slov“. To znamená, že technika NLP při analýze textu nevypadá na pořadí tokenů. Tudíž, kde se token nachází v textu a jaké další tokeny jsou blízké tokenu (předcházející / následující tokeny) v dokumentu se neuvažuje. Je to, jako by všechny tokeny z textu dokumentu byly hozeny do tašky a míchány, ale zachovaly by se informace, že tokeny jsou ve stejném dokumentu. Ve výsledku bychom mohli přijít o důležité informace, pokud je v textu přítomno mnoho zajímavých kolokací – časté kombinace tokenů. Populární příklady jsou jména lidí („Donald Trump“, „Jonnie Boer“) nebo míst („USA“, „Den Haag“), ale do našeho tematického modelu může být důležité zahrnout také kontextově specifické kombinace slov: „witte wijn ( bílé víno ), rode wijn , ( červené víno ), gaan eten ( go eat ). Abychom nezmeškali tato důležitá spojení, přidáme připravené bigrams , které jsou obsaženy v našem textu. Pamatujte, že jsme již v našem dataprepu odstranili stopwords a vzájemnou funkci.

Po přidání bigramů k načteným, vyčištěným textům jsme texty znovu rozdělili, abychom skončili datovým rámcem, kde každý řádek je kombinací recenze a tokenu. Filtrujeme příliš krátké recenze (5 tokenů) po odebrání zastavovacích slov. V tomto formátu jsme připraveni na naše poslední přípravy, než začneme modelovat témata.

2.2 Ukázkové recenze pro trénink našeho tematického modelu

V našem dalším kroku budeme filtrovat nejrelevantnější tokeny, které budou zahrnuty do matice termínů dokumentu a následně do modelování témat.Nejprve však musíme určit, které dokumenty (recenze) jsou pro nás nejdůležitější. Z některých důvodů nechceme použít všechny recenze jako vstup pro náš tematický model:

  • Nakonec chceme použít témata v predikčním modelu k předpovídat michelinské hvězdy. Osvědčeným postupem je vyčlenit testovací sadu, než sestavíme tematický model a použijeme jeho výsledky v následném prediktivním úkolu. Tímto způsobem stavíme jak náš tematický model, tak naši predikci na datech vlaků a necháme testovací data neviditelná až do vyhodnocení.
  • Jak je uvedeno níže, ne více než 3\% všech recenzí jsou recenze Michelin. Zvýšením podílu recenzí Michelin ve vlakové soupravě, kterou používáme pro modelování témat, je pravděpodobnější, že budou identifikována konkrétní témata, která jsou diskutována v recenzích Michelin.

Z těchto důvodů jsme zaměří zbytek přípravy na náš tematický model a odhad tematických modelů na podmnožinu recenzí. Tato podmnožina obsahuje pouze recenze, které jsou již v našem notebooku pro přípravu dat specifikovány jako tréninkové případy. V rámci této podmnožiny bereme všechny recenze Michelin (přibližně 3 000) a doplňujeme je s recenzemi jiných než Michelin, abychom nakonec získali přibližně 10 000 recenzí:

# 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 Filtrační tokeny

Nyní, když jsme do tokenů přidali bigramy a znovu jsme tokenizovali naše texty, máme pro náš tematický model stále k dispozici mnoho, mnoho jedinečných tokenů . Osvědčeným postupem je zbavit se dlouhých chvil zřídka. Nejprve se podívejme, jak vypadá rozdělení frekvence tokenů. Nezapomeňte, že v našem (blogu o přípravě dat) jsme již z textů odstranili všechna stop slova, včetně 128 vlastních vysokofrekvenčních „stop“ slov, která jsme zadali při pohledu na tokenovou frekvenci při přípravě dat.

Výkres výše jasně ukazuje, že obrovské množství jedinečných tokenů se vyskytuje zřídka ve všech recenzích, 75\% se vyskytuje pouze jednou.

Zaměřte se na tokeny, které se vyskytují 5krát nebo více ve vlaku Corpus

Jak vidíme z počtu frekvencí tokenů, existuje spousta tokenů, které se vyskytují pouze jednou nebo několikrát: Přibližně 92\% všech jedinečných tokenů se vyskytuje méně než 5krát korpus recenzí. Tyto nízkofrekvenční tokeny ovlivňují analýzu tematického modelu. Abychom se zaměřili na často používané tokeny, vybereme tokeny, které se v připravených datech vlaku vyskytují 5krát nebo více. Doufejme, že to bude dost na to, abyste se naučili témata z tokenů, které se vyskytují společně ve stejných recenzích. Při optimalizaci našeho tematického modelu můžeme měnit minimální frekvenci pro vyhodnocení dopadu na výsledky.

Proč ne TF-IDF?

Po přečtení některých textových analytických nástrojů by vás mohlo zajímat: Proč nepoužíváme TF-IDF k výběru nejrelevantnějších tokenů? TF-IDF znamená Term Frequency – Inverse Document Frequency. Tato metrika kombinuje termínovou frekvenci – jak často je token v dokumentu? – s inverzní frekvencí dokumentu – v kolika jedinečných dokumentech je tento termín přítomen? Ačkoli je TF-IDF často dobrou volbou pro výběr nejrelevantnějších tokenů, není to v našem kontextu, kde je omezená velikost dokumentu a nízký výskyt stejného tokenu ve stejném textu. Token má často frekvenci termínů vyšší než 1. Výsledkem je, že rozhodující je pouze část Frekvence inverzních dokumentů, což zvýhodňuje tokeny, které se vyskytují pouze v jedné nebo dvou recenzích. Z tohoto důvodu zde nepoužíváme TF-IDF, ale podíváme se na celkovou frekvenci výběru relevantních tokenů pro modelování témat. Také proto, že jsme již z našeho textu odstranili vlastní seznam stop slov, proto jsou již odstraněny příliš časté tokeny.

Filtrováním řídkých tokenů jsme snížili počet tokenů, které je třeba vzít v úvahu v našem LDA se dramaticky zaměřujeme na 12K (8\%) nejčastějších žetonů a odstraňujeme 146K (92\%) žetony, které jsou v korpusu příliš neobvyklé. Tyto vybrané tokeny přesto představují 73\% všech tokenů v dokumentech:

# 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 Vytvořit DTM

Po filtrování tokenů, které chceme použít k sestavení našeho tematického modelu, můžeme vytvořit vstup pro LDA. To vyžaduje document-term-matrix nebo DTM tedy matici s v řádcích všechny naše dokumenty (recenze) a ve sloupcích všechny výrazy ( příslušné žetony). Upozorňujeme, že pro parametr value používáme celkovou frekvenci tokenů .Můžete očekávat frekvenci konkrétních termínů dokumentu zde, ale používáme celkovou frekvenci tokenů, abychom při hledání tematického modelu kládli mnohem větší důraz na termíny, které jsou obecně častější; vzhledem k krátké délce recenzí (ve srovnání s knihami nebo články, které se často používají při modelování témat) je pravděpodobnost, že se v recenzi vyskytne jeden token častěji, omezená.

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

Krok 3: Vytvoření tematického modelu

Nyní máme DTM, jsme připraveni zahájit modelování témat! Doposud jsme již provedli docela dost možností s dopadem na náš výsledek analýzy: jakou minimální délku kontroly použít, jaká stop slova vyloučit, co n -gramy, které je třeba zahrnout, minimální frekvence tokenů pro použití tokenů … A je třeba učinit ještě několik možností.

LDA má řadu parametrů, které ovlivňují výsledek, z nichž nejdůležitější jsou:

  • k : Počet témat! Ano, toto je parametr, nikoli Výsledek. Podobně jako u technik klastrování, jako je KMeans, musíte říct, kolik klastrů / témat chcete identifikovat ify.
  • metoda : Balíček topicmodels umožňuje různé optimalizační metody, VEM algorithm nebo Gibbs sampling, výchozí je VEM.
  • ovládací prvek : seznam řídících proměnných pro vedení odhadu – relevantní parametry závisí na zvolené metodě VEM nebo Gibbs, ale nejdůležitější jsou:
  • nstart : Počet spuštění, která mají být provedena se stejným nastavením, ale s odlišnými semeny
  • seed : Pro reprodukovatelnost lze nastavit náhodné semeno. Pokud nstart> 1, musíte zadat více semen, 1 na nstart (např. C (123, 234 „, 345“))
  • best : Je-li TRUE (výchozí), je zachován pouze běh s nejvhodnějším výsledkem, ze sady, pokud je FALSE vrácen seznam všech běhů, takže můžete zkontrolovat všechny z nich.

Úplný přehled všech dostupných parametrů a nastavení najdete na vinětě balíčku topicmodels .

Odhad tematického modelu LDA

Nejúčinnějším parametrem je k : číslo témat k identifikaci. Jak vybrat hodnotu pro k? To je částečně výsledkem diskuse (jaký počet témat očekáváme v této souvislosti?) A chyby zkušební & (vyzkoušejte různé hodnoty k, vyhodnoťte výsledky). Některým vědcům v oblasti dat se to nemusí líbit, raději se dívají na statistiky, které je v tomto procesu povedou, ale pro ty, kteří jsou obeznámeni s jinými technikami datové vědy bez dozoru, jako je KMeans, to není tak nové. Shlukování a také modelování témat je do určité míry více uměním než vědou. Datový vědec, vedený statistickými technikami a opatřeními, vytváří řešení modelování témat, které odpovídá (obchodním) potřebám. Pokud potřebujete výchozí bod pro k se statistickým pozadím, můžete zkusit tento přístup nebo tento přístup.

Začněme s tématickým modelem, abychom identifikovali 3 témata a prozkoumali výsledek. V tuto chvíli nemáme žádný důvod měnit jakékoli další výchozí hodnoty.

Vyhodnotit tematický model

Tématický model je přizpůsoben, takže prozkoumejme!

Přizpůsobený objekt lda obsahuje řadu matic:

  • phi : matice s distribucí tokenů (v řádcích) podle témat (ve sloupcích)
  • theta : matice s distribucí dokumentů (tedy recenzí, v řádcích) přes témata (ve sloupcích)

Jak pro phi, tak pro theta, součet za všechny sloupce se rovná 1, což znamená:

  • U phi je součet všech skóre tokenů v rámci tématu 1 – vyšší skóre znamená vyšší důležitost tohoto tokenu v rámci tématu .
  • U theta je součet všech skóre témat v dokumentu 1 – vyšší skóre znamená, že téma je v tomto dokumentu přítomnější.

Chcete-li prozkoumat náš tematický model, začněme tím, že se podíváme na nejdůležitější tokeny pro každé téma. Abychom to mohli udělat, musíme určit, kdy je token pro téma důležitý. Mohli bychom tvrdit, že token je pro téma důležitý, pokud má vysokou pravděpodobnost, že se v rámci tématu p(token|topic) vyskytne. Podívejme se, jak to vypadá na náš tematický model se 3 tématy. Použijeme čistou funkci balíčku tidytext, která pomáhá připravit data tematického modelu k vizualizaci nejdůležitějších tokenů na téma: tidy().

Pomocí tohoto grafu získáme první dojem z toho, co představují témata v našem prvním tematickém modelu. Jak vidíme z grafu, při pohledu na pravděpodobnost tokenu na téma má nevýhodu, že tokeny, které mají vysokou celkovou frekvenci, mají vyšší pravděpodobnost, že se objeví v top 10 pro více témat. Například restaurace se zobrazuje v top 10 nejlepších témat. Pouze při pohledu na pravděpodobnosti celkového tématu můžete skrýt, že konkrétní poněkud méně časté tokeny velmi souvisejí s konkrétním tématem. Abychom to mohli analyzovat, můžeme nastavit frekvenci tokenů v tématu relativní k celkové frekvenci tokenu: p(token|topic)/p(token). To ukazuje, jaké tokeny jsou silně spojeny s tématem, nezávisle na frekvenci tokenů.

Pokud vezmeme (pouze), druhý přístup má svou vlastní nevýhodu, zvýrazníme důležité tokeny, které se nemusí vyskytovat tolik recenzí. Nejlepší přístup by mohl být někde uprostřed: Pro vyhodnocení tematického modelu je nejcennější mít možnost prozkoumat tematický model z obou perspektiv – absolutní pravděpodobnost termínu a relativní pravděpodobnost termínu – a možná i kombinace těchto dvou. Z tohoto důvodu je balíček LDAvis tak cenný, protože vám umožňuje přesně to! LDAvis potřebuje JSON obsahující informace o vašem tematickém modelu a slovní zásobě:

Postranní poznámka zde: balíček LDAvis R lze použít z R nebo RStudio, ale ne přímo z prostředí notebooku, jako je Jupyter nebo Databricks. Proto jsme k balíčku LDAvis použili port pyLDAvis, protože to usnadňuje zahrnutí skvělého nástroje LDAvis do notebooku. V některých prohlížečích však pyLDAvis nefunguje správně. Pokud k tomu dojde, přečtěte si níže uvedený příklad. Neváhejte stáhněte si tento notebook a vyzkoušejte LDAvis na vlastní oči.

Chcete-li spustit LDAvis lokálně s R nebo RStudio, můžete spustit serVis(json) . Chcete-li prozkoumat interaktivní LDAvis z obrazovky níže, podívejte se tento odkaz .

Levý graf ukazuje velikost Témata ( Kolik dokumentů je přiřazeno k tématu?) a také vzdálenost mezi tématy ( Jaká témata spolu více / méně souvisejí? ). Pravá strana zobrazuje důležité tokeny pro vybrané téma (nebo celkové nejdůležitější tokeny v modelu tématu, pokud není vybráno žádné téma). Pomocí posuvníku vpravo nahoře můžeme změnit lambda, kde lambda rozhoduje o tom, jak moc dáváme přednost pohledu na absolutní pravděpodobnost tokenu v rámci tématu (p(token|topic), lambda = 1) nebo preferovat relativní token pravděpodobnost v rámci tématu (p(token|topic)/p(token), lambda = 0). Hraní si s touto vizualizací je často nejlepší způsob, jak se seznámit s identifikovanými tématy. A – co je nejdůležitější – zjišťování správného štítku tématu pro každé z témat! To také velmi pomáhá při rozhodování, zda aktuální tematický model postačuje pro vaši následnou úlohu nebo zda chcete změnit některá nastavení (k, metoda, semeno, …) nebo dokonce data (změnit vybrané dokumenty nebo tokeny), abyste získali lepší výsledek.

Iterace směrem k vašemu vítěznému tematickému modelu

Řekli jsme to již dříve: topic modeling je – stejně jako klastrová analýza a jiné bez dozoru techniky strojového učení – více umění než věda! Pravděpodobně tedy strávíte nějaký čas vyladěním svého tematického modelu, než skončíte se svým „nejlepším“ tematickým modelem. Zde uvádíme „nejlepší“ v uvozovkách, protože to, co je „nejlepší“, do značné míry závisí jak na aplikacích, které máte na mysli u svého tematického modelu, tak na vaší kreativitě! To je tedy docela subjektivní! Během procesu hledání svého „nejlepšího“ modelu tématu pravděpodobně máte několik okamžiků, o kterých si myslíte, že jste nepřišli s žádným řešením, které můžete použít, a další okamžiky, ve kterých zažíváte extázi vidět, jak tato vnitřní témata prožívají žetony, které mu dominují.Při vytváření optimálního modelu tématu jsou zde vaše nejdůležitější nástroje:

  • změna k – počet témat
  • vyloučit extra příliš dominantní (časté) tokeny (tato možná stále být příliš dominantní a potlačit hledání zajímavějších subdomén ve vašem textu)
  • zvýšit minimální frekvenci tokenů na zaměřte se na dominantnější tokeny
  • ukázkové dokumenty zaměřte se na nejrelevantnější dokumenty a vyhledejte důležitá témata , mohli bychom změnit strategii vzorkování

Kromě těchto parametrů máte také některé parametry LDA, které můžete měnit, ale podle našich zkušeností jsou nejdůležitější parametry výše. Zatímco zvýšení nebo snížení hodnoty k znamená pouze to, že musíte přehodnotit LDA, změna vzorkování recenzí nebo tokenů, které je třeba vzít v úvahu, znamená, že musíte také znovu vytvořit DTM.

Co jsme udělali? Po spoustě potu, nadávání a zkoumání mnoha řešení jsme provedli následující:

  • změňte k na 7 témat.
  • Sloučit některé tokeny a vyloučit řadu příliš častých tokeny
  • Prozkoumejte více výsledků seedu (pomocí nstart a best=FALSE) a vyhledejte nejlépe interpretovatelný tematický model **
  • Nakonec vyberte nejlepší semeno a nastavte best=TRUE tak, aby byl zachován pouze nejlepší model LDA

** umožňuje provádět více běhů zadáním parametru nstart k nastavení počtu běhů as nastavením seed semena pro vedení těchto běhů. Při nastavování best=TRUE se zachová pouze řešení s nejlepší pravděpodobností protokolu, nastavení best=FALSE vám umožní prozkoumat všechny tematické modely ( vrácený objekt je nyní seznam všech tematických modelů).

Iterace a porovnání výsledků vedlo k 7 témat, která bychom mohli pěkně označit názvy témat subjektů, o kterých recenzenti mluví při kontrole restaurací. Zde je naše řešení témat, ke kterým jsou štítky již přidány:

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

Chcete-li prozkoumat interaktivní LDAvis z níže uvedeného obrazovky, přejděte na tento html soubor .

Ačkoli jsou některá témata stále směsicí věcí, jsme rádi, že toto řešení použijeme při předpovídání michelinských hvězd. Vidíme několik jasných rozdílů mezi identifikovanými tématy a očekáváme, že překlad surového textu každé recenze do vektoru pravděpodobností pro tato témata pomůže předpovědět michelinské hvězdy. Zde je přehled témat se štítky, které jim dáváme, a jejich nejčastější tokeny:

Modelování témat – shrnutí

V tomto článek, který jsme vám ukázali, jak můžete vytvořit topický model k identifikaci latentních konstruktů nebo „témat“, o kterých recenzenti hovoří v recenzích restaurací. Jak jste viděli, před vytvořením našeho konečného „nejlepšího“ tematického modelu je třeba udělat ještě několik možností a některé z těchto voleb není snadné provést, protože hlavní statistiky nejsou vždy k dispozici. Pamatujte si, co jsme uvedli dříve: Modelování témat je technika bez dozoru, díky níž je „více umění než věda“. Pro mnoho případů použití je důležité to, že skončíte s tématy, která dokážete interpretovat a vysvětlit, protože musíte být schopni interpretovat funkce, které jste zde vytvořili, při jejich použití v následných úkolech. S naším 7tématickým modelem se cítíme přesvědčeni, že to dokážeme!

Výhody

Skvělá věc v oblasti modelování témat – a zejména LDA – spočívá v tom, že když vše vyladění a boj hotovo, pravděpodobně skončíte se zvládnutelným počtem pěkně interpretovatelných témat. To vám umožní přidat pro každý dokument distribuci přes tato témata. Jelikož jsou pravděpodobnosti tématu součtem 1 a jsou to číselné hodnoty, nyní jste shrnuli nestrukturované texty různých délek do několika nových, snadno zpracovatelných funkcí. Funkce, které mohou mít velkou hodnotu v následných úkolech, jako jsou prediktivní modelování nebo segmentační úkoly.

Nevýhody

Největší nevýhodou modelování témat je s největší pravděpodobností subjektivita při hledání „nejlepšího“ modelu . Proto vám může trvat docela dost času a úsilí, než přijdete s vhodným řešením tematického modelu. Může existovat několik statisticky ekvivalentních řešení, která se mohou ve výsledných tématech podstatně lišit.Proto při opětovném spuštění analýzy s mírně odlišnými daty nebo nastaveními existuje vždy šance, že se interpretace modelu dramaticky změní. Zvláště když ve vašich textových datech není k dispozici žádné dominantní řešení tématu, každé spuštění může mít za následek jiné výsledky. Zajistěte si přehled o dřívějších bězích zabezpečením použitých semen a datových sad, abyste nezažili frustraci z hledání překrásného řešení tematického modelu, které můžete pěkně interpretovat a popsat, a poté jej ztratit, abyste jej už nikdy neobnovili.

Těšíme se

Dříve jsme stanovili náš cíl: Předpovědět, které restaurace mají michelinskou hvězdu. V jednom z našich (dalších blogů) proto používáme rozdělení podle témat v textech recenzí k předpovědi, zda je recenze Michelinovou recenzí nebo ne. Agregujeme také tyto předpovědi do všech recenzí, které musela restaurace vyhodnotit, do jaké míry dokážeme předpovědět michelinské hvězdy. Kromě toho použijeme (jiné techniky) (word2vec, GloVe, BERT) shrnout texty recenzí do funkcí, které můžeme použít k předpovědi hvězd Michelin, a ukážeme, jaký přístup funguje nejlépe. Začneme zavedením technik vkládání slov (word2vec, GloVe) v našem dalším blogu a ukážeme vám, jak transformovat naše texty recenzí do vložení a jak je interpretovat a vizualizovat.

Tento článek je součástí našeho NLP se sérií R . Přehled všech článků v této sérii najdete (zde).

  • Předchozí v této sérii: (Příprava dat pro zpracování přirozeného jazyka)
  • Další v této sérii : (Výcvikový model vkládání slov a vizualizace výsledků)

Chcete to udělat sami? Neváhejte si stáhnout Poznámkový blok Databricks nebo R-skript ze stránky gitlab .

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *