Cómo comenzar a trabajar en un proyecto de análisis de sentimientos

Primero, necesita saber un poco sobre PNL si desea hacer un ‘análisis de sentimientos‘ serio y no solo un conteo de palabras positivo y negativo. Puede pasar por las conferencias de Coursera y conocer la PNL en general y también la tarea de Análisis de sentimientos. Una de las conferencias está dedicada al tema.

Antes de hacer su propio analizador de sentimientos, intente ejecutar este como se describe. No se preocupe, dice “aprendizaje profundo”, pero la primera parte es fácil. Tienes que hacer una pequeña configuración para Python y algunos paquetes de Python.

Si está viendo JAVA, consulte Deeply Moving: Deep Learning for Sentiment Analysis.

Una vez que comprenda lo que está sucediendo en esos paquetes. Seguramente podrás hacer lo tuyo. Para ello

  1. En primer lugar, comience a buscar tweets de Twitter desde el dominio que desee
  2. Haga un análisis manual de cuáles son exactamente los patrones de los sentimientos.
  3. Qué tipo de sentimientos pueden existir en el dominio que le interesa, o simplemente + ve y -ve también están bien
  4. Identifique las características, extráigalas, entrene y pruebe.

Puede utilizar WEKA (Data Mining with Open Source Machine Learning Software en Java) para el aprendizaje automático en caso de que desee hacerlo en Java. También hay otros paquetes de Aprendizaje automático, expóralos en busca del idioma que elijas.

¡La mejor manera de aprender es hacerlo!

Sentiwordnet es un diccionario que dice, más que el significado, la polaridad de una oración. Si desea usar Sentiwordnet, todo lo que necesita hacer es dividir su texto en palabras, encontrar puntaje positivo y negativo para esas palabras, combinarlas de acuerdo con sus reglas (lo más simple es agregar).

Lo que el Usuario mencionó en su tercer punto ha demostrado ser un enfoque útil (ver SemEval 2013, SemEval 2014). La gente ha construido sistemas muy simples que son mejores que otras implementaciones simplemente combinando puntajes de diferentes léxicos. Mohammad 2013 , cuyo sistema ha sido State of the Art, construyó un léxico a partir de un corpus bien curado. Su léxico de sentimiento también está disponible en línea al igual que Sentiwordnet. Busca el léxico del sentimiento NRC.

Los enfoques de aprendizaje automático son de todos modos más útiles. Puedes jugar con las características (ngrams, estructura de oraciones, señales adicionales, etc.). Prefiero combinar las puntuaciones de léxico como características para mi modelo ML.

Los enfoques de aprendizaje automático pueden estar sesgados hacia sus datos de entrenamiento. Por lo general, hay mucha diferencia en el vocabulario en diferentes dominios / temas. Las palabras / características que tiene en un corpus que contiene personas que comentan sobre películas pueden estar totalmente ausentes en un corpus de reseñas de restaurantes.

De todos modos, pareces ser nuevo. Juega con todos los enfoques. Descubre sus ventajas y desventajas por ti mismo. Si te quedas atascado, publica la pregunta en Quora 🙂

Lea todo lo que pueda sobre el aprendizaje supervisado y la clasificación en particular.
Cree un clasificador: he usado SVM y Naive Bayes.
Obtenga un montón de tweets, digamos 5000.
Crea un conjunto de entrenamiento equilibrado de c. 200-250 tweets, leyendo las publicaciones y etiquetándolas como positivas o negativas.
Entrena a tu clasificador.
Ponga sus tweets sin clasificar (conjunto de prueba) a través del clasificador.
Lea algunos cientos de tweets clasificados, tal vez el 10% del total. Anote cuántos se clasificaron erróneamente: acepte el nivel de precisión que obtuvo la primera vez o modifique el conjunto de entrenamiento.

Para comenzar, se requiere un conjunto de datos que tenga oraciones etiquetadas como positivas, negativas y neutrales. Una búsqueda rápida en Google puede proporcionar varios conjuntos de datos de código abierto.

Ahora, de alguna manera, necesitamos convertir cada oración en alguna forma numérica para aplicar cualquier algoritmo. Esta conversión se conoce como incrustaciones de palabras. Hay 2 opciones para hacer esto. Utilice una biblioteca de inclusión de palabras ya construida como word2vec, spaCy, GloVe en python que proporcionará directamente un vector para cada oración o cree un modelo de inclusión de palabras desde cero. Según los requisitos de complejidad y los algoritmos de disponibilidad computacional como bolsa de palabras, se puede usar N gram, skip gram, CBOW. Sin embargo, usar una biblioteca ya construida tiene más sentido.

Una vez que tenemos vectores de oraciones, se puede aplicar un algoritmo de clasificación. Nuevamente, según los requisitos de complejidad, se pueden usar algoritmos ML como Random Forest, SVM, Naive Bayes, etc. y algoritmos DL como MLP, CNN, LSTM, BiLSTM que predicen la etiqueta final.

Desde el punto de vista del principiante, la representación vectorial usando word2vec seguido de probar clasificadores ML usando scikit-learn es lo suficientemente bueno.

De sus preguntas parece que preferiría usar herramientas para resolver este problema en lugar de construirlo usted mismo. Dependiendo del sitio web y de los comentarios, puede usar una variedad de soluciones para capturar el sentimiento de los comentarios de su sitio web. En Enginuity: Social Listening y Content Analytics Tools ayudamos a los editores de sitios web a hacer esto fácilmente y, además, ofrecemos un sentimiento agregado para todo el sitio web. También puede extraer los comentarios del sitio web y luego usar una API de análisis de sentimientos como la nuestra para obtener las mejores opiniones si desea crear su propia solución.

More Interesting

¿Es posible crear un 'ser' inteligente (AI) no una 'máquina'?

¿Es posible tener experiencia en desarrollo web, desarrollo de Android, resolución de problemas, IA y ML para tener un buen trabajo, o solo necesito concentrarme en un campo y no fusionar campos?

¿Cuáles son los tipos de problemas que se pueden resolver con las redes neuronales?

Si pudiera construir una plataforma de contenido (piense en la entrega de noticias) desde cero con el objetivo de escalar a millones de usuarios, ¿qué infraestructura utilizaría?

¿Cuáles son algunos estudios de caso excelentes en el aprendizaje automático?

¿Existe una definición matemática para una máquina de vectores de soporte?

¿Dónde puedo encontrar un código de Python para preprocesar el conjunto de datos?

Cómo discriminar una señal del ruido en la última investigación y desarrollo de AI / ML

Computación paralela: ¿Cuáles son los buenos enfoques y fuentes para programar CUDA en Machine Learning con datos a gran escala?

Si hay investigaciones que muestran que una máquina interactúa con un humano dentro de la realidad a través de una conciencia cuántica, ¿cómo se recibirá?

¿Qué piensa Andrew Ng sobre Deep Learning?

Las entidades biológicas inconscientes que simplemente reaccionan automáticamente a su entorno han evolucionado y se han vuelto autoconscientes. ¿Qué impide que AI lo haga?

¿Cómo puede beneficiarse el sector financiero con el uso de LD y AI?

Cómo crear rápidamente un prototipo de una aplicación de reconocimiento de imágenes utilizando el aprendizaje automático y la red neuronal

¿Es Bayes jerárquico básicamente una introducción de hiperparámetros en el modelo?