¿Qué tipo de algoritmos utilizamos para el análisis de sentimientos? ¿Hay alguna lista para los algoritmos y sobre su estructura?

Básicamente existen 2 tipos generales de algoritmos para el análisis de sentimientos.

Técnicas basadas en Léxico basadas en Aprendizaje VS

  • Las técnicas basadas en léxico utilizan un diccionario para realizar análisis de sentimientos a nivel de entidad. Esta técnica utiliza diccionarios de palabras anotadas con su orientación semántica (polaridad y fuerza) y calcula una puntuación para la polaridad del documento. Por lo general, este método ofrece alta precisión pero baja recuperación.
  • Las técnicas basadas en el aprendizaje requieren crear un modelo entrenando al clasificador con ejemplos etiquetados. Esto significa que primero debe reunir un conjunto de datos con ejemplos de clases positivas, negativas y neutrales, extraer las características / palabras de los ejemplos y luego entrenar el algoritmo basado en los ejemplos.

Elegir qué método utilizará en gran medida depende de la aplicación, el dominio y el idioma. El uso de técnicas basadas en léxico con grandes diccionarios nos permite lograr muy buenos resultados. Sin embargo, requieren el uso de un léxico, algo que no siempre está disponible en todos los idiomas. Por otro lado, las técnicas basadas en el aprendizaje brindan buenos resultados, sin embargo, requieren la obtención de conjuntos de datos y requieren capacitación.

Las técnicas basadas en el aprendizaje automático son más elegantes y populares hoy en día.

Como los he usado, los discutiré brevemente. Para un enfoque basado en léxico, puede consultar https://www.aclweb.org/anthology…

El análisis de sentimientos requerirá el siguiente procesamiento previo:

1. Eliminación de ruido : limpieza de datos de noticias irrelevantes, así como anuncios / biografías (si ha recopilado datos por rastreo web)

2. Clasificación del dominio : categorización de los datos en diferentes dominios: “Mercados”, “Economía”, “Industria”, “Tecnología”, etc. Es tan necesario como el algoritmo porque tendrá un conjunto diferente de características para diferentes dominios y, por lo tanto, cada dominio debe tener un clasificador diferente. Por ejemplo, una noticia positiva en el sector de Tecnología para Microsoft puede ser una noticia negativa para las acciones de Apple.

No existe un algoritmo único que funcione bien en todos los temas / dominios / aplicaciones. Esté preparado para ver que la precisión de su clasificador puede ser tan alta como 90% en un dominio / tema y tan baja como 60% en otro.

Por ejemplo, puede encontrar que Max Entropy con Chi-cuadrado como selección de funciones (https://cmm.cit.nih.gov/maxent/l…) es la mejor combinación para comentarios de restaurantes, mientras que para Twitter La selección Binarizada de Naïve Bayes con información mutua (Tutorial de aprendizaje automático: El clasificador de texto Naive Bayes) supera incluso a las SVM. Prepárate para ver muchos resultados extraños. Particularmente en el caso de twitter, evite usar técnicas basadas en léxico porque se sabe que los usuarios usan modismos, jergas y slangs de twitter que afectan en gran medida la polaridad del tweet.

3. Selección de características : en técnicas basadas en el aprendizaje, antes de entrenar al clasificador, debe seleccionar las palabras / características que usará en su modelo. No puedes usar todas las palabras porque hay varias palabras irrelevantes dentro de ellas.

Las características pueden ser unigramas y / o bigramas o ngrams superiores con / sin puntuación y con / sin palabras vacías.

      Algunas de las características actuales utilizadas son:

  • Términos presencia y frecuencia : Estas características son palabras individuales o n-gramas de palabras y sus conteos de frecuencia. O le da a las palabras ponderación binaria (cero si aparece la palabra, o una si no es así) o usa ponderaciones de frecuencia de término para indicar la importancia relativa de las características.
  • Partes del discurso (POS) : encontrar adjetivos, ya que son indicadores importantes de opiniones.
  • Palabras y frases de opinión : Estas son palabras comúnmente utilizadas para expresar opiniones, incluyendo buenas o malas, me gusta u odio. Por otro lado, algunas frases expresan opiniones sin usar palabras de opinión. Por ejemplo: me costó un brazo y una pierna.
  • Negaciones : la aparición de palabras negativas puede cambiar la orientación de la opinión, ya que no es bueno es equivalente a malo.

4. Algoritmo de clasificación: los métodos de clasificación de texto que utilizan el enfoque ML pueden dividirse aproximadamente en métodos de aprendizaje supervisados ​​y no supervisados. Los métodos supervisados ​​hacen uso de una gran cantidad de documentos de capacitación etiquetados. Los métodos no supervisados ​​se utilizan cuando es difícil encontrar estos documentos de capacitación etiquetados.

Algunos de los clasificadores junto con las bibliotecas (ya que construir clasificadores desde cero es extremadamente difícil) que puedes probar son los siguientes:

  • Bayes ingenuos – BernoulliNB, GaussianNB, MultinomialNB. Bayes ingenuos
  • Compatibilidad con clasificadores vectoriales : LinearSVC, PolynomialSVC, RbfSVC, NuSVC. Máquinas de vectores de soporte
  • Modelo de máxima entropía : paquete GIS, IIS, MEGAM, TADM nltk.classify

NOTA: diferentes clasificadores ofrecen diferentes resultados

Asegúrese de probar tantos métodos de clasificación como sea posible. Tenga en cuenta que diferentes algoritmos ofrecen resultados diferentes. También tenga en cuenta que algunos clasificadores pueden funcionar mejor con la configuración de selección de características específicas.

En general, se espera que las técnicas de clasificación de vanguardia, como SVM, superen a las técnicas más simples, como Naïve Bayes. Sin embargo, prepárate para ver lo contrario. A veces, Naïve Bayes puede proporcionar los mismos resultados o incluso mejores que los métodos más avanzados. No elimine un modelo de clasificación solo debido a su reputación.

Te señalaré algunos buenos recursos (ambos para extraer características / técnicas de aprendizaje): –

1. Google Word2Vec (https://code.google.com/p/word2vec/): proporciona métodos para convertir texto en funciones automáticamente. Aquí hay un enlace a un cuaderno de tutoriales (Bag of Words Meets Bags of Popcorn)

2. Deep Learning ( Deeply Moving: Deep Learning for Sentiment Analysis ) : este es actualmente el modelo utilizado por Stanford.

3. Competencia de Análisis de sentimientos ( Análisis de sentimientos en críticas de películas ): la competencia de Kaggle recientemente celebrada sobre el mismo – puedes encontrar algunas ideas geniales implementadas aquí – lo mejor de todo, la mayor parte del código está disponible

DATASET para entrenamiento y pruebas: Análisis de sentimientos

Algunos de los documentos sobre análisis de sentimientos pueden ayudarlo:

Una de las obras anteriores de Bo Pang, Lillian Lee http://acl.ldc.upenn.edu/acl2002…

Una encuesta exhaustiva de técnicas de análisis de sentimientos http://www.cse.iitb.ac.in/~pb/cs…

Estudio de Hang Cui, V Mittal, M Datar usando 6 gramos http://citeseerx.ist.psu.edu/vie…

Fuentes:

10 consejos para proyectos de análisis de sentimientos

Algoritmos y aplicaciones de análisis de sentimientos: una encuesta

Ya hay buenas respuestas. Para agregar a ellos: mira tus datos a la mano. Como la mayoría de las tareas relacionadas con el lenguaje, el análisis de sentimientos depende del contexto y del dominio por definición. Por ejemplo, existe evidencia empírica de que para textos cortos, Naive Bayes puede funcionar mejor que Support Vector Machines (ver http://nlp.stanford.edu/pubs/sid …)

Pero el aprendizaje automático supervisado requiere conjuntos anotados, que pueden ser caros de obtener o difíciles de mantener en calidad a medida que crecen. Por lo tanto, puede elegir el enfoque basado en léxico + sintaxis. Existen técnicas para el cultivo automático de sus léxicos de sentimiento de semillas, como en este documento: http://www.aclweb.org/anthology/ … (busque documentos que lo citan y encontrará varias extensiones).

De nuestra propia investigación y desarrollo, algunos de los algoritmos que ayudan en el análisis de sentimientos son los siguientes:

  • Regresión logística
  • Clasificador ingenuo de Bayes

Tenga en cuenta que estos algoritmos funcionan bien en la clasificación de spam, sin embargo, tienen sus limitaciones con respecto a la precisión con el sentimiento. Esto lo llevará a desarrollar y usar algoritmos y métodos personalizados adicionales para mejorar la precisión, como la heurística.

Lo primero son algunas técnicas generales de aprendizaje automático, como la regresión logística, ingenuos bayes, SVM como otros mencionaron.

En el campo de PNL tenemos otras herramientas con respecto a esto, como analizar la estructura de las ayudas de texto.

También podría aplicar técnicas de aprendizaje profundo para hacer esto. Cosas nuevas como RNN / LSTM definitivamente ayudan.

El análisis de sentimientos es un tema amplio y tiene numerosos algoritmos. Los que usará dependen del uso de su análisis. Por lo tanto, proporcione más información sobre su objetivo y meta.