Análisis de sentimiento y aprendizaje automático en R
El análisis de sentimientos se puede realizar fácilmente mediante el aprendizaje automático. Este artículo presentará cómo utilizar métodos de aprendizaje automático para realizar análisis de sentimientos en lenguaje R. Los paquetes de análisis de sentimientos y minería de texto más amplios desarrollados por Timothy P. Jurka ya están bien establecidos en el lenguaje R. Puede consultar el paquete de emociones y el increíble paquete RTextTools. De hecho, Timothy también escribió un paquete R, maxtent, para realizar regresión logística multivariada (también conocida como entropía máxima) en condiciones de poca memoria.
Sin embargo, el paquete RTextTools no contiene métodos puramente bayesianos. El principal desarrollador de este paquete es Dieter Wien (Technische Universität Vienna). El desarrollador principal de este paquete es David Meyer.
La gente todavía necesita entender el análisis de texto. Es un hecho bien establecido que el análisis de texto se puede manejar en R (consulte Procesamiento del lenguaje natural en R para obtener más detalles). El paquete Tm es parte de este éxito: es un marco R para aplicaciones de minería de texto. Hace un buen trabajo limpiando texto (derivando, eliminando palabras vacías, etc.) y convirtiéndolo en una matriz de documento de Word (dtm). A continuación se muestra una introducción. La parte más importante del análisis de texto es obtener el vector de características de cada documento, donde las características de las palabras son las más importantes. Por supuesto, también puede ampliar las características de las palabras a frases de dos sílabas, conectivas triples, conectivas n veces, etc. En esta publicación, demostraremos el uso de características de palabras como ejemplo.
Tenga en cuenta que el paquete ngram en R se utiliza para manejar n conectivos. En el pasado, el paquete Rweka proporcionaba funciones para manejar este problema; si está interesado, consulte este estudio de caso. Ahora puede hacer esto configurando el parámetro ngramLength de la función create_matrix en el paquete RTextTools.
El primer paso es leer los datos:
Crear la matriz de documento de Word:
Ahora podemos usar este conjunto de datos para entrenar un modelo Naive Bayes. Tenga en cuenta que e1071 requiere que la variable de respuesta sea numérica o factorial. Usamos el siguiente método para convertir datos de tipo cadena a factorial:
Prueba la precisión de los resultados:
Obviamente, este resultado es el mismo que el obtenido usando Python (este artículo La publicación del blog presentará los resultados obtenidos usando Python).
¿Qué pasa con otros métodos de aprendizaje automático?
Aquí usamos el paquete RTextTools para manejarlo.
Primero, especifique los datos apropiados:
Segundo, entrene el modelo usando varios algoritmos de aprendizaje automático:
Ahora, podemos usar el modelo entrenado para probar Set Clasificación:
¿Qué tan precisa es?
Resumen de los resultados del modelo (especialmente la validez de los resultados):
Validación cruzada de los resultados:
Los resultados se pueden encontrar en Aparece mi página Rpub. Como puede ver, maxent tiene la misma precisión que el Bayes ordinario, mientras que los otros métodos dan resultados menos precisos. Esto es comprensible ya que el conjunto de datos que obtuvimos es muy pequeño. Después de ampliar el conjunto de entrenamiento, podemos utilizar métodos más sofisticados para realizar análisis de sentimiento en tweets y obtener mejores resultados. El ejemplo de demostración es el siguiente:
Análisis de sentimiento de tweets
Los datos provienen de victornep. victorneo demuestra el análisis de sentimiento de los tweets usando Python. Aquí usamos R:
Leer los datos:
Primero, pruebe el bayesiano ordinario
Luego, pruebe otros métodos:
Aquí , también queremos obtener los resultados de las pruebas formales.
Analytics@ensemble_summary: Resumen de toda la precisión/cobertura
Ahora echemos un vistazo a los resultados:
En comparación con el método bayesiano ordinario, los resultados de otros algoritmos son mejores, recuerde. La precisión es mejor que 0,95. Los resultados se pueden ver en Rpub
Enlace original: http://www.xueqing.cc/cms/article/107