¿Cuáles son los mejores algoritmos para el análisis de sentimientos?

En un sentido amplio, puede decir que los mejores algoritmos a partir de ahora, dependiendo del tamaño / tipo de conjunto de datos que tenga, serán uno de los tres: derivados RNN, DeepForests o NBSVM.

Si tiene un conjunto de datos pequeño y está muy lejos del inglés cotidiano (por lo tanto, no puede usar word2vecs previamente entrenados, etc.), NBSVM es un algoritmo simple y efectivo. http://www.aclweb.org/anthology/…

Los bosques profundos hacia una alternativa a las redes neuronales profundas afirman ser mejores que incluso las redes neuronales profundas que solo usan vectores tfidf. Si se combinan con incrustaciones, estos modelos pueden funcionar realmente bien.

Los derivados RNN (como LSTM o GRU) son actualmente los mejores modelos que obtienen altas precisiones y se generalizan bien.

En ParallelDots, los primeros modelos de opinión eran Convnets en texto (implementado en puro theano en 2014, parecido al papel de Yoon Kim, cuyo código ahora puede encontrar en las demos de Keras), que luego cambiamos a LSTM (que puede ver actualmente en nuestro sitio web) y ahora estamos combinando algunas nuevas técnicas LSTM (auto atención y aprendizaje multitarea (MTL)) para mejorarlas aún más si las revisa en las próximas semanas. La mayoría de los puntos de referencia de la PNL actuales se están superando lentamente mediante el uso de una de una combinación de estas técnicas. (atención para predicción de secuencia, auto atención o MTL). Para obtener más detalles, puede consultar Salesforce Research o Sebastian Ruder.

La atención de Google [1706.03762] es todo lo que necesita es un documento muy emocionante, que podría reemplazar todos los derivados RNN de una vez por todas y parece un competidor muy fuerte para el futuro.

Curiosamente, estoy trabajando para compilar una publicación de blog detallada sobre esto por algún tiempo. Publicaré la publicación aquí cuando esté completa.

Se ha realizado mucha investigación en este campo tomando la ayuda de diferentes algoritmos que predicen los sentimientos de la retroalimentación cuando se dan como entrada. 4 algoritmos de clasificación bien conocidos que se pueden utilizar para realizar análisis de sentimientos son:

  1. Redes convolucionales
  2. SVM (máquina de vectores de soporte)
  3. Bernoulli ingenuo Bayes
  4. Red neuronal recurrente bidireccional

A continuación se muestra el estudio comparativo de Valiance Solutions sobre el desempeño del aprendizaje profundo y las técnicas de clasificación tradicionales para encontrar la polaridad de las revisiones de los clientes del dominio de Banca y Seguros.

Nuestro estudio mostró que las redes neuronales recurrentes bidireccionales con múltiples capas LSTM (memoria a largo plazo) lograron la precisión máxima del 88%. Este enfoque automatizado puede ser una opción ideal para que una organización encuentre una opinión sobre su producto después del lanzamiento.

Haga clic para descargar el trabajo de investigación: Creación de un sistema inteligente para el análisis de sentimientos

Además, comuníquese con nosotros para obtener más información sobre Inteligencia Artificial (IA), Aprendizaje automático (ML), Historias relacionadas con análisis en: Blog, Estudios de casos, Documentos de investigación

Las redes LSTM parecen ser las mejores con lo que actualmente se conoce y existe. Utilizando redes LSTM, básicamente tiene dos opciones, use incrustaciones optimizadas multidimensionales optimizadas de bolsa de palabras (por ejemplo, word2vec [1] o GloVe [2]) o cree sus propias incrustaciones de bolsa de palabras usando TF-IDF.

Si su conjunto de datos es pequeño, definitivamente debe usar word2vec o GloVe, ya que han sido capacitados en grandes corporaciones y deberían poder extraer suficiente información para ser útiles.

Consulte el tutorial a continuación para obtener un ejemplo más detallado de cómo usar la incrustación de palabras con Keras:

Uso de incrustaciones de palabras pre-entrenadas en un modelo Keras

Notas al pie

[1] Almacenamiento a largo plazo para Google Code Project Hosting.

[2] Vectores globales para la representación de palabras

More Interesting

¿Cuál es la probabilidad de que un determinado número binario de 6 bits divida perfectamente un binario aleatorio de 15 bits?

¿Cuál es la forma más eficiente de ordenar un millón de enteros de 32 bits?

¿Cómo podemos resolver el problema MENOS en SPOJ? Básicamente, ¿cómo hacemos la parte de retroceso para descubrir la secuencia de operaciones?

¿Qué puedo aprender ahora en solo 10 minutos que podría mejorar mi pensamiento algorítmico?

¿Cómo puedes visualizar algoritmos?

¿Cómo podría encontrar la métrica correcta que se utilizará para los vecinos más cercanos u otros algoritmos basados ​​en similitudes?

¿Cómo podemos almacenar los enlaces de una lista vinculada en una matriz dinámica?

¿Qué algoritmos debo saber para desarrollar una aplicación web sin conexión primero?

¿Qué significa Yoshua Bengio que la principal limitación de los algoritmos de aprendizaje automático actuales es que necesitan demasiados datos para aprender?

Dada una lista de enlaces con punteros derechos, cada elemento de la lista tiene un enlace descendente que contiene otra lista de enlaces con punteros descendentes, de modo que cada lista derecha y abajo están ordenadas. ¿Cuál es la forma más rápida de aplanar la lista de enlaces de forma ordenada?

¿Es correcto mi nuevo estado de ánimo? Ingresé a la programación desde un punto de vista de programación algorítmica y, como tal, tengo una inclinación a querer saber cómo funcionan las cosas debajo. Pero ahora, después de un tiempo en el mundo de los desarrolladores, finalmente tengo que darme cuenta de que se trata menos de eso. ¿Lo que usted dice?

Cómo escribir una función recursiva usando Python que toma una cadena como entrada e imprime cada carácter en una línea separada

¿Cuál es el libro correcto para comprar algoritmos de Amazon y para alguien que no tiene idea sobre el algoritmo?

¿Es posible determinar el valor máximo de puntos que se puede otorgar para una sola palabra Scrabble?

Si T (1) = 2 y T (n) viene dado por T (n / 2) + c para n> 1, ¿cómo calcula la complejidad del algoritmo?