machine-learning data-mining cluster-analysis text-mining

machine learning - ¿Mejor agrupación de documentos de texto que tf/idf y similitud de coseno?



machine-learning data-mining (3)

Estoy tratando de agrupar el flujo de Twitter. Quiero poner cada tweet a un clúster que hable sobre el mismo tema. Intenté agrupar la secuencia utilizando un algoritmo de agrupación en línea con la similitud de tf / idf y coseno, pero encontré que los resultados son bastante malos.

Las principales desventajas de usar tf / idf es que agrupa documentos que tienen una palabra clave similar, por lo que solo es bueno identificar documentos casi idénticos. Por ejemplo considera las siguientes oraciones:

1- El sitio web Stackoverflow es un lugar agradable. 2- Stackoverflow es un sitio web.

Es probable que las dos oraciones previas se agrupen con un valor umbral razonable, ya que comparten muchas palabras clave. Pero ahora considera las siguientes dos oraciones:

1- El sitio web Stackoverflow es un lugar agradable. 2- Visito Stackoverflow regularmente.

Ahora, al usar tf / idf, el algoritmo de agrupación fracasará miserablemente porque solo comparten una palabra clave, incluso cuando ambos hablan del mismo tema.

Mi pregunta: ¿hay mejores técnicas para agrupar documentos?


Como se menciona en otros comentarios y respuestas. Usar LDA puede dar buenos tweets-> pesos de temas.

Si estos pesos son insuficientes para la agrupación en clúster para sus necesidades, puede buscar agrupar estas distribuciones de temas utilizando un algoritmo de agrupación en clúster.

Si bien es un conjunto de capacitación, la LDA puede agrupar fácilmente los tweets con el flujo de superposición, el desbordamiento de pila y el desbordamiento de pila en el mismo tema. Sin embargo, "mi pila de cajas está a punto de desbordarse" podría ir a otro tema sobre las cajas.

Otro ejemplo: un tweet con la palabra Apple podría incluir varios temas diferentes (la empresa, la fruta, Nueva York y otros). LDA buscaría las otras palabras en el tweet para determinar los temas aplicables.

  1. "Steve Jobs fue el CEO de Apple" es claramente sobre la compañía
  2. "Estoy comiendo la manzana más deliciosa" es claramente sobre la fruta.
  3. "Voy a ir a la gran manzana cuando viaje a los Estados Unidos" es muy probable que visite Nueva York

En mi experiencia, la similitud de coseno en los vectores de análisis semántico latente (LSA / LSI) funciona mucho mejor que el tf-idf sin formato para el agrupamiento de texto, aunque admito que no lo he probado en los datos de Twitter. En particular, tiende a solucionar el problema de escasez con el que se encuentra, donde los documentos simplemente no contienen suficientes términos comunes.

Los modelos de temas como LDA podrían funcionar aún mejor.


Respuesta larga:

TfxIdf es actualmente uno de los métodos de búsqueda más famosos. Lo que necesita es un preprocesamiento de Natural Langage Processing (NLP). Hay muchos recursos que pueden ayudarlo con el inglés (por ejemplo, la lib ''nltk'' en python).

Debe usar el análisis de PNL tanto en sus consultas (preguntas) como en sus documentos antes de indexar.

El punto es: mientras tfxidf (o tfxidf ^ 2 como en lucene) es bueno, debe usarlo en un recurso anotado con información de meta-lingüística. Eso puede ser difícil y requiere un amplio conocimiento sobre su motor de búsqueda principal, análisis de gramática (sintaxis) y el dominio del documento.

Respuesta corta : la mejor técnica es utilizar TFxIDF con anotaciones de NLP de gramática ligera y reescribir la consulta y la indexación.