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.

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.
Detm pakken inneholder funksjoner for å lese tekstdata, rense og forhåndsbehandle dataene og lage dokumenttermmatriser, som vanligvis brukes til å analysere tekstdata. Detidytext 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.

Hva er API-er for søkeordutvinning?

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.

Hva er R?

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.

ofte stilte spørsmål

Hva er CSV?

CSV står for «Comma-Separated Values». Det er et filformat som lagrer og utveksler data i et vanlig tekstformat, der hver rad representerer en post, og hver kolonne representerer et felt eller attributt til posten. Den første raden i en CSV-fil lagrer vanligvis kolonneoverskriftene, som gir en etikett for hvert felt i datasettet.

Hva er TF-IDF?

TF-IDF står for «Term Frequency-Inverse Document Frequency». Det er en numerisk statistikk som gjenspeiler betydningen av et begrep i et dokumentkorpus. TF-IDF er ofte nyttig i tekstutvinning, informasjonsinnhenting og naturlig språkbehandling.

Hva er stoppord?

Stoppord er vanlige ord som naturlig språkbehandling (NLP)-oppgaver utelukker fordi de har liten mening eller betydning i tekstanalyse. Eksempler på stoppord inkluderer «den», «og», «av», «til», «i», «en», «en», «er» og «for».

Del innlegget:

State of the art AI

Kom i gang med Eskritor nå!

relaterte artikler

Et bilde av en dataskjerm som viser en samtale med GPT-3, overlagt med diagrammer som illustrerer AIs språkbehandlingstrinn
Eskritor

Hvordan fungerer GPT-3?

Trinnene nedenfor forklarer hvordan GPT-3 fungerer for å generere svar: Hvorfor er GPT-3 nyttig? Her er en liste over grunner til at GPT-3 er nyttig: Hva er historien til GPT-3?

Et visuelt diagram som viser data relatert til AIs innvirkning på arbeidsmarkedet for innholdsforfattere
Eskritor

Vil AI erstatte innholdsforfattere?

Ja, AI-forfattere kan erstatte noen forfattere, men de kan aldri erstatte gode forfattere. Det vil erstatte visse typer skrivejobber. AI-innholdsgeneratorer kan generere grunnleggende innhold som ikke krever original forskning eller

En visuell representasjon av ChatGPTs arkitektur, med transformatormodellen som muliggjør språkforståelse og generasjonsevner
Eskritor

Hvordan fungerer ChatGPT?

På et høyt nivå er ChatGPT en dyp læringsmodell som bruker et nevralt nettverk for å generere menneskelignende tekst. Den spesifikke versjonen av modellen, ChatGPT-3, er basert på en teknikk