Čo je extrakcia kľúčových slov?
Extrakcia kľúčových slov automaticky extrahuje najpoužívanejšie a najdôležitejšie slová a výrazy z textu pomocou techniky analýzy textu. Pomáha zhrnúť obsah textov a rozpoznať hlavné diskutované témy, čo je užitočné pri prieskume trhu , analýze nálad a iných typoch analýzy údajov. Táto technika využíva vkladanie viet a dokáže analyzovať veľké súbory údajov v reálnom čase.
Strojové učenie umelej inteligencie (AI) so spracovaním prirodzeného jazyka (NLP) (oblasť počítačových vied) rozkladá ľudský jazyk tak, aby ho stroje mohli pochopiť a analyzovať. Extrakcia kľúčových slov automatizuje pracovné postupy, ako je označovanie prichádzajúcich odpovedí na prieskumy alebo odpovedanie na naliehavé otázky zákazníkov. Táto technika využíva jazykové a sémantické informácie o textoch a slovách, ktoré obsahujú. Existujú rôzne algoritmy a techniky strojového učenia na extrakciu najrelevantnejších kľúčových slov v texte.
Prečo je extrakcia kľúčových slov dôležitá?
Extrakcia kľúčových slov a kľúčových fráz je dôležitá z niekoľkých dôvodov:
- Optimalizácia pre vyhľadávače (SEO ): Extrakcia kľúčových slov pomáha identifikovať najdôležitejšie slová a frázy v dokumente, ktoré možno použiť na optimalizáciu obsahu webovej stránky pre vyhľadávače.
- Sumarizácia textu: Extrakcia kľúčových slov sa môže použiť na zhrnutie dokumentu identifikovaním najdôležitejších slov a fráz, ktoré predstavujú hlavnú tému textu.
- Klasifikácia textu: Extrakcia kľúčových slov sa môže použiť na klasifikáciu textových dokumentov do rôznych kategórií na základe kľúčových slov, ktoré obsahujú. To je užitočné v aplikáciách, ako je napríklad analýza nálad.
- Vyhľadávanie informácií: Extrakcia kľúčových slov sa môže použiť na zlepšenie presnosti systémov vyhľadávania informácií identifikáciou relevantných kľúčových slov, ktoré zodpovedajú vyhľadávacej požiadavke používateľa.
Ako vykonať extrakciu kľúčových slov v jazyku R?
Tu sú uvedené niektoré techniky extrakcie kľúčových slov a prípady ich použitia:
- Vyhľadávanie kľúčových slov pomocou označovania častí reči s cieľom identifikovať podstatné mená
- Vyhľadávanie kľúčových slov na základe kolokácií a výskytov
- Vyhľadávanie kľúčových slov na základe algoritmu Textrank
- Vyhľadávanie kľúčových slov na základe RAKE (rýchla automatická extrakcia kľúčových slov)
- Vyhľadanie kľúčových slov na základe výsledkov analýzy závislostí (získanie predmetu textu)
Extrahovanie podstatných mien
Jednoduchým spôsobom, ako nájsť kľúčové slová, je pozrieť sa na podstatné mená. Ak ste text anotovali pomocou balíka udpipe, každý výraz má značku Parts of Speech:
Kód:
stats <- subset(x, upos %in% "NOUN")
stats <- txt_freq(x = stats$lemma)
library(lattice)
stats$key <- factor(stats$key, levels = rev(stats$key))
barchart(key ~ freq, data = head(stats, 30), col = "cadetblue", main = "Most occurring nouns", xlab = "Freq")
Kolokácie a spoločné výskyty
Viacslovné vyjadrenie získate tak, že sa pozriete buď na kolokácie (slová nasledujúce po sebe), na spoločné výskyty slov v rámci každej vety, alebo na spoločné výskyty slov, ktoré sa nachádzajú v tesnom susedstve.
Kód:
Collocation (words following one another)
stats <- keywords_collocation(x = x,
term = "token", group = c("doc_id", "paragraph_id", "sentence_id"),
ngram_max = 4)
Co-occurrences: How frequent do words occur in the same sentence, in this case only nouns or adjectives
stats <- cooccurrence(x = subset(x, upos %in% c("NOUN", "ADJ")),
term = "lemma", group = c("doc_id", "paragraph_id", "sentence_id"))
## Co-occurrences: How frequent do words follow one another
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"))
## Co-occurrences: How frequent do words follow one another even if we would skip 2 words in between
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"), skipgram = 2)
Textrank (sieť slov zoradená podľa Google Pagerank)
Textrank je ďalšia metóda extrakcie kľúčových slov. Balík textrank R implementuje algoritmus Textrank. Algoritmus Textrank umožňuje sumarizáciu textu a extrakciu kľúčových slov. Pri vytváraní siete slov algoritmus kontroluje, či slová nasledujú za sebou. Algoritmus „Google Pagerank“ extrahuje relevantné slová. Relevantné slová, ktoré nasledujú za sebou, sa spájajú do kľúčových slov. TextRank nevychádza z pôvodného textu, pretože ide o prístup založený na grafoch.
Kód:
stats <- textrank_keywords(x$lemma, relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 8, sep = " ")
stats <- subset(stats$keywords, ngram > 1 & freq >= 5) library(wordcloud) wordcloud(words = stats$keyword, freq = stats$freq)
Rýchla automatická extrakcia kľúčových slov: RAKE
RAKE je ďalší základný algoritmus, ktorý je skratkou pre Rapid Automatic Keyword Extraction (rýchla automatická extrakcia kľúčových slov). RAKE je doménovo nezávislý algoritmus na extrakciu kľúčových slov pri spracovaní prirodzeného jazyka.
-
Výpočet skóre pre každé slovo, ktoré je súčasťou niektorého z kandidátskych kľúčových slov, sa vykonáva
- medzi slovami kandidátskych kľúčových slov sa algoritmus pozerá na to, koľkokrát sa jednotlivé slová vyskytujú a koľkokrát sa vyskytujú spoločne s inými slovami
- každé slovo dostane skóre, ktoré je pomerom stupňa slova (koľkokrát sa vyskytuje spolu s inými slovami) k frekvencii slova
- Skóre RAKE pre celé kandidátske kľúčové slovo sa vypočíta súčtom skóre jednotlivých slov, ktoré definujú kandidátske kľúčové slovo
Kód:
stats <- keywords_rake(x = x, term = "token", group = c("doc_id", "paragraph_id", "sentence_id"), relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 4)
head(subset(stats, freq > 3))
Pomocou výstupu rozboru závislostí získate menný predmet a jeho prídavné meno
Keď ste anotáciu vykonali pomocou udpipe, pole dep_rel označuje, ako sú slová navzájom prepojené. Token je prepojený s nadradeným tokenom pomocou token_id a head_token_id . Pole dep_rel označuje, ako sa slová navzájom spájajú. Typ vzťahov je na stránke http://universaldependencies.org/u/dep/index.html.
Kód:
stats <- merge(x, x, by.x = c("doc_id", "paragraph_id", "sentence_id", "head_token_id"), by.y = c("doc_id", "paragraph_id", "sentence_id", "token_id"), all.x = TRUE, all.y = FALSE, suffixes = c("", "_parent"), sort = FALSE)
stats <- subset(stats, dep_rel %in% "nsubj" & upos %in% c("NOUN") & upos_parent %in% c("ADJ"))
stats$term <- paste(stats$lemma_parent, stats$lemma, sep = " ")
stats <- txt_freq(stats$term)
library(wordcloud)
wordcloud(words = stats$key, freq = stats$freq, min.freq = 3, max.words = 100, random.order = FALSE, colors = brewer.pal(6, "Dark2"))
Čo je to Text-Mining?
Text mining v jazyku R sa vzťahuje na proces analýzy a získavania poznatkov z textových údajov pomocou programovacieho jazyka R a súvisiacich knižníc a balíkov. Dolovanie textu zahŕňa niekoľko krokov vrátane čistenia a predbežného spracovania údajov, extrakcie príznakov, štatistického modelovania a vizualizácie.
Balík
tm
poskytuje funkcie na čítanie textových údajov, čistenie a predbežné spracovanie údajov a vytváranie matíc dokumentov a termínov, ktoré sa bežne používajú na analýzu textových údajov. Balík
tidytext
poskytuje nástroje na konverziu textových údajov do prehľadných dátových rámcov.
Medzi bežné úlohy v oblasti dolovania textu patrí analýza nálad, modelovanie tém, zhlukovanie dokumentov a klasifikácia textu. Tieto úlohy zahŕňajú použitie štatistických techník a techník strojového učenia na identifikáciu vzorov a vzťahov v textových údajoch.
Rozhrania API na extrakciu kľúčových slov sú softvérové rozhrania, ktoré umožňujú vývojárom extrahovať kľúčové slová a kľúčové frázy z textu pomocou vopred vytvorených algoritmov a modelov strojového učenia. Tieto rozhrania API poskytujú ľahko použiteľné a škálovateľné riešenie na automatizáciu procesu extrakcie kľúčových slov bez toho, aby vývojári museli vytvárať a trénovať vlastné modely.
R je otvorený programovací jazyk a softvérové prostredie na štatistické výpočty, analýzu údajov a grafiku. R sa vo veľkej miere používa na akademickej pôde, vo výskume a v priemysle na úlohy, ako je štatistické modelovanie, vizualizácia dát, strojové učenie a dolovanie dát. Má rozhrania s inými programovacími jazykmi, ako sú Python a C++ . Podrobnejšie informácie nájdete v online tutoriáloch na GitHub.