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.

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.

Wat zijn Trefwoord Extractie API’s?

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.

Wat is R?

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.

Vaak gestelde vragen

Wat is CSV?

CSV staat voor “Comma-Separated Values”. Het is een bestandsformaat waarin gegevens in platte tekst worden opgeslagen en uitgewisseld, waarbij elke rij een record voorstelt en elke kolom een veld of kenmerk van de record. De eerste rij van een CSV-bestand bevat meestal de kolomkoppen, die een label geven voor elk veld in de dataset.

Wat is TF-IDF?

TF-IDF staat voor “Term Frequency-Inverse Document Frequency”. Het is een numerieke statistiek die het belang van een term in een documentcorpus weergeeft. TF-IDF is algemeen bruikbaar bij text mining, information retrieval en natuurlijke taalverwerking.

Wat zijn stopwoorden?

Stopwoorden zijn veel voorkomende woorden die door natuurlijke taalverwerkingstaken (NLP) worden uitgesloten omdat ze weinig betekenis of betekenis hebben bij tekstanalyse. Voorbeelden van stopwoorden zijn “de”, “en”, “van”, “aan”, “in”, “een”, “een”, “is” en “voor”.

Deel de post:

Geavanceerde A.I.

Begin nu met Eskritor!

Verwante artikelen

Een afbeelding van een computerscherm van een gesprek met GPT-3, met daaroverheen diagrammen die de taalverwerkingsstappen van de AI illustreren
Eskritor

Hoe werkt GPT-3?

De onderstaande stappen leggen uit hoe GPT-3 werkt om reacties te genereren: Waarom is GPT-3 nuttig? Hier is een lijst van redenen waarom GPT-3 nuttig is: Wat is de geschiedenis

Een visuele grafiek met gegevens over de impact van AI op de banenmarkt voor contentschrijvers
Eskritor

Zal AI inhoudsschrijvers vervangen?

Ja, AI-schrijvers kunnen sommige schrijvers vervangen, maar ze kunnen nooit goede schrijvers vervangen. Het zal bepaalde soorten schrijfwerk vervangen. AI-contentgeneratoren kunnen basiscontent genereren waarvoor geen origineel onderzoek of expertise nodig

Een visuele weergave van de architectuur van ChatGPT, met het transformatormodel dat taalbegrip en taalgeneratie mogelijk maakt
Eskritor

Hoe werkt ChatGPT?

Op hoog niveau is ChatGPT een deep learning-model dat een neuraal netwerk gebruikt om mensachtige tekst te genereren. De specifieke versie van het model, ChatGPT-3, is gebaseerd op een techniek