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:
- 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.
- Tekstoppsummering: Nøkkelorduttrekk kan brukes til å oppsummere et dokument ved å identifisere de viktigste ordene og frasene som representerer hovedtemaet i teksten.
- Tekstklassifisering: Nøkkelorduttrekk kan brukes til å klassifisere tekstdokumenter i ulike kategorier basert på søkeordene de inneholder. Dette er nyttig i applikasjoner som sentimentanalyse.
- 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 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.
-
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
- 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.