Hoe sleutelwoorden uit tekst halen in R?

Een afbeelding die de R-interface illustreert met een gemarkeerd codefragment dat wordt gebruikt voor het extraheren van trefwoorden uit tekst.
Een afbeelding die de R-interface illustreert met een gemarkeerd codefragment dat wordt gebruikt voor het extraheren van trefwoorden uit tekst.

Eskritor 2023-07-06

Wat is Trefwoord Extractie?

Trefwoordextractie haalt automatisch de meest gebruikte en belangrijkste woorden en uitdrukkingen uit een tekst, met behulp van een tekstanalysetechniek. Het helpt om de inhoud van teksten samen te vatten en de belangrijkste besproken onderwerpen te herkennen, wat nuttig is voor marktonderzoek , sentimentanalyse en andere soorten gegevensanalyse. Deze techniek maakt gebruik van zinsinsinsinsluitingen en kan grote gegevensreeksen in real time analyseren.

Machine learning artificial intelligence (AI) met natural language processing (NLP) (een gebied van computerwetenschappen) breekt menselijke taal af zodat machines die kunnen begrijpen en analyseren. Trefwoordextractie automatiseert workflows zoals het labelen van inkomende enquêtereacties of het reageren op dringende vragen van klanten. De techniek maakt gebruik van linguïstische en semantische informatie over teksten en de woorden die ze bevatten. Er bestaan verschillende algoritmen en technieken voor machinaal leren om de meest relevante trefwoorden uit een tekst te halen.

Waarom is Trefwoord Extractie belangrijk?

Trefwoord extractie en keyphrase extractie zijn belangrijk om verschillende redenen:

  1. Zoekmachine optimalisatie (SEO) : Trefwoordextractie helpt om de belangrijkste woorden en zinnen in een document te identificeren, die kunnen worden gebruikt om de inhoud van de website te optimaliseren voor zoekmachines.
  2. Tekstsamenvatting: Trefwoordextractie kan worden gebruikt om een document samen te vatten door de belangrijkste woorden en zinnen te identificeren die het hoofdthema van de tekst weergeven.
  3. Tekstclassificatie: Trefwoordextractie kan worden gebruikt om tekstdocumenten in te delen in verschillende categorieën op basis van de trefwoorden die ze bevatten. Dit is nuttig voor toepassingen zoals sentimentanalyse.
  4. Informatie ophalen: Trefwoordextractie kan worden gebruikt om de nauwkeurigheid van informatiezoeksystemen te verbeteren door relevante trefwoorden te identificeren die overeenkomen met de zoekopdracht van een gebruiker.

Hoe trefwoord extractie maken in R?

Hier zijn enkele technieken voor het extraheren van trefwoorden en hun toepassingen:

  • Zoek trefwoorden door het doen van Parts of Speech tagging om zelfstandige naamwoorden te identificeren
  • Trefwoorden vinden op basis van Collocaties en Co-occurrences
  • Trefwoorden vinden op basis van het Textrank-algoritme
  • Trefwoorden vinden op basis van RAKE (rapid automatic keyword extraction)
  • Zoek trefwoorden op basis van de resultaten van afhankelijkheidsparsing (verkrijgen van het onderwerp van de tekst)
trefwoorden uit tekst halen

Het extraheren van zelfstandige naamwoorden

Een gemakkelijke manier om trefwoorden te vinden is door te kijken naar zelfstandige naamwoorden. Aangezien elke term een Parts of Speech tag heeft als u tekst annoteerde met het udpipe pakket:

Code:

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

Collocatie en co-occurenties

Krijg multi-woord uitdrukking door te kijken naar collocaties (woorden die elkaar opvolgen), naar woord co-congruenties binnen elke zin, of naar woord co-congruenties van woorden die dicht bij elkaar staan.

Code:

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 (woordnetwerk gerangschikt volgens Google Pagerank)

Textrank is een andere extractiemethode voor trefwoorden. Het textrank R pakket implementeert het Textrank algoritme. Het Textrank-algoritme maakt tekstsamenvatting en trefwoordextractie mogelijk. Om een woordnetwerk te construeren, controleert het algoritme of woorden elkaar opvolgen. Het ‘Google Pagerank’ algoritme haalt relevante woorden eruit. Relevante woorden die elkaar opvolgen combineren tot trefwoorden. TextRank gaat niet uit van de oorspronkelijke tekst, omdat het een op grafieken gebaseerde aanpak is.

Code:

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)

Snelle Automatische Trefwoord Extractie: RAKE

RAKE is het volgende basisalgoritme dat een acroniem is voor Rapid Automatic Keyword Extraction. RAKE is een domein-afhankelijk trefwoord extractie algoritme in Natural Language Processing.

  1. Het berekenen van een score voor elk woord dat deel uitmaakt van een kandidaat-sleutelwoord, gebeurt door
    • onder de woorden van de kandidaat-trefwoorden kijkt het algoritme hoe vaak elk woord voorkomt en hoe vaak het samen voorkomt met andere woorden.
    • elk woord krijgt een score die de verhouding is tussen de woordgraad (hoe vaak het samen voorkomt met andere woorden) en de woordfrequentie
  2. Een RAKE-score voor het volledige kandidaat-sleutelwoord wordt berekend door de scores op te tellen van elk van de woorden die het kandidaat-sleutelwoord definiëren

Code:

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

Gebruik de output van afhankelijkheidsparsing om het nominale onderwerp en het adjectief ervan te krijgen

Wanneer u de annotatie met udpipe hebt uitgevoerd, geeft het veld dep_rel aan hoe woorden aan elkaar gerelateerd zijn. Een token is gerelateerd aan de ouder met behulp van token_id en head_token_id . Het veld dep_rel geeft aan hoe woorden met elkaar verbonden zijn. Het type relatie staat op http://universaldependencies.org/u/dep/index.html.

Code:

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

Wat is Text-Mining?

Text mining in R verwijst naar het proces van analyse en extractie van inzichten uit tekstgegevens met behulp van de programmeertaal R en bijbehorende bibliotheken en pakketten. Text mining omvat verschillende stappen, waaronder het opschonen en voorbewerken van gegevens, extractie van kenmerken, statistische modellering en visualisering.
Het pakket tm bevat functies voor het lezen van tekstgegevens, het opschonen en voorbewerken van de gegevens, en het maken van document-termijnmatrices, die vaak worden gebruikt voor het analyseren van tekstgegevens. Het pakket tidytext biedt hulpmiddelen om tekstgegevens om te zetten in nette dataframes.
Enkele veel voorkomende taken bij text mining zijn sentimentanalyse, topic modeling, documentclustering en tekstclassificatie. Bij deze taken worden statistische en machine-learningtechnieken toegepast om patronen en relaties in tekstgegevens op te sporen.

API’s voor trefwoordextractie zijn software-interfaces waarmee ontwikkelaars trefwoorden en sleutelzinnen uit tekst kunnen halen met behulp van vooraf gebouwde algoritmen en modellen voor machinaal leren. Deze API’s bieden een eenvoudig te gebruiken en schaalbare oplossing voor het automatiseren van het proces van trefwoordextractie, zonder dat ontwikkelaars hun eigen modellen hoeven te bouwen en te trainen.

R is een open-source programmeertaal en softwareomgeving voor statistische berekeningen, gegevensanalyse en grafieken. Mensen gebruiken R op grote schaal in de academische wereld, onderzoek en industrie voor taken als statistische modellering, datavisualisatie, machinaal leren en datamining. Het heeft interfaces met andere programmeertalen zoals Python en C++ . Vind meer gedetailleerde informatie met online tutorials op GitHub.

Post delen

AI Schrijver

img

Eskritor

Creëer AI gegenereerde inhoud