¿Cómo optimizar un algoritmo de análisis de sentimientos para conjuntos de datos más grandes?

8

Soy un novato en el análisis de sentimientos y encontré un buen recurso para Bayesian Opinion Mining y una forma de mejorarlo . Sin embargo, me preguntaba si el análisis óptimo depende del conjunto de datos suministrado y, dado que la mejora personal significaría agregar patrones conocidos al conjunto de datos (según tengo entendido), ¿no se sobrecargaría la aplicación con un gran conjunto de datos a su debido tiempo? tiempo con más y más patrones que se agregan al conjunto de datos todos los días? ¿Cuál debería ser el enfoque adecuado para hacer que la aplicación sea escalable (si estoy usando el término correcto en el lugar correcto)?

gentrobot
fuente
3
Esto podría ser lo que estás buscando. Pero no estoy seguro si Java es su opción. Por lo tanto, un comentario. mahout.apache.org . Es escalable y tiene varios algoritmos que podría usar.
juguete
1
¿Qué cantidad de conjuntos de datos llevas aquí? Mahout sería tu camino a seguir si tratas con terabytes de datos nuevos. Echa un vistazo también a Hadoop
Dan Ciborowski - MSFT

Respuestas:

1

Me parece que está creando un clasificador de texto con una etapa de capacitación supervisada al principio, donde asigna etiquetas manualmente. Su modelo está funcionando bien (alta precisión y recuperación), por lo que desea complementar el modelo de entrenamiento inicial con un proceso de entrenamiento sin supervisión sobre nuevas cadenas de entrada.

Estas nuevas entradas tendrán algunas señales conocidas (palabras que has visto antes) para que tu modelo pueda hacer bien su trabajo, pero también tendrán señales desconocidas (palabras que no has visto antes). Desea que su proceso de capacitación sin supervisión asocie esas palabras nuevas con las conocidas, para "aprender". De esta manera, está confiando en que la asociación entre la palabra nueva y la palabra conocida es correcta. Debido a que el procesamiento del lenguaje es tan difícil, probablemente generará asociaciones falsas positivas automáticamente que se habrían excluido / corregido en un entorno supervisado. Por lo tanto, al hacer el aprendizaje sin supervisión, corre el riesgo de reducir su precisión.

Su pregunta es sobre estar "sobrecargado" con muchos datos. Esta es una preocupación justa, y depende mucho del tamaño de sus datos, la elección de implementación y las expectativas de comportamiento del sistema. Si bien la capacidad de respuesta y la capacidad de manejar grandes cantidades de datos es una cosa, creo que la precisión y el recuerdo de su algoritmo de etiquetado de sentimientos es probablemente de gran importancia.

En el artículo que vinculó, el autor tiene un puntaje de confianza que hace que las asociaciones no supervisadas se consideren solo si hay una "alta confianza". Esto es bueno, pero aún existe el riesgo de que con el tiempo su precisión general disminuya. Su sistema tendría que ser evaluado periódicamente para precisión y recuperación, y volver a entrenar. El ejemplo de "Bad Santa" en los comentarios es un buen ejemplo. Le sugiero que lea sobre la capacitación semi-supervisada y haga que este etiquetado sea correcto en conjuntos de datos pequeños antes de confiar en que funcione bien en conjuntos de datos mucho más grandes. ¡El procesamiento del lenguaje es difícil!

Una respuesta
fuente
0

Para otras tareas , como parte del etiquetado del habla , la condensación después del autoaprendizaje hizo que el modelo fuera más pequeño y mejor. Si identifica un problema de escalabilidad, primero mire hacia este lado antes de intentar optimizar su código.

La idea es que después del autoentrenamiento, se crea iterativamente un modelo que inicialmente está vacío. Luego agrega puntos de datos al nuevo modelo solo si no se clasificaron correctamente. Esto evita el sobreajuste y mantiene su modelo lo más pequeño posible.

Quentin Pradet
fuente