Categories: CienciaNoticias

Técnicas EDA intermedias para PNL

Cómo realizar un análisis exploratorio de datos en datos de texto para el procesamiento del lenguaje natural

Imagen del autor. El análisis exploratorio de datos (EDA) para datos de texto es más que contar caracteres y términos. Para llevar su EDA al siguiente nivel, puede mirar cada palabra y categorizarla o puede analizar el sentimiento general de un texto.

El análisis exploratorio de datos para datos de texto es más que contar caracteres y términos.

En este artículo, veremos algunas técnicas EDA intermedias para datos de texto:Etiquetado de parte del discurso: Veremos el etiquetado de parte del discurso (POS) y cómo usarlo para obtener los adjetivos, sustantivos, verbos, etc. más frecuentes.Análisis de los sentimientos: Veremos el análisis de sentimientos y exploraremos si el conjunto de datos tiene una tendencia positiva o negativa. Al igual que en el artículo anterior, usaremos el conjunto de datos de reseñas de ropa de comercio electrónico para mujeres de Kaggle para este artículo nuevamente. Para simplificar los ejemplos, usaremos utilice 450 críticas positivas (puntuación == 5) y 450 críticas negativas (puntuación == 1). Esto reduce la cantidad de puntos de datos a 900 filas, reduce la cantidad de clases de calificación a dos y equilibra las revisiones positivas y negativas. Además, solo usaremos dos columnas: el texto de la revisión y la calificación. conjunto de datos se ve así:Jefe del conjunto de datos simplificado de reseñas de ropa de comercio electrónico para mujeres (Imagen del autor) En las técnicas fundamentales de EDA, cubrimos las palabras y bigramas más frecuentes y notamos que adjetivos como “genial” y “perfecto” se encontraban entre las palabras más frecuentes. en las críticas positivas. Con el etiquetado de POS, puede refinar la EDA en los términos más frecuentes. Por ejemplo, podrías explorar, qué adjetivos o verbos son más comunesEl etiquetado .POS toma cada token en un texto y lo categoriza como sustantivos, verbos, adjetivos, etc., como se muestra a continuación:Si tiene curiosidad acerca de cómo visualicé esta oración, puede consultar mi tutorial aquí: Para verificar qué etiquetas POS son las más comunes, comenzaremos creando un corpus de todos los textos de revisión en DataFrame: corpus = df[“text”].valores.tolist()Corpus como lista de textos de revisión (Imagen del autor) A continuación, tokenizaremos todo el corpus como preparación para el etiquetado de POS. from nltk import word_tokenize
tokens = word_tokenize(” “.join(corpus))Lista de tokens (Imagen del autor) Luego, etiquetaremos POS cada token en el corpus con el conjunto de etiquetas gruesas “universal”: import nltk
etiquetas = nltk.pos_tag(fichas,
conjunto de etiquetas = “universal”)Tokens etiquetados de POS (Imagen del autor) Al igual que en el análisis de frecuencia de términos del artículo anterior, crearemos una lista de etiquetas eliminando todas las palabras vacías. Además, solo incluiremos palabras de una etiqueta específica, por ejemplo, adjetivos. Luego, todo lo que tenemos que hacer es usar la clase Counter como en el artículo anterior. from collections import Countertag = “ADJ”
stop = set(stopwords.words(“english”))# Obtener todos los tokens que están etiquetados como adjetivos
etiquetas = [word for word, pos in tags if ((pos == tag) & ( word not in stop))]# Cuenta los adjetivos más comunes
most_common = Counter(tags).most_common(10)# Visualiza las etiquetas más comunes como diagramas de barras
palabras, frecuencia = [], []
para word, cuente en most_common:
palabras.append(palabra)
frecuencia.append(recuento)sns.barplot(x = frecuencia, y = palabras) A continuación, puede ver los 10 adjetivos más comunes para las críticas negativas y positivas:Adjetivos más frecuentes separados por clase “Calificación” (Imagen del autor). A partir de esta técnica, podemos ver que palabras como “pequeño”, “encajar”, ​​“grande” y “grande” son las más comunes. Esto podría indicar que los clientes están más decepcionados con el ajuste de una prenda que, por ejemplo, con su calidad. La idea principal del análisis de sentimientos es comprender si un texto tiene un tono positivo o negativo. Por ejemplo, la oración “Me encanta este top”. tiene un sentimiento positivo y la oración “Odio el color”. tiene un sentimiento negativo. Puede usar TextBlob para un análisis de sentimiento simple como se muestra a continuación: from textblob import TextBlobblob = TextBlob (“Me encanta el corte”) blob.polarityLa polaridad es un indicador de si una declaración es positiva o negativa y es un número entre -1 (negativo) y 1 (positivo). La oración “Me encanta el corte” tiene una polaridad de 0,5, mientras que la oración “Odio el color” tiene una polaridad de -0,8. La oración combinada “Me encanta el corte pero odio el color” tiene una polaridad de -0,15 .Para varias oraciones en un texto, puede obtener la polaridad de cada oración como se muestra a continuación: texto = “Me encanta el corte. Recibo muchos elogios. Me encanta.”
[sentence.polarity for sentence in TextBlob(text).sentences]Este código devuelve una matriz de polaridades de [0.5, 0.0, 0.5]. Eso significa que la primera y la última oración tienen un sentimiento positivo, mientras que la segunda oración tiene un sentimiento neutral. Si aplicamos este análisis de sentimiento a todo el marco de datos de esta manera, df[“polarity”] = gl[“text”].mapa(lambda x: np.media([sentence.polarity for sentence in TextBlob(x).sentences]))podemos trazar una comparación de diagrama de caja con el siguiente código:sns.boxplot(data = df,
y = “polaridad”,
x = “calificación”) A continuación, puede ver los diagramas de caja de polaridad para las críticas negativas y positivas:Polaridad separada por la clase “Calificación” (Imagen del autor). Como era de esperar, podemos ver que las reseñas negativas (calificación == 1) tienen una polaridad general más baja que las reseñas positivas (calificación == 5). En este artículo, analizamos algunas técnicas EDA intermedias para datos de texto:Etiquetado de parte del discurso: Analizamos el etiquetado de parte del discurso y cómo usarlo para obtener los adjetivos más frecuentes como ejemplo.Análisis de los sentimientos: Analizamos el análisis de opiniones y exploramos las polaridades de los textos de revisión. A continuación, puede encontrar todos los fragmentos de código para una copia rápida:

aliintizar71

Recent Posts

Máquina de mano Lean, Green, Raspberry Pi

Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…

1 year ago

Cómo pronosticar series de tiempo usando autorregresión

Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…

1 year ago

Aquí están todas las formas en que puede cargar su AirPods Pro

Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…

1 year ago

Las principales noticias tecnológicas del lunes: la prohibición de clientes de terceros de Twitter parece no ser un accidente

Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…

1 year ago

AirPods Max 2: aquí están las características más solicitadas

Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…

1 year ago

El remake de Dead Space continúa luciendo terriblemente genial en el nuevo tráiler de la historia

El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…

1 year ago