Saltar al contenido

Características del edificio a partir de los datos de texto

De los datos del texto en bruto se pueden extraer muchas características sencillas pero importantes, como se examina a continuación.

Longitud del personaje

La hipótesis es que la longitud de los personajes de un tweet varía según el sentimiento que conlleva. La primera línea de código a continuación crea una nueva variable $0027character_cnt$0027 que toma el texto de la variable $0027Tweet$0027 y calcula el conteo de los caracteres en el texto. La segunda línea realiza la operación $0027groupby$0027 en la etiqueta $0027Sentiment$0027 e imprime la longitud media de los caracteres a través de las etiquetas.

Características del edificio a partir de los datos de texto
Características del edificio a partir de los datos de texto

El resultado muestra que los sentimientos neutrales tienen una cuenta de caracteres más baja en promedio, en comparación con los tweets positivos y negativos. Esta inferencia puede ser útil para separar los tweets neutros de los demás tipos de tweets.

12dat[$0027character_cnt$0027]= dat[$0027Tweet$0027].str.len()dat.groupby($0027Sentiment$0027)[$0027character_cnt$0027].mean()

pitón

Salida:

12345SentimentNegative 91.763401Neutral 85.379822Positive 94.825083Nombre: character_cnt, dtype: float64

Recuento de palabras

Al igual que el recuento de caracteres en un tweet, el recuento de palabras también puede ser una característica útil. La primera línea de código a continuación crea una nueva variable $0027word_counts$0027 que toma el texto de la variable $0027Tweet$0027 y calcula el conteo de las palabras en el texto. La segunda línea realiza la operación $0027groupby$0027 en la etiqueta $0027Sentiment$0027 e imprime la longitud media de las palabras a través de las etiquetas.

El resultado muestra que los sentimientos negativos tienen el promedio más alto de palabras, lo que sugiere que los clientes decepcionados tienden a escribir tweets más largos. Esta inferencia puede ser útil para separar las etiquetas de «sentimiento».

12dat[$0027word_counts$0027]= dat[$0027Tweet$0027].str.split().str.len()dat.groupby($0027Sentiment$0027)[$0027word_counts$0027].mean()

pitón

Salida:

12345SentimentNegative 15.336414Neutral 12.356083Positive 14.676568Nombre: word_counts, dtype: float64

Longitud media de los caracteres por palabra

Dado que hemos creado las características $0027character_cnt$0027 y $0027word_counts$0027, es fácil crear la proporción de estas dos variables que dará la longitud media del carácter por palabra en cada tweet.

La primera línea de código de abajo crea una nueva variable $0027caracteres_por_palabra$0027 que es la relación entre el número de caracteres y el número de palabras en un tweet. La segunda línea realiza la operación $0027groupby$0027 en la etiqueta $0027Sentiment$0027 e imprime la longitud media de caracteres por palabra a través de las etiquetas.

El resultado muestra que los sentimientos neutrales tienen la mayor longitud media de caracteres por palabra. Esta inferencia puede ser útil para separar las etiquetas de «Sentimiento».

12dat[$0027caracteres_por_palabra$0027]= dat[$0027carácter_cnt$0027]/dat[$0027recuento_de_palabras$0027]dat.groupby($0027Sentimiento$0027)[$0027caracteres_por_palabra$0027].mean()

pitón

Salida:

12345SentimentNegative 6.191374Neutral 7.425695Positive 6.687928Nombre: characters_per_word, dtype: float64

Recuento de caracteres especiales

También es posible crear una característica que contenga el conteo de caracteres especiales como «@» o «#». La primera línea de código que aparece a continuación crea una nueva característica «spl» que toma el texto de la variable «Tweet» y calcula el conteo de las palabras que comienzan con el carácter especial «@». Utilizamos la función comienza con para realizar esta operación. La segunda línea imprime las cinco primeras observaciones que contienen la variable $0027Tweet$0027 y la variable $0027spl$0027.

12dat[$0027spl$0027]= dat[$0027Tweet$0027].apply(lambda x:len([x por x en x.split()si x.empieza con($0027@$0027)]))dat[[[$0027Tweet$0027,$0027spl$0027]].head()

pitón

Salida:

| 2… 1… freak YOU @APPLE 1… 2… freak you @apple 1… 3… @apple you ruined my life 1… 4… @apple I hate apple!!!!!! | 1 |

Recuento de números

Al igual que creamos una característica sobre el recuento de palabras en un tweet, también podemos crear una característica sobre el recuento de números en un tweet. La primera línea de código que aparece a continuación crea una nueva variable $0027num$0027 que toma el texto de la variable $0027Tweet$0027 y calcula el recuento de los números en el texto. La segunda línea realiza la operación $0027groupby$0027 en la etiqueta $0027Sentiment$0027 e imprime el promedio de conteo de números a través de las etiquetas.

El resultado muestra que las etiquetas de sentimientos neutrales tienen el promedio más bajo de números en un tweet, mientras que los tweets negativos tienen el promedio más alto.

123#Número de numericsdat[$0027num$0027]= dat[$0027Tweet$0027].apply(lambda x:len([x para x en x.split()if x.isdigit()]))dat.groupby($0027Sentiment$0027)[$0027num$0027].mean()

pitón

Salida:

12345SentimentNegative 0.125693Neutral 0.068249Positive 0.108911Nombre: num, dtype: float64