Hvordan udtrække nøgleord fra tekst i R?

Et billede, der illustrerer R-grænsefladen med et fremhævet kodestykke, der bruges til at udtrække nøgleord fra tekst.
Et billede, der illustrerer R-grænsefladen med et fremhævet kodestykke, der bruges til at udtrække nøgleord fra tekst.

Eskritor 2023-07-06

Hvad er udtrækning af nøgleord?

Udtræk af nøgleord uddrager automatisk de mest anvendte og vigtigste ord og udtryk fra en tekst ved hjælp af en tekstanalyseteknik. Det hjælper med at opsummere indholdet af tekster og genkende de vigtigste emner, der diskuteres, hvilket er nyttigt for markedsundersøgelser , stemningsanalyse og andre typer dataanalyse. Denne teknik udnytter sætningsindlejringer og kan analysere store datasæt i realtid.

Maskinlæring af kunstig intelligens (AI) med naturlig sprogbehandling (NLP) (et område inden for computervidenskab) nedbryder menneskeligt sprog, så maskiner kan forstå og analysere det. Udtræk af nøgleord automatiserer arbejdsgange som f.eks. mærkning af indgående undersøgelsessvar eller besvarelse af presserende kundeforespørgsler. Teknikken anvender sproglige og semantiske oplysninger om tekster og de ord, de indeholder. Der findes forskellige maskinlæringsalgoritmer og teknikker til at udtrække de mest relevante nøgleord i en tekst.

Hvorfor er det vigtigt at udtrække nøgleord?

Udtræk af søgeord og søgeord er vigtigt af flere grunde:

  1. Søgemaskineoptimering (SEO) : Udtræk af nøgleord hjælper med at identificere de vigtigste ord og sætninger i et dokument, som kan bruges til at optimere webstedsindholdet til søgemaskinerne.
  2. Sammenfatning af tekst: Udtræk af nøgleord kan bruges til at opsummere et dokument ved at identificere de vigtigste ord og sætninger, der repræsenterer tekstens hovedtema.
  3. Klassificering af tekst: Udtræk af nøgleord kan bruges til at klassificere tekstdokumenter i forskellige kategorier baseret på de nøgleord, de indeholder. Dette er nyttigt i applikationer som f.eks. følelsesanalyse.
  4. Informationssøgning: Udtræk af nøgleord kan bruges til at forbedre nøjagtigheden af informationssøgningssystemer ved at identificere relevante nøgleord, der matcher en brugers søgeforespørgsel.

Hvordan laver man søgeordudtrækning i R?

Her er nogle teknikker til udtrækning af nøgleord og deres anvendelsesområder:

  • Find nøgleord ved at lave Parts of Speech tagging for at identificere navneord
  • Find nøgleord baseret på kollokationer og sameksistens
  • Find nøgleord baseret på Textrank-algoritmen
  • Find nøgleord baseret på RAKE (hurtig automatisk udtrækning af nøgleord)
  • Find nøgleord baseret på resultaterne af afhængighedsanalysen (få fat i tekstens emne)
udtrække nøgleord fra tekst

Udtrække navneord

En nem måde at finde nøgleord på er ved at kigge på navneord. Da hvert udtryk har et Parts of Speech-tag, hvis du har annoteret tekst ved hjælp af 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")

Kollokation og samtidige forekomster

Få et udtryk med flere ord ved at se enten på kollokationer (ord, der følger hinanden), på ordsamlinger inden for hver sætning eller på ordsamlinger af ord, der ligger tæt på hinanden.

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 (ordnet efter Google Pagerank)

Textrank er en anden metode til udtrækning af nøgleord. R-pakken textrank implementerer Textrank-algoritmen. Textrank-algoritmen gør det muligt at opsummere tekster og udtrække nøgleord. For at konstruere et ordnetværk kontrollerer algoritmen, om ord følger hinanden. Google Pagerank-algoritmen udvinder relevante ord. Relevante ord, der følger efter hinanden, kombineres til nøgleord. TextRank stammer ikke fra den originale tekst, da det er en grafbaseret metode.

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)

Hurtig automatisk udtrækning af nøgleord: RAKE

RAKE er den næste grundlæggende algoritme, som er en forkortelse for Rapid Automatic Keyword Extraction (hurtig automatisk udtrækning af nøgleord). RAKE er en domæneuafhængig algoritme til udtrækning af nøgleord i naturlig sprogbehandling.

  1. Beregning af en score for hvert ord, der er en del af et kandidatnøgleord, sker ved at
    • blandt ordene i de potentielle nøgleord ser algoritmen på, hvor mange gange hvert ord forekommer, og hvor mange gange det forekommer sammen med andre ord
    • hvert ord får en score, som er forholdet mellem ordets grad (hvor mange gange det forekommer sammen med andre ord) og ordfrekvensen
  2. En RAKE-score for det fulde kandidatnøgleord beregnes ved at summere scoren for hvert af de ord, der definerer kandidatnøgleordet

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

Brug afhængighedsparsering for at få det nominelle subjekt og adjektivet til det

Når du har udført annotationen ved hjælp af udpipe, angiver dep_rel-feltet , hvordan ord er relateret til hinanden. Et token er relateret til den overordnede ved hjælp af token_id og head_token_id . Dep_rel-feltet angiver, hvordan ord er forbundet med hinanden. Typen af forbindelser findes 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"))

Hvad er Text-Mining?

Tekstmining i R henviser til processen med at analysere og uddrage indsigt fra tekstdata ved hjælp af programmeringssproget R og de tilhørende biblioteker og pakker. Text mining omfatter flere trin, herunder rensning og forbehandling af data, udtrækning af funktioner, statistisk modellering og visualisering.
Pakken tm indeholder funktioner til læsning af tekstdata, rensning og forbehandling af dataene og oprettelse af dokument-term-matricer, som ofte anvendes til analyse af tekstdata. Pakken tidytext indeholder værktøjer til konvertering af tekstdata til ryddelige datarammer.
Nogle almindelige opgaver inden for tekstmining omfatter følelsesanalyse, emneformulering, klyngeopdeling af dokumenter og tekstklassificering. Disse opgaver indebærer anvendelse af statistiske og maskinlæringsteknikker til at identificere mønstre og relationer i tekstdata.

API’er til udtræk af nøgleord er softwaregrænseflader, der gør det muligt for udviklere at udtrække nøgleord og nøgleord fra tekst ved hjælp af forudindbyggede algoritmer og maskinlæringsmodeller. Disse API’er giver en brugervenlig og skalerbar løsning til automatisering af udtrækningen af nøgleord uden at udviklerne behøver at opbygge og træne deres egne modeller.

R er et programmeringssprog og et softwaremiljø med åben kildekode til statistisk beregning, dataanalyse og grafik. R anvendes i vid udstrækning i den akademiske verden, i forskning og i industrien til opgaver som statistisk modellering, datavisualisering, maskinlæring og datamining. Det har grænseflader til andre programmeringssprog som Python og C++ . Du kan finde mere detaljerede oplysninger i online tutorials på GitHub.

Del indlæg

AI Forfatter

img

Eskritor

Opret AI genereret indhold