"Los jóvenes de que" el análisis de sentimientos Comentario - regresión de aprendizaje de máquina lógica

fondo

"Los jóvenes de que" este series de televisión doméstica influencia es aún muy grande, taquilla alcanzó 1,4 mil millones, desde el punto de vista de la taquilla, la película en series de televisión producida en el continente más éxito, Actor: Yi Xi olía un mil + ZhouDongYu, por supuesto, hará que algunos efectos de tráfico, pero muchos actores de la trama, la evaluación en funciones de la película es bastante buena, incluyendo a su hermana también es muy aficionado, sino que también en la "noche blanca" y "sospecha de plagio Keigo Higashino de X de dedicación ", los calientes, haciendo que muchos fans originales insatisfechos. Aquí en el uso de regresión logística (regresión logística) para "joven que" fueron algunas de análisis Comentario sentimiento, echar un vistazo a cómo la gente ha estado viendo la evaluación de la película.

Obtener datos

Los datos de IMDb - "Eres joven," conseguir en el Comentario
Aquí Insertar imagen Descripción
Aunque las cifras muestran que hay 220.200 comentarios, y sólo se arrastraron a 600, pero un pequeño grupo de muestras de datos es suficiente
proceso de rastreador no es duro, no demasiado general

proceso de datos

Bibliotecas y herramientas necesarias

import pandas as pd
import jieba
import re

Herramientas : jupyter Notebook

limpieza de datos

siguiente figura que leen datos de
Aquí Insertar imagen Descripción
contenido de datos: nombre, comentario, evaluación
ya que el contenido Comentario arrastró en 500 muestras y 100 muestras, es necesario primero de integrar dos conjuntos de datos en un conjunto de datos
usando pandas la combinación de método puede ser
Aquí Insertar imagen Descripción
en calificación de este formato de columna, de datos o lista, observabilidad es relativamente pobre, es fácil inferir 10-50 se puede dividir en cinco niveles, lo cual es algunas críticas estrella que vimos en la página, con el fin de facilitar el análisis, se puede escribir una función de calificación se divide en cinco grados 1-5

def rating(e):
    if '50' in e:
        return 5
    elif '40' in e:
        return 4
    elif '30' in e:
        return 3
    elif '20' in e:
        return 2
    else:
        return 1
data['new_rating'] = data['rating'].map(rating)
data.head()

Después de ejecutar los datos que se muestran a continuación
Aquí Insertar imagen Descripción
entonces la pregunta de nuevo, sólo alabar para la evaluación de la retroalimentación negativa y puntos malos, pero la calificación tiene cinco niveles de cómo hacerlo?
Samsung puede omitirse primero lo valoran, probablemente porque estas evaluaciones evaluación fue neutral, y después de cuatro estrellas y una estrella como se recibió, denotado por 1; a continuación, un satélite de posicionamiento Premio y pobres, representada por -1

new_data = data[data['new_rating']!=3]
new_data['sentiment'] = new_data['new_rating'].apply(lambda x : +1 if x>3 else -1)
new_data

Aquí Insertar imagen Descripción
Sólo 557 muestras, lo que indica que el 43 por Samsung evaluación neutral omite
Aquí Insertar imagen Descripción
relación de elogio y Poors es de aproximadamente 3,5: 1, se puede observar como la película es todavía un montón de gente
, pero ha habido ninguna muestra de problemas de equilibrio, esto tendrá un impacto tarde modelo

Determinar cómo un breve comentario es bueno o malo?
Te amo Te odio
como odio

Así que no puede ser juzgado de acuerdo con el número de palabras en una frase, por lo que el siguiente paso con jieba lleva a cabo todas las bibliotecas palabra para un breve comentario
antes de la primera palabra podemos analizar el texto, habrá una gran cantidad de contenido no tiene ningún efecto sobre el análisis de los sentimientos, tales como Digital y las letras, así que cuando la palabra se pueden eliminar

#分词
def cut_word(text):
    text = jieba.cut(str(text),cut_all=False)
    return ' '.join(text)
new_data['new_short'] = new_data['short'].apply(cut_word)
#剔除数字
def remove_num(new_short):
    return re.sub(r'\d+','',new_short)
#剔除字母
def remove_word(new_short):
    return re.sub(r'[a-z]+','',new_short)
new_data['new_short'] = new_data['new_short'].apply(remove_num)
new_data['new_short'] = new_data['new_short'].apply(remove_word)

resultados de la segmentación como
Aquí Insertar imagen Descripción
texto que se pueden ver algunas palabras con sentimientos personales, tales como la dedicación, afecto, etc.

modelos de regresión logística

bibliotecas necesarias

from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.linear_model import LogisticRegression
import numpy as np
from pandas import DataFrame

Análisis y Modelización

El primer paso consiste en dividir el análisis de datos de buena datos, dividida en un conjunto de entrenamiento y de prueba

train_data,test_data = train_test_split(new_data,train_size = 0.8,random_state = 0)
#文本提取
transfer = CountVectorizer()
train_word = transfer.fit_transform(train_data['new_short'])
test_word = transfer.transform(test_data['new_short'])
#稀疏矩阵
print('new_data:\n',train_word.toarray())
#特征值
print('feature_name:\n',transfer.get_feature_names())

Un segundo paso después de la extracción valor de la característica texto palabra puede ser generado correspondiente a una matriz dispersa, valores propios y matriz dispersa correspondientes
al valor de característica y el valor objetivo de regresión logística modelar un tercer paso, es decir, de modo que el conjunto de entrenamiento se pretende juntos para generar un modelo

x_train,x_test,y_train,y_test = train_test_split(new_data['new_short'],new_data['sentiment'],train_size = 0.8,random_state = 0)
x_train = train_word
x_test = test_word
model = LogisticRegression()
model.fit(x_train,y_train)
y_predict = model.predict(x_test)
print('布尔比对:\n',y_predict==y_test)
score = model.score(x_test,y_test)
print('模型准确率:\n',score)

Los resultados obtenidos y el modelo predijo con exactitud la tasa sigue
Aquí Insertar imagen Descripción
la exactitud del modelo fue del 85,7%, los resultados de los modelos, en general,
podemos destacar algunos ejemplos del equipo de prueba para validar el texto, mirada en el análisis de opiniones es la correcta

example = test_data[50:55]
example[['short','new_rating','sentiment']]

Aquí Insertar imagen Descripción
Si desea observar a los comentarios completos, puede escribir un iterador, el Comentario salida completa
pero en la figura podemos ver estas Comentario semántica es cómo, por ejemplo, la tercera participación de plagio, la que corresponde el sentimiento es de -1
a través de regresión logística la predict_proba puede obtener una evaluación de la probabilidad de ganar, es decir, la probabilidad más cercano a 1, mayor será la probabilidad de este breve comentario es la alabanza, el comentario empatía por la diferencia en la evaluación de la probabilidad cercana a cero

possibility = model.predict_proba(test_word)[:,1]
test_data.loc[:,'possibility'] = possibility
test_data.head()

Los datos obtenidos en la siguiente figura
Aquí Insertar imagen Descripción
después del índice se puede obtener en el "joven que" evaluar la mejor cinco y cinco peores Comentario
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
misma iteración para ver los comentarios completos, se puede ver que la gloria Top5 de escritura, pero también más tener buen ánimo, la mayoría están diciendo que la película refleja un problema social - acoso escolar; y pobres tienen Top5 a cabo puntiaguda que la película se copia, haciendo que mucha gente infeliz
Aquí Insertar imagen Descripción
imagen muestra el número de veces que la palabra aparece más en el comentario:
( actuando como la juventud o la esperanza ) - estas palabras deben estar fuera como a algunos de los elogios pertenece a las palabras positivas, puede influir en la evaluación emocional lleva un
( acoso escolar bullying protección ) - estas palabras son las palabras de un fondo de la película declaración, aunque también algunos de tener una emoción negativa, pero en base a la semántica necesarios para determinar la sentencia Comentario buenos puntos negativos
( plagio ) - esta palabra aparece 67 veces, mientras que el sentimiento -1 ensayo un total de sólo 122, el análisis también se puede aprender con evaluación de plagio fue probablemente mala crítica

resumen

Una taquilla puede llegar a 14 millones de películas, debe tener su propia y única, ya sea fundido o el fondo del tema, pero una película está destinada a determinar el plagio no será una película buena, como pasador, en "Adolescente que "no se puede hacer un juicio si es o no el plagio, pero los derechos de propiedad intelectual de un tercero no puede ser violado es cierta!

Sin respuesta pública "gato de toffee" detrás del escenario "jóvenes" le pueden hacer el código fuente y los datos de referencia, gracias por el apoyo.

Supongo que te gusta

Origin blog.51cto.com/14746554/2476358
Recomendado
Clasificación