¿Cómo extraer palabras clave de un texto en R?

Imagen que ilustra la interfaz de R con un fragmento de código resaltado utilizado para la extracción de palabras clave a partir de texto.
Imagen que ilustra la interfaz de R con un fragmento de código resaltado utilizado para la extracción de palabras clave a partir de texto.

Eskritor 2023-07-06

¿Qué es la extracción de palabras clave?

La extracción de palabras clave extrae automáticamente las palabras y expresiones más utilizadas e importantes de un texto, mediante una técnica de análisis de textos. Ayuda a resumir el contenido de los textos y a reconocer los principales temas tratados, lo que resulta útil para estudios de mercado , análisis de opiniones y otros tipos de análisis de datos. Esta técnica aprovecha la incrustación de frases y puede analizar grandes conjuntos de datos en tiempo real.

El aprendizaje automático de la inteligencia artificial (IA) con el procesamiento del lenguaje natural (PLN) (un campo de las ciencias informáticas) descompone el lenguaje humano para que las máquinas puedan entenderlo y analizarlo. La extracción de palabras clave automatiza flujos de trabajo como el etiquetado de respuestas de encuestas entrantes o la respuesta a consultas urgentes de los clientes. Esta técnica utiliza información lingüística y semántica sobre los textos y las palabras que contienen. Existen diferentes algoritmos y técnicas de aprendizaje automático para extraer las palabras clave más relevantes de un texto.

¿Por qué es importante la extracción de palabras clave?

La extracción de palabras clave y frases clave es importante por varias razones:

  1. Optimización para motores de búsqueda (SEO) : La extracción de palabras clave ayuda a identificar las palabras y frases más importantes de un documento, que pueden utilizarse para optimizar el contenido del sitio web para los motores de búsqueda.
  2. Resumen de textos: La extracción de palabras clave puede utilizarse para resumir un documento identificando las palabras y frases más importantes que representan el tema principal del texto.
  3. Clasificación de textos: La extracción de palabras clave puede utilizarse para clasificar documentos de texto en diferentes categorías en función de las palabras clave que contengan. Esto es útil en aplicaciones como el análisis de sentimientos.
  4. Recuperación de información: La extracción de palabras clave puede utilizarse para mejorar la precisión de los sistemas de recuperación de información mediante la identificación de palabras clave relevantes que coincidan con la consulta de búsqueda de un usuario.

¿Cómo realizar la extracción de palabras clave en R?

He aquí algunas técnicas de extracción de palabras clave y sus casos de uso:

  • Encontrar palabras clave mediante el etiquetado de las partes de la oración para identificar sustantivos.
  • Buscar palabras clave a partir de colocaciones y co-ocurrencias
  • Búsqueda de palabras clave basada en el algoritmo Textrank
  • Búsqueda de palabras clave basada en RAKE (extracción automática rápida de palabras clave)
  • Búsqueda de palabras clave a partir de los resultados del análisis sintáctico de las dependencias (obtención del tema del texto)
extraer palabras clave de un texto

Extracción de sustantivos

Una forma fácil de encontrar palabras clave es fijarse en los sustantivos. Como cada término tiene una etiqueta de Partes de Oración, si ha anotado el texto con el paquete udpipe:

Código:

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

Colocación y co-ocurrencias

Obtenga la expresión de varias palabras fijándose en las colocaciones (palabras que se suceden unas a otras), en las co-ocurrencias de palabras dentro de cada frase o en las co-ocurrencias de palabras cercanas entre sí.

Código:

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 (red de palabras ordenadas por Google Pagerank)

Textrank es otro método de extracción de palabras clave. El paquete textrank R implementa el algoritmo Textrank. El algoritmo Textrank permite resumir textos y extraer palabras clave. Para construir una red de palabras, el algoritmo comprueba si las palabras se suceden. El algoritmo ‘Google Pagerank’ extrae palabras relevantes. Las palabras relevantes que se suceden se combinan para obtener palabras clave. TextRank no parte del texto original, ya que es un enfoque basado en grafos.

Código:

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)

Extracción rápida y automática de palabras clave: RAKE

RAKE es el siguiente algoritmo básico, acrónimo de Rapid Automatic Keyword Extraction (extracción rápida y automática de palabras clave). RAKE es un algoritmo de extracción de palabras clave independiente del dominio en el Procesamiento del Lenguaje Natural.

  1. El cálculo de la puntuación de cada palabra que forma parte de una palabra clave candidata se realiza del siguiente modo
    • entre las palabras de las palabras clave candidatas, el algoritmo examina cuántas veces aparece cada palabra y cuántas veces co-ocurre con otras palabras
    • cada palabra recibe una puntuación que es la relación entre el grado de la palabra (cuántas veces aparece con otras palabras) y la frecuencia de la palabra
  2. La puntuación RAKE de la palabra clave candidata completa se calcula sumando las puntuaciones de cada una de las palabras que definen la palabra clave candidata

Código:

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

Utiliza el análisis sintáctico de dependencias para obtener el sujeto nominal y el adjetivo del mismo.

Al ejecutar la anotación mediante udpipe, el campo dep_rel indica cómo se relacionan las palabras entre sí. Un token se relaciona con el padre mediante token_id y head_token_id . El campo dep_rel indica cómo se vinculan las palabras entre sí. El tipo de relaciones se encuentra en http://universaldependencies.org/u/dep/index.html.

Código:

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

¿Qué es la minería de textos?

La minería de textos en R se refiere al proceso de analizar y extraer información a partir de datos de texto utilizando el lenguaje de programación R y las bibliotecas y paquetes asociados. La minería de textos implica varios pasos, como la limpieza y el preprocesamiento de datos, la extracción de características, el modelado estadístico y la visualización.
El paquete tm proporciona funciones para leer datos de texto, limpiar y preprocesar los datos y crear matrices documento-término, que se utilizan habitualmente para analizar datos de texto. El paquete tidytext proporciona herramientas para convertir datos de texto en marcos de datos ordenados.
Algunas tareas habituales en la minería de textos son el análisis de sentimientos, el modelado de temas, la agrupación de documentos y la clasificación de textos. Estas tareas implican la aplicación de técnicas estadísticas y de aprendizaje automático para identificar patrones y relaciones en los datos de texto.

Las API de extracción de palabras clave son interfaces de software que permiten a los desarrolladores extraer palabras y frases clave de un texto mediante algoritmos y modelos de aprendizaje automático predefinidos. Estas API ofrecen una solución fácil de usar y escalable para automatizar el proceso de extracción de palabras clave, sin necesidad de que los desarrolladores construyan y entrenen sus propios modelos.

R es un lenguaje de programación de código abierto y un entorno de software para cálculo estadístico, análisis de datos y gráficos. R se utiliza ampliamente en el mundo académico, la investigación y la industria para tareas como el modelado estadístico, la visualización de datos, el aprendizaje automático y la minería de datos. Dispone de interfaces con otros lenguajes de programación, como Python y C++ . Encontrarás información más detallada con tutoriales en línea en GitHub.

Compartir publicación

Escritor de AI

img

Eskritor

Crear contenido generado AI