Hur extraherar man nyckelord från text i R?

En bild som illustrerar R-gränssnittet med ett markerat kodavsnitt som används för att extrahera nyckelord från text.

Vad är sökordsextraktion?

Nyckelordsextraktion extraherar automatiskt de mest använda och viktigaste orden och uttrycken från en text med hjälp av en textanalysteknik. Den hjälper till att sammanfatta innehållet i texter och känna igen de viktigaste ämnena som diskuteras, vilket är användbart för marknadsundersökningar, sentimentanalys och andra typer av dataanalys. Den här tekniken utnyttjar inbäddning av meningar och kan analysera stora datamängder i realtid.

Maskininlärning artificiell intelligens (AI) med behandling av naturligt språk (NLP) (ett område inom datavetenskap) bryter ner mänskligt språk så att maskiner kan förstå och analysera det. Utdragning av nyckelord automatiserar arbetsflöden som t.ex. taggning av inkommande enkätsvar eller svar på brådskande kundförfrågningar. Tekniken använder sig av språklig och semantisk information om texter och de ord de innehåller. Det finns olika algoritmer och tekniker för maskininlärning för att extrahera de mest relevanta nyckelorden i en text.

Varför är det viktigt med nyckelordsextraktion?

Det är viktigt att extrahera nyckelord och nyckelfraser av flera skäl:

  1. Sökmotoroptimering (SEO): Nyckelordsextraktion hjälper till att identifiera de viktigaste orden och fraserna i ett dokument, vilket kan användas för att optimera webbplatsens innehåll för sökmotorer.
  2. Sammanfattning av text: Nyckelordsextraktion kan användas för att sammanfatta ett dokument genom att identifiera de viktigaste orden och fraserna som representerar textens huvudtema.
  3. Klassificering av text: Nyckelordsextraktion kan användas för att klassificera textdokument i olika kategorier baserat på de nyckelord de innehåller. Detta är användbart i tillämpningar som t.ex. sentimentanalyser.
  4. Informationssökning: Nyckelordsextraktion kan användas för att förbättra informationssökningssystemens noggrannhet genom att identifiera relevanta nyckelord som matchar en användares sökfråga.

Hur gör man nyckelordsextraktion i R?

Här är några tekniker för utvinning av nyckelord och deras användningsområden:

  • Hitta nyckelord genom att göra Parts of Speech-tagging för att identifiera substantiv.
  • Hitta nyckelord baserat på kollokationer och samvariation
  • Hitta nyckelord baserat på Textrank-algoritmen
  • Hitta nyckelord baserat på RAKE (rapid automatic keyword extraction)
  • Hitta nyckelord baserat på resultaten av beroendeanalysen (för att få fram textens ämne).
extrahera nyckelord från text

Extraktion av substantiv

Ett enkelt sätt att hitta nyckelord är att titta på substantiv. Eftersom varje term har en Parts of Speech-tagg om du har kommenterat text med hjälp av udpipe-paketet:

Kod:

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 och samtidiga förekomster

Du kan få fram uttryck med flera ord genom att titta antingen på kollokationer (ord som följer på varandra), på ord som förekommer tillsammans i varje mening eller på ord som förekommer tillsammans med ord som ligger nära varandra.

Kod:

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 (ordnätverk ordnat efter Google Pagerank)

Textrank är en annan metod för att extrahera nyckelord. R-paketet textrank implementerar Textrank-algoritmen. Textrank-algoritmen gör det möjligt att sammanfatta text och extrahera nyckelord. För att skapa ett ordnätverk kontrollerar algoritmen om orden följer varandra. Google Pagerank-algoritmen extraherar relevanta ord. Relevanta ord som följer på varandra kombineras till nyckelord. TextRank utgår inte från originaltexten, eftersom det är en grafbaserad metod.

Kod:

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)

Snabbt automatiskt utdrag av nyckelord: RAKE

RAKE är nästa grundläggande algoritm som är en akronym för Rapid Automatic Keyword Extraction. RAKE är en domänoberoende algoritm för utvinning av nyckelord inom Natural Language Processing.

  1. Beräkningen av en poäng för varje ord som ingår i ett kandidatnyckelord görs genom att
    • Bland orden i kandidatnyckelorden tittar algoritmen på hur många gånger varje ord förekommer och hur många gånger det förekommer tillsammans med andra ord.
    • Varje ord får en poäng som är förhållandet mellan ordets grad (hur många gånger det förekommer tillsammans med andra ord) och ordfrekvensen.
  2. En RAKE-poäng för hela kandidatnyckelordet beräknas genom att summera poängen för varje ord som definierar kandidatnyckelordet.

Kod:

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

Använd resultatet av beroendeanalysen för att få fram det nominella subjektet och adjektivet till det.

När du utförde annotationen med udpipe anger fältet dep_rel hur orden är relaterade till varandra. En token är relaterad till den överordnade med hjälp av token_id och head_token_id. Fältet dep_rel anger hur orden är kopplade till varandra. Vilken typ av relation finns på http://universaldependencies.org/u/dep/index.html.

Kod:

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

Vad är textutvinning?

Textutvinning i R avser processen för att analysera och utvinna insikter från textdata med hjälp av programmeringsspråket R och tillhörande bibliotek och paket. Textutvinning omfattar flera steg, bland annat rensning och förbehandling av data, utvinning av funktioner, statistisk modellering och visualisering.
Paketet tm innehåller funktioner för att läsa in textdata, rensa och förbehandla data och skapa matriser för dokumenttermer, som ofta används för att analysera textdata. Paketet tidytext innehåller verktyg för att konvertera textdata till prydliga dataramar.
Några vanliga uppgifter inom textutvinning är sentimentanalys, ämnesmodellering, klusterindelning av dokument och textklassificering. Dessa uppgifter innebär att statistiska och maskininlärningstekniker används för att identifiera mönster och relationer i textdata.

Vad är API:er för sökordsextraktion?

API:er för nyckelordsextraktion är programvarugränssnitt som gör det möjligt för utvecklare att extrahera nyckelord och nyckelfraser från text med hjälp av förbyggda algoritmer och modeller för maskininlärning. Dessa API:er ger en lättanvänd och skalbar lösning för att automatisera processen för sökordsextraktion, utan att utvecklare behöver bygga och träna sina egna modeller.

Vad är R?

R är ett programmeringsspråk och en programvarumiljö med öppen källkod för statistiska beräkningar, dataanalyser och grafik. R används ofta inom akademin, forskningen och industrin för uppgifter som statistisk modellering, datavisualisering, maskininlärning och datautvinning. Det har gränssnitt mot andra programmeringsspråk som Python och C++. Mer detaljerad information finns i handledningar online på GitHub.

Ofta ställda frågor

Vad är CSV?

CSV står för ”Comma-Separated Values” (kommaseparerade värden). Det är ett filformat som lagrar och utbyter data i klartextformat, där varje rad representerar en post och varje kolumn representerar ett fält eller attribut i posten. Den första raden i en CSV-fil innehåller vanligtvis kolumnrubrikerna, som ger en etikett för varje fält i datamängden.

Vad är TF-IDF?

TF-IDF står för ”Term Frequency-Inverse Document Frequency”. Det är en numerisk statistik som speglar betydelsen av en term i en dokumentkorpus. TF-IDF är allmänt användbart i tillämpningar för textutvinning, informationssökning och behandling av naturliga språk.

Vad är stoppord?

Stoppord är vanliga ord som utesluts i NLP-uppgifter (Natural Language Processing) eftersom de har liten betydelse eller betydelse för textanalysen. Exempel på stoppord är ”the”, ”and”, ”of”, ”to”, ”in”, ”a”, ”an”, ”is” och ”for”.

Dela inlägget:

State of the art A.I.

Kom igång med Eskritor nu!

Relaterade artiklar

En bild av en datorskärm som visar en konversation med GPT-3, överlagrad med diagram som illustrerar AI:ns språkbearbetningssteg
Eskritor

Hur fungerar GPT-3?

Nedanstående steg förklarar hur GPT-3 fungerar för att generera svar: Varför är GPT-3 användbart? Här är en lista med anledningar till varför GPT-3 är användbart: Vad är GPT-3:s historia? Utvecklingen

Ett visuellt diagram som visar data relaterade till AI: s inverkan på arbetsmarknaden för innehållsförfattare
Eskritor

Kommer AI att ersätta innehållsförfattare?

Ja, AI-författare kan ersätta vissa författare, men de kan aldrig ersätta bra författare. Det kommer att ersätta vissa typer av skrivjobb. AI-innehållsgeneratorer kan generera grundläggande innehåll som inte kräver någon

En visuell representation av ChatGPT:s arkitektur, med transformatormodellen som möjliggör dess språkförståelse och genereringsfunktioner
Eskritor

Hur fungerar ChatGPT?

På en övergripande nivå är ChatGPT en djup inlärningsmodell som använder ett neuralt nätverk för att generera människoliknande text. Den specifika versionen av modellen, ChatGPT-3, bygger på en teknik som