Kaip iš teksto išgauti raktinius žodžius naudojant R?

Vaizdas, iliustruojantis R sąsają su paryškinta kodo fragmentu, naudojamu raktiniams žodžiams iš teksto išgauti.
Vaizdas, iliustruojantis R sąsają su paryškinta kodo fragmentu, naudojamu raktiniams žodžiams iš teksto išgauti.

Eskritor 2023-07-06

Kas yra raktinių žodžių išskyrimas?

Raktinių žodžių išskyrimas automatiškai iš teksto ištraukia dažniausiai vartojamus ir svarbiausius žodžius ir posakius, naudodamas teksto analizės metodą. Ji padeda apibendrinti tekstų turinį ir atpažinti pagrindines aptariamas temas, o tai naudinga atliekant rinkos tyrimus, nuotaikų analizę ir kitų tipų duomenų analizę. Šis metodas naudoja sakinių įterpinius ir gali analizuoti didelius duomenų rinkinius realiuoju laiku.

Mašinų mokymasis dirbtinis intelektas (DI) su natūralios kalbos apdorojimu (NLP) (kompiuterijos mokslų sritis) išskaido žmogaus kalbą, kad mašinos galėtų ją suprasti ir analizuoti. Raktinių žodžių išskyrimas automatizuoja darbo eigą, pavyzdžiui, gaunamų apklausos atsakymų žymėjimą arba atsakymą į skubias klientų užklausas. Šis metodas naudoja lingvistinę ir semantinę informaciją apie tekstus ir juose esančius žodžius. Yra įvairių mašininio mokymosi algoritmų ir metodų, skirtų išrinkti svarbiausius raktinius žodžius tekste.

Kodėl svarbu išgauti raktinius žodžius?

Raktinių žodžių išskyrimas ir raktinių frazių išskyrimas yra svarbūs dėl kelių priežasčių:

  1. Optimizavimas paieškos sistemoms (SEO) : Raktinių žodžių išskyrimas padeda nustatyti svarbiausius dokumento žodžius ir frazes, kuriuos galima panaudoti optimizuojant svetainės turinį paieškos sistemoms.
  2. Teksto apibendrinimas: Teksto apibendrinimas: raktinių žodžių išskyrimas gali būti naudojamas dokumentui apibendrinti, nustatant svarbiausius žodžius ir frazes, atspindinčias pagrindinę teksto temą.
  3. Teksto klasifikacija: Raktinius žodžius galima naudoti teksto dokumentams klasifikuoti į skirtingas kategorijas pagal juose esančius raktinius žodžius. Tai naudinga tokiose programose kaip nuotaikų analizė.
  4. Informacijos paieška: Raktinių žodžių išskyrimas gali būti naudojamas siekiant pagerinti informacijos paieškos sistemų tikslumą, nustatant atitinkamus raktinius žodžius, kurie atitinka naudotojo paieškos užklausą.

Kaip atlikti raktinių žodžių išskyrimą R programoje?

Čia pateikiami keli raktažodžių išskyrimo būdai ir jų naudojimo atvejai:

  • Rasti raktinius žodžius atliekant kalbos dalių žymėjimą, kad būtų galima nustatyti daiktavardžius
  • Rasti raktinius žodžius pagal kolokacijas ir pasikartojimus
  • Rasti raktinius žodžius pagal „Textrank” algoritmą
  • Rasti raktinius žodžius pagal RAKE (greitas automatinis raktinių žodžių išskyrimas)
  • rasti raktinius žodžius pagal priklausomybės analizės rezultatus (teksto temos gavimas).
raktinių žodžių išskyrimas iš teksto

Daiktavardžių išskyrimas

Lengvas būdas rasti raktinius žodžius – žiūrėti į daiktavardžius. Kadangi kiekvienas terminas turi žymą „Kalbos dalys”, jei tekstą anotavote naudodami paketą udpipe:

Kodas:

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")

Kolokacijos ir bendri pasikartojimai

Daugiažodę išraišką gaukite pagal kolokacijas (vienas po kito einančius žodžius), žodžių bendrinius pasikartojimus kiekviename sakinyje arba žodžių, kurie yra arti vienas kito, bendrinius pasikartojimus.

Kodas:

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 (žodžių tinklas pagal „Google Pagerank”)

Textrank yra dar vienas raktažodžių išskyrimo metodas. Textrank R paketas įgyvendina Textrank algoritmą. „Textrank” algoritmas leidžia apibendrinti tekstą ir išskirti raktinius žodžius. Norint sudaryti žodžių tinklą, algoritmas patikrina, ar žodžiai eina vienas po kito. „Google Pagerank” algoritmas išskiria atitinkamus žodžius. Atitinkami žodžiai, einantys vienas po kito, sujungiami į raktinius žodžius. „TextRank” nesiremia originaliu tekstu, nes tai yra grafų metodas.

Kodas:

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)

Greitas automatinis raktinių žodžių išskyrimas: RAKE

RAKE yra kitas pagrindinis algoritmas, kuris yra greito automatinio raktinių žodžių išskyrimo akronimas. RAKE yra nuo srities nepriklausomas raktinių žodžių išskyrimo algoritmas natūralios kalbos apdorojimo srityje.

  1. Apskaičiuojant kiekvieno žodžio, kuris yra bet kurio kandidato raktažodžio dalis, balą
    • tarp kandidatų į raktažodžius žodžių algoritmas žiūri, kiek kartų pasitaiko kiekvienas žodis ir kiek kartų jis sutampa su kitais žodžiais.
    • kiekvienas žodis gauna balą, kuris yra žodžio laipsnio (kiek kartų jis pasitaiko kartu su kitais žodžiais) ir žodžio dažnio santykis.
  2. Viso kandidato raktažodžio RAKE balas apskaičiuojamas sumuojant visų žodžių, kurie apibrėžia kandidato raktažodį, balus.

Kodas:

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)) 

Naudokite priklausomybės analizės rezultatus, kad gautumėte vardinį dalyką ir jo būdvardį

Kai anotaciją atlikote naudodami udpipe, lauke dep_rel nurodoma, kaip žodžiai susiję vienas su kitu. Ženklas yra susietas su pagrindiniu ženklu naudojant token_id ir head_token_id . Lauke dep_rel nurodoma, kaip žodžiai susiję tarpusavyje. Santykių tipas yra http://universaldependencies.org/u/dep/index.html.

Kodas:

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"))

Kas yra teksto analizė?

Teksto gavyba R kalba – tai tekstinių duomenų analizės ir įžvalgų gavimo iš tekstinių duomenų procesas naudojant R programavimo kalbą ir susijusias bibliotekas bei paketus. Teksto gavyba apima keletą etapų, įskaitant duomenų valymą ir pirminį apdorojimą, požymių išskyrimą, statistinį modeliavimą ir vizualizavimą.
Pakete tm pateikiamos funkcijos, skirtos teksto duomenims nuskaityti, duomenims valyti ir iš anksto apdoroti bei dokumentų ir terminų matricoms, kurios dažniausiai naudojamos teksto duomenims analizuoti, kurti. Pakete tidytext pateikiami įrankiai, skirti tekstiniams duomenims paversti tvarkingais duomenų rėmeliais.
Kai kurios įprastos teksto gavybos užduotys apima nuotaikų analizę, temų modeliavimą, dokumentų grupavimą ir teksto klasifikavimą. Šios užduotys apima statistinių ir mašininio mokymosi metodų taikymą siekiant nustatyti tekstinių duomenų modelius ir ryšius.

Raktinių žodžių išskyrimo API – tai programinės įrangos sąsajos, leidžiančios kūrėjams iš teksto išgauti raktinius žodžius ir raktines frazes naudojant iš anksto sukurtus algoritmus ir mašininio mokymosi modelius. Šios API sąsajos suteikia lengvai naudojamą ir keičiamo mastelio sprendimą raktažodžių išskyrimo procesui automatizuoti, o kūrėjams nereikia kurti ir mokyti savo modelių.

R yra atvirojo kodo programavimo kalba ir programinės įrangos aplinka, skirta statistiniams skaičiavimams, duomenų analizei ir grafikai. Akademinėje, mokslinių tyrimų ir pramonės srityse R plačiai naudojama tokioms užduotims, kaip statistinis modeliavimas, duomenų vizualizavimas, mašininis mokymasis ir duomenų gavyba, atlikti. Ji turi sąsajų su kitomis programavimo kalbomis, pavyzdžiui, „Python” ir „C++” . Išsamesnės informacijos rasite „GitHub” internetiniuose vadovėliuose.

Bendrinti įrašą

AI Rašytojas

img

Eskritor

AI sugeneruoto turinio kūrimas