Hvordan trekke ut nøkkelord fra tekst i R?

Et bilde som illustrerer R-grensesnittet med en uthevet kodebit som brukes til nøkkelordekstraksjon fra tekst.
Et bilde som illustrerer R-grensesnittet med en uthevet kodebit som brukes til nøkkelordekstraksjon fra tekst.

Eskritor 2023-07-06

Hva er søkeordutvinning?

Nøkkelordekstraksjon trekker automatisk ut de mest brukte og viktigste ordene og uttrykkene fra en tekst, ved hjelp av en tekstanalyseteknikk. Det hjelper å oppsummere innholdet i tekster og gjenkjenne hovedemnene som diskuteres, noe som er nyttig for markedsundersøkelser , sentimentanalyse og andre typer dataanalyse. Denne teknikken utnytter setningsinnbygging og kan analysere store sett med data i sanntid.

Maskinlæring kunstig intelligens (AI) med naturlig språkbehandling (NLP) (et felt innen datavitenskap) bryter ned menneskelig språk slik at maskiner kan forstå og analysere det. Uttrekking av søkeord automatiserer arbeidsflyter som å merke innkommende undersøkelsessvar eller svare på presserende kundeforespørsler. Teknikken bruker språklig og semantisk informasjon om tekster og ordene de inneholder. Det finnes ulike maskinlæringsalgoritmer og teknikker for å trekke ut de mest relevante søkeordene i en tekst.

Hvorfor er nøkkelordutvinning viktig?

Uttrekk av søkeord og uttrekking av nøkkelfrase er viktig av flere grunner:

  1. Søkemotoroptimalisering (SEO) : Søkeordutvinning hjelper til med å identifisere de viktigste ordene og setningene i et dokument, som kan brukes til å optimalisere innholdet på nettstedet for søkemotorer.
  2. Tekstoppsummering: Nøkkelorduttrekk kan brukes til å oppsummere et dokument ved å identifisere de viktigste ordene og frasene som representerer hovedtemaet i teksten.
  3. Tekstklassifisering: Nøkkelorduttrekk kan brukes til å klassifisere tekstdokumenter i ulike kategorier basert på søkeordene de inneholder. Dette er nyttig i applikasjoner som sentimentanalyse.
  4. Informasjonsinnhenting: Nøkkelordutvinning kan brukes til å forbedre nøyaktigheten til informasjonsinnhentingssystemer ved å identifisere relevante nøkkelord som samsvarer med en brukers søk.

Hvordan lage søkeordekstraksjon i R?

Her er noen teknikker for uttrekking av søkeord og deres bruksområder:

  • Finn nøkkelord ved å merke orddeler for å identifisere substantiver
  • Finn nøkkelord basert på samlokaliseringer og samtidige forekomster
  • Finn søkeord basert på Textrank-algoritmen
  • Finn søkeord basert på RAKE (rask automatisk søkeordutvinning)
  • Finn søkeord basert på resultatene av avhengighetsanalyse (få tekstens emne)
trekke ut nøkkelord fra tekst

Trekke ut substantiv

En enkel måte å finne nøkkelord på er å se på substantiver. Siden hvert begrep har en orddelskode hvis du kommenterte tekst ved hjelp av udpipe-pakken:

Kode:

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

Samlokalisering og samtidige forekomster

Få flerordsuttrykk ved å se enten på kollokasjoner (ord som følger hverandre), på ordforekomster i hver setning, eller på ordsamforekomster av ord som er i nærheten av hverandre.

Kode:

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 (ordnettverk sortert etter Google Pagerank)

Textrank er en annen utvinningsmetode for søkeord. Textrank R-pakken implementerer Textrank-algoritmen. Textrank-algoritmen tillater tekstoppsummering og nøkkelordekstraksjon. For å konstruere et ordnettverk sjekker algoritmen om ord følger hverandre. ‘Google Pagerank’-algoritmen trekker ut relevante ord. Relevante ord som følger hverandre kombineres for å få søkeord. TextRank stammer ikke fra originalteksten, da det er en grafbasert tilnærming.

Kode:

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)

Rask automatisk uttrekking av søkeord: RAKE

RAKE er den neste grunnleggende algoritmen som er et akronym for Rapid Automatic Keyword Extraction. RAKE er en domeneuavhengig nøkkelordekstraksjonsalgoritme i Natural Language Processing.

  1. Beregning av poengsum for hvert ord som er en del av ethvert kandidatsøkeord, gjøres av
    • blant ordene til kandidatsøkeordene, ser algoritmen på hvor mange ganger hvert ord forekommer og hvor mange ganger det forekommer sammen med andre ord
    • hvert ord får en poengsum som er forholdet mellom ordet grad (hvor mange ganger det forekommer sammen med andre ord) og ordfrekvensen
  2. En RAKE-poengsum for hele kandidatsøkeordet beregnes ved å summere poengsummen til hvert av ordene som definerer kandidatsøkeordet

Kode:

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

Bruk avhengighetsanalyseutdata for å få det nominelle subjektet og adjektivet til det

Når du utførte merknaden ved hjelp av udpipe, indikerer dep_rel- feltet hvordan ord er relatert til hverandre. Et token er relatert til forelderen som bruker token_id og head_token_id . Dep_rel- feltet indikerer hvordan ord lenker til hverandre. Typen relasjoner er på http://universaldependencies.org/u/dep/index.html.

Kode:

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

Hva er Text-Mining?

Tekstutvinning i R refererer til prosessen med å analysere og trekke ut innsikt fra tekstdata ved å bruke R-programmeringsspråket og tilhørende biblioteker og pakker. Tekstutvinning involverer flere trinn, inkludert datarensing og forbehandling, funksjonsutvinning, statistisk modellering og visualisering.
De tm pakken inneholder funksjoner for å lese tekstdata, rense og forhåndsbehandle dataene og lage dokumenttermmatriser, som vanligvis brukes til å analysere tekstdata. De tidytext pakken gir verktøy for å konvertere tekstdata til ryddige datarammer.
Noen vanlige oppgaver innen tekstgruvedrift inkluderer sentimentanalyse, emnemodellering, dokumentgruppering og tekstklassifisering. Disse oppgavene innebærer å bruke statistiske og maskinlæringsteknikker for å identifisere mønstre og sammenhenger i tekstdata.

Nøkkelordekstraksjons-APIer er programvaregrensesnitt som lar utviklere trekke ut nøkkelord og nøkkelfraser fra tekst ved hjelp av forhåndsbygde algoritmer og maskinlæringsmodeller. Disse API-ene gir en brukervennlig og skalerbar løsning for å automatisere prosessen med nøkkelordutvinning, uten at utviklere trenger å bygge og trene sine egne modeller.

R er et åpen kildekode-programmeringsspråk og programvaremiljø for statistisk databehandling, dataanalyse og grafikk. Folk bruker R mye i akademia, forskning og industri for oppgaver som statistisk modellering, datavisualisering, maskinlæring og datautvinning. Den har grensesnitt med andre programmeringsspråk som Python og C++ . Finn mer detaljert informasjon med online veiledninger på GitHub.

Del innlegg

AI Skribent

img

Eskritor

Opprett AI generert innhold