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:
- 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.
- 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.
- 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.
- 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](/img/inline-images/campaign-creators-pypeCEaJeZY-unsplash-edited.avif)
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.
-
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.
- 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.
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.
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.