Cómo extraer términos importantes de datos de texto no estructurados

En estos días se realizan muchos análisis de texto, y la extracción de términos o palabras es un caso de uso bastante común. No mencionaré los detalles técnicos, ya que varían según el idioma, el marco o la tecnología que utilice. Sin embargo, el enfoque general implica los siguientes pasos:

  1. Identificación del texto que debe extraerse y creación de un corpus.
  2. Programar y procesar las palabras en el corpus, para comprender las palabras raíz (después de eliminar varios sufijos, detener palabras, etc.)
  3. Desarrollar o utilizar medidas estadísticas descriptivas de los términos derivados en el corpus
  4. Un siguiente paso opcional puede ser el análisis para encontrar sentimientos u otras características clave en el conjunto de datos.

En general, el paso 3 nos permite producir histogramas de frecuencia de término, o nubes de palabras, que pueden convertirse en visualizaciones efectivas que transmiten el contenido presente en un conjunto de datos de texto o corpus.

Encontrará variaciones en los mismos pasos básicos, cuando busque análisis de texto en marcos como NLTK (Python) o tm (R).

La limpieza de texto es una parte importante del análisis de texto. Los datos de texto contienen espacios en blanco, signos de puntuación, palabras vacías, etc., que deben eliminarse de los datos antes de poder realizar cualquier análisis. Los siguientes pasos de preprocesamiento se deben realizar antes de hacer cualquier análisis en R.

  1. Creación de Corups: Una biblioteca muy útil para realizar los pasos mencionados anteriormente y la minería de texto en R es el paquete ” tm “. La estructura principal para administrar documentos en tm se llama Corpus, que representa una colección de documentos de texto.

library("tm")

docs <- Corpus(VectorSource(data))

  1. Minúsculas : Convierta el texto a minúsculas, de modo que palabras como "escribir" y "Escribir" se consideren la misma palabra para el análisis
  2. Eliminar números : también es importante eliminar números del texto.
  3. Eliminar puntuación: ¿ Cómo eliminar la puntuación del corpus? ; '":
  4. Eliminar espacios adicionales
  5. Eliminación de palabras de detención: elimine palabras de detención en inglés, por ejemplo, "the", "is", "of", etc.
  6. Derivación: La derivación es el proceso de reducir las palabras flexionadas (o algunas veces derivadas) a su raíz, base o raíz de la palabra. Por ejemplo, cambiar "automóvil", "automóviles", "automóvil", "automóviles" a "automóvil"

El siguiente es el código R para el proceso de limpieza de datos anterior

# Convert the text to lower case

docs <- tm_map(docs, content_transformer(tolower))

# Remove numbers

docs <- tm_map(docs, removeNumbers)

# Remove english common stopwords

docs <- tm_map(docs, removeWords, stopwords("english"))

# Remove punctuations

docs <- tm_map(docs, removePunctuation)

# Eliminate extra white spaces

docs <- tm_map(docs, stripWhitespace)

Para detener el texto, necesitaremos otra biblioteca, conocida como SnowballC.

Usando la biblioteca SnowballC para detener texto

# Text stemming (reduces words to their root form)

library("SnowballC")

docs <- tm_map(docs, stemDocument)

# Remove additional stopwords

docs <- tm_map(docs, removeWords, c("clintonemailcom", "stategov", "hrod"))

Después de estos pasos, nuestro corpus de texto está limpio y listo para cualquier análisis.

Parece que estás tratando esto como un problema de dos etapas, cuando en realidad es un problema de una etapa. Al extraer términos de datos no estructurados, sin mirar el problema para el que necesita extraerlos, está potencialmente privando a su clasificador de características importantes.

Si el problema es la reducción de la dimensionalidad, debe buscar técnicas como la asignación de Dirichlet latente (LDA) o el análisis semántico latente (LSI). Reducen la dimensionalidad de sus documentos de manera no supervisada. Las características extraídas también pueden ser utilizadas por un clasificador de aprendizaje automático.

Si el objetivo final es específicamente un objetivo de aprendizaje supervisado, debe considerar técnicas de selección de características. Algunos de estos están disponibles en API Reference – documentación de scikit-learn 0.19.0. Específicamente, mire en chi2 y la información mutua. También se sabe que reescalar pesos usando tf – idf mejora el rendimiento en una variedad de tareas de Clasificación de texto.

More Interesting

¿Qué es un "conjunto típico" en la estimación de densidad de probabilidad para la inferencia bayesiana?

¿Cuál es el potencial empresarial del aprendizaje automático / inteligencia artificial?

¿Cuál es el mejor tutorial de Python para el aprendizaje automático?

En el procesamiento del lenguaje natural para realizar análisis semántico, ¿es útil y necesario generar un árbol de análisis?

¿Puede el aprendizaje automático ayudarnos a comprender el cerebro humano?

Al entrenar una red neuronal, ¿es común tener un tamaño de paso diferente para los parámetros en cada capa y las compensaciones al realizar el Descenso de gradiente?

¿Qué es la traducción automática estadística?

¿En qué deberían centrarse los gerentes de productos de software que son nuevos en AI / Machine Learning? Los cursos en línea son extremadamente técnicos. ¿Es eso lo que se necesita?

¿Qué tipo de matemática se usa en el aprendizaje automático? ¿Puedo aprender ML sin él?

¿Cómo se interpretan la precisión y el recuerdo en una tarea de segmentación?

¿Es posible que una aplicación de aprendizaje automático que ejecute el mismo algoritmo y se alimente con los mismos datos para aprender cosas diferentes en pruebas de entrenamiento separadas?

¿Qué debo leer para desarrollar un rastreador web que raspe un subconjunto de Internet y me brinde los enlaces de los sitios web que son tiendas de abarrotes?

¿Cuál es el mejor sitio web de aprendizaje automático?

¿Qué tipo de antecedentes estadísticos debo tener para tomar el curso de Reconocimiento de patrones? Cual estadística Qué libro es útil para mi preparación?

¿Cómo comenzarías en Computación ubicua y programación para ello?