¿Qué algoritmos se pueden usar para agrupar opiniones sobre un tema expresado en lenguaje natural?

En realidad, he estado reflexionando sobre esto recientemente como posibles temas de investigación, y lamento decir que está más allá de mis capacidades.

Su configuración (solo 20 comentarios, y eso es todo) es realmente difícil por muchas razones. La mayoría de los algoritmos de agrupamiento fallan miserablemente al agrupar muy pocos puntos (existen demasiadas formas de dividirlos, y casi todos son realmente buenos, ya que habrá pocos puntos cerca de los márgenes). Un mejor escenario para pensar sería un modelo que agrupe muchos conjuntos de aproximadamente 20 revisiones en una pequeña k de opiniones amplias, que deberían (pero no deben) estar representadas en cada uno de los conjuntos pequeños.

Pero esto trae lo que creo que es el problema más difícil: la mayoría de las palabras en una reseña o artículo de opinión no se refieren directamente a la opinión expresada, sino al tema de la opinión. Casi cualquier algoritmo de agrupamiento, frente a estos datos y las características de palabras simples, simplemente agruparían las revisiones por algo que se asemeje a temas o categorías de productos, y no a opiniones. Por otro lado, una alternativa trivial como usar un modelo de tema para eliminar las palabras más comunes de acuerdo con la mayoría de los temas, y la agrupación por las restantes tiene el problema de que probablemente la mayoría de las palabras que emiten opinión terminarían en un alto rango en algunos temas, y se filtraría Por lo tanto, un enfoque ingenuo basado en características de palabras no debería funcionar muy bien para este problema. (Otro problema, pero que se puede manejar, es que las opiniones tienen esta propiedad donde algunas palabras “cambian” la opinión de una oración; sin embargo, se podría detectar esto con un modelo generativo calibrado adecuadamente).

Creo que el problema principal en la agrupación (sin supervisión) de las opiniones por opinión es el problema de referencia, es decir, determinar qué palabras hacen referencia a algunos aspectos del tema y qué palabras simplemente expresan opiniones. Entonces, por ejemplo, si tiene las descripciones de los productos, así como un diccionario de sinónimos junto con las revisiones, puede “filtrar” las palabras en las revisiones que están demasiado cercanas (en cierto sentido basadas en el diccionario de sinónimos) a las palabras en las descripciones . En realidad, esta es una buena idea, y lo intentaría, pero lo difícil sería obtener un corpus de descripciones y reseñas coincidentes.

Sin embargo, para responder finalmente a su pregunta, lo que creo que sería la mejor manera de seguir adelante es etiquetar manualmente algunas opiniones que sabe que son muy diferentes y usar un clasificador semi-supervisado (como el SVM en http: / /mloss.org/software/view/32/) para clasificar los otros. Luego, si encuentra demasiados errores al navegar por la lista, clasifique estos errores correctamente y vuelva a entrenar el clasificador.

espero que esto ayude

Un enfoque de pirateo rápido sería simplemente mirar las palabras utilizadas.
P.ej
Opción 1: tome cada opinión como un conjunto de palabras (después de eliminar las palabras de detención) y observe el coeficiente de similitud de jaccard.
Opción 2: tome cada opinión como un vector conjunto (nuevamente después de eliminar las palabras de detención o usando los valores TF-IDF) y tome los cosenos vectoriales.
Opción 3: usar otras medidas de similitud de vectores, etc.

Estos le darían una medida de similitud entre pares de opiniones. Luego puede usar la agrupación aglomerativa, pero necesitaría ajustar los umbrales …

Ese es realmente un enfoque rápido de hacky, y probablemente no funcionaría tan bien. Puede ampliar esto extrayendo más funciones como parte de las etiquetas de voz y tirándolas al vector, utilizando un clasificador para aprender los umbrales por usted (tomando los vectores como entrada), etc.

Si realmente habla en serio sobre esto, le sugiero leer sobre aprendizaje automático, procesamiento de lenguaje natural y recuperación de información …

Editar: si no se dejó en claro, este es un problema difícil. El truco que propuse anteriormente solo tendría una oportunidad de funcionar si las palabras utilizadas por las diferentes opiniones difieren lo suficiente en general.

Dudo que tales algoritmos estén disponibles.

Para obtener ideas sobre soluciones similares, aquí hay un par de trabajos de investigación del equipo de Análisis de Sentimientos de Goolge:

Resumen resumido: un experimento con reseñas de consumidores
K. Lerman y R. McDonald
Asociación Norteamericana de Lingüística Computacional (NAACL), 2009.

Creación de un resumen de opiniones para las revisiones del servicio local
S. Blair-Goldensohn, y col.
Taller WWW sobre PNL en la era de la explosión de información (NLPIX), 2008.

More Interesting

¿Puede la programación competitiva ayudarlo a mejorar en la investigación teórica de la informática / algoritmos? Parece que después de haber resuelto miles de problemas difíciles, puede abordar los problemas en su investigación de manera más eficiente, ¿verdad?

Tengo interés en la programación de computadoras, algoritmos y estructuras de datos. ¿Puedo publicar algún trabajo de investigación en estas áreas? En caso afirmativo, ¿qué debo hacer?

¿La fotogrametría hará que la escultura digital sea obsoleta?

¿Un trabajo académico en un área de visión por computadora necesita una teoría complicada?

¿Qué se necesita para ser investigador en informática, además de un doctorado? ¿Qué equipo necesita un investigador?

¿Google financia una gran cantidad de investigación académica, especialmente en el aprendizaje automático?

¿Cuáles son algunos temas candentes en la investigación en nanotecnología?

¿Cuáles son algunas direcciones de investigación recientes en análisis y reconocimiento de rostros?

¿Cuáles son algunos avances recientes en la teoría de grafos? Tomé un curso de posgrado en teoría de grafos, pero los resultados que uso de la teoría de grafos (espectrales y aleatorios) tienen más de 50 años. ¿Qué hay de nuevo y cuáles son los grandes avances recientes?

¿Sobre qué temas puede investigar un estudiante de informática?

¿Por qué alguien querría ser profesor en lugar de trabajar en Microsoft Research? El beneficio más obvio es que puedes enseñar, pero ¿hay otros beneficios?

¿Qué han estado haciendo los millones de informáticos e ingenieros durante el período de 1996 a 2015? ¿Qué han logrado?

A un alto nivel, ¿cuáles son las principales diferencias entre los proyectos académicos y los de la industria para la visión por computadora?

Cómo preparar y escribir un ensayo de antecedentes informático ganador

¿Qué habilidades se necesitan para ser un informático teórico?