Come estrarre parole chiave dal testo in R?

Un'immagine che illustra l'interfaccia di R con un frammento di codice evidenziato utilizzato per l'estrazione di parole chiave dal testo.

Che cos’è l’estrazione di parole chiave?

L’estrazione delle parole chiave estrae automaticamente le parole e le espressioni più usate e più importanti da un testo, utilizzando una tecnica di analisi del testo. Aiuta a riassumere il contenuto dei testi e a riconoscere i principali argomenti trattati, il che è utile per le ricerche di mercato, l’analisi del sentiment e altri tipi di analisi dei dati. Questa tecnica sfrutta le incorporazioni di frasi e può analizzare grandi insiemi di dati in tempo reale.

L’apprendimento automatico dell’intelligenza artificiale (AI) con l’elaborazione del linguaggio naturale (NLP) (un campo delle scienze informatiche) scompone il linguaggio umano in modo che le macchine possano comprenderlo e analizzarlo. L’estrazione delle parole chiave automatizza i flussi di lavoro, come l’etichettatura delle risposte ai sondaggi in arrivo o la risposta alle richieste urgenti dei clienti. La tecnica utilizza informazioni linguistiche e semantiche sui testi e sulle parole in essi contenute. Esistono diversi algoritmi e tecniche di apprendimento automatico per estrarre le parole chiave più rilevanti in un testo.

Perché l’estrazione delle parole chiave è importante?

L’estrazione delle parole chiave e delle keyphrase è importante per diversi motivi:

  1. Ottimizzazione per i motori di ricerca (SEO): L’estrazione delle parole chiave aiuta a identificare le parole e le frasi più importanti di un documento, che possono essere utilizzate per ottimizzare i contenuti del sito web per i motori di ricerca.
  2. Riassunto del testo: L’estrazione delle parole chiave può essere utilizzata per riassumere un documento identificando le parole e le frasi più importanti che rappresentano il tema principale del testo.
  3. Classificazione del testo: L’estrazione delle parole chiave può essere utilizzata per classificare i documenti di testo in diverse categorie in base alle parole chiave che contengono. Ciò è utile in applicazioni come la sentiment analysis.
  4. Recupero delle informazioni: L’estrazione delle parole chiave può essere utilizzata per migliorare l’accuratezza dei sistemi di recupero delle informazioni, identificando le parole chiave pertinenti che corrispondono alla richiesta di ricerca dell’utente.

Come effettuare l’estrazione di parole chiave in R?

Ecco alcune tecniche di estrazione di parole chiave e i loro casi d’uso:

  • Trovare le parole chiave eseguendo il tagging delle parti del discorso per identificare i sostantivi.
  • Trovare parole chiave basate su collocamenti e co-occorrenze
  • Trova le parole chiave in base all’algoritmo Textrank
  • Trovare parole chiave basate su RAKE (estrazione automatica rapida di parole chiave)
  • Trova le parole chiave in base ai risultati del parsing delle dipendenze (ottenendo l’argomento del testo)
estrarre parole chiave dal testo

Estrazione di sostantivi

Un modo semplice per trovare le parole chiave è osservare i sostantivi. Poiché ogni termine ha un tag Parts of Speech, se il testo è stato annotato con il pacchetto udpipe:

Codice:

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

Collocazione e co-occorrenze

Ottenere espressioni con più parole osservando le collocazioni (parole che si susseguono), le co-occorrenze di parole all’interno di ogni frase o le co-occorrenze di parole vicine l’una all’altra.

Codice:

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 (rete di parole ordinate in base a Google Pagerank)

Textrank è un altro metodo di estrazione delle parole chiave. Il pacchetto R textrank implementa l’algoritmo Textrank. L’algoritmo Textrank consente di riassumere il testo e di estrarre le parole chiave. Per costruire una rete di parole, l’algoritmo controlla se le parole si susseguono. L’algoritmo “Google Pagerank” estrae le parole rilevanti. Le parole pertinenti che si susseguono si combinano insieme per ottenere le parole chiave. Il TextRank non deriva dal testo originale, in quanto si tratta di un approccio basato sui grafi.

Codice:

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)

Estrazione automatica rapida di parole chiave: RAKE

RAKE è il successivo algoritmo di base, acronimo di Rapid Automatic Keyword Extraction. RAKE è un algoritmo di estrazione di parole chiave indipendente dal dominio nell’elaborazione del linguaggio naturale.

  1. Il calcolo di un punteggio per ogni parola che fa parte di una parola chiave candidata viene effettuato da
    • tra le parole delle parole chiave candidate, l’algoritmo guarda quante volte ogni parola ricorre e quante volte co-occorre con altre parole
    • Ogni parola riceve un punteggio che è il rapporto tra il grado della parola (quante volte co-occorre con altre parole) e la frequenza della parola.
  2. Il punteggio RAKE per l’intera parola chiave candidata viene calcolato sommando i punteggi di ciascuna delle parole che definiscono la parola chiave candidata.

Codice:

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

Utilizzare l’output del parsing delle dipendenze per ottenere il soggetto nominale e il suo aggettivo

Quando si esegue l’annotazione con udpipe, il campo dep_rel indica come le parole sono correlate tra loro. Un token è collegato al genitore tramite token_id e head_token_id. Il campo dep_rel indica come le parole si collegano tra loro. Il tipo di relazioni è su http://universaldependencies.org/u/dep/index.html.

Codice:

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

Che cos’è il Text-Mining?

Il text mining in R si riferisce al processo di analisi ed estrazione di informazioni dai dati testuali utilizzando il linguaggio di programmazione R e le librerie e i pacchetti associati. Il text mining prevede diverse fasi, tra cui la pulizia e la preelaborazione dei dati, l’estrazione di caratteristiche, la modellazione statistica e la visualizzazione.
Il pacchetto tm fornisce funzioni per la lettura di dati testuali, la pulizia e la pre-elaborazione dei dati e la creazione di matrici documento-termine, comunemente utilizzate per l’analisi dei dati testuali. Il pacchetto tidytext fornisce strumenti per convertire i dati di testo in frame di dati ordinati.
Alcuni compiti comuni del text mining includono l’analisi del sentiment, la modellazione degli argomenti, il clustering dei documenti e la classificazione dei testi. Questi compiti prevedono l’applicazione di tecniche statistiche e di apprendimento automatico per identificare modelli e relazioni all’interno dei dati testuali.

Cosa sono le API di estrazione delle parole chiave?

Le API per l’estrazione delle parole chiave sono interfacce software che consentono agli sviluppatori di estrarre parole e frasi chiave dal testo utilizzando algoritmi e modelli di apprendimento automatico precostituiti. Queste API forniscono una soluzione facile da usare e scalabile per automatizzare il processo di estrazione delle parole chiave, senza che gli sviluppatori debbano costruire e addestrare i propri modelli.

Che cos’è R?

R è un linguaggio di programmazione e un ambiente software open-source per il calcolo statistico, l’analisi dei dati e la grafica. R è ampiamente utilizzato in ambito accademico, di ricerca e industriale per attività quali la modellazione statistica, la visualizzazione dei dati, l’apprendimento automatico e il data mining. Dispone di interfacce con altri linguaggi di programmazione come Python e C++. Trovate informazioni più dettagliate con le esercitazioni online su GitHub.

Domande frequenti

Che cos’è il CSV?

CSV è l’acronimo di “Comma-Separated Values”. È un formato di file che memorizza e scambia dati in un formato di testo semplice, dove ogni riga rappresenta un record e ogni colonna rappresenta un campo o un attributo del record. La prima riga di un file CSV contiene di solito le intestazioni delle colonne, che forniscono un’etichetta per ogni campo del set di dati.

Che cos’è il TF-IDF?

TF-IDF è l’acronimo di “Term Frequency-Inverse Document Frequency”. È una statistica numerica che riflette l’importanza di un termine in un corpus di documenti. TF-IDF è comunemente utile nelle applicazioni di text mining, information retrieval ed elaborazione del linguaggio naturale.

Cosa sono le stopwords?

Le stopword sono parole comuni che le attività di elaborazione del linguaggio naturale (NLP) escludono perché hanno scarso significato o importanza nell’analisi del testo. Esempi di stop sono “il”, “e”, “di”, “per”, “in”, “a”, “un”, “è” e “per”.

Condividi il post:

Stato dell'arte dell'I.A.

Iniziate subito con Eskritor!

Articoli correlati

Un'immagine dello schermo di un computer che mostra una conversazione con GPT-3, sovrapposta a diagrammi che illustrano le fasi di elaborazione del linguaggio dell'AI.
Eskritor

Come funziona il GPT-3?

I passaggi seguenti spiegano come funziona il GPT-3 per generare le risposte: Perché la GPT-3 è utile? Ecco un elenco di motivi per cui la GPT-3 è utile: Qual è

Una rappresentazione visiva dell'architettura di ChatGPT, con il modello di trasformatore che consente la comprensione e la generazione del linguaggio.
Eskritor

Come funziona ChatGPT?

Ad alto livello, ChatGPT è un modello di apprendimento profondo che utilizza una rete neurale per generare testo simile a quello umano. La versione specifica del modello, ChatGPT-3, si basa