2010-05-28 10 views
7

Estoy planeando una aplicación que creará grupos de mensajes cortos/tweets basados ​​en temas. El número de temas se limitará al igual que los deportes [NBA, NFL, Cricket, Fútbol], entretenimiento, música, [películas] y así sucesivamente ...¿Cómo puedo agrupar los mensajes cortos [Tweets] según el tema? [Agrupación por temas]

puedo pensar en dos enfoques a este

  • Haz usuarios para etiquetar preguntas como Stackoverflow. Los usuarios pueden seleccionar etiquetas de una lista predefinida de etiquetas. Luego, en el lado del servidor, los agruparé según las etiquetas. Pros: - Diseño simple. Menos complejidad en el código. Contras: - Las opciones para los usuarios estarán restringidas. Los clústeres no serán dinámicos. Si ocurre un nuevo evento, las etiquetas predefinidas lo perderán.
  • Tome el mensaje, elimine las palabras vacías [predefinidas en un diccionario], aplique algún algoritmo de agrupación en el mensaje derivado para crear un clúster y, según su popularidad, muestre el clúster. El clúster se mostrará hasta el momento en que siga siendo popular [muchos mensajes/minuto]. Los mensajes nuevos serán descremados y asignados a los clústeres correspondientes. Ventajas: - Agrupación dinámica basada en la popularidad del evento/accidente. Contras: - Mayor complejidad. Se requieren más recursos de servidor.

Me gustaría saber si hay otros enfoques para este problema. ¿O hay alguna forma de mejorar los métodos mencionados anteriormente?

También sugiero algunos buenos algoritmos de agrupamiento. Creo que el algoritmo "K-Nearest Clustering" es apto para esta situación.

Respuesta

2

Use Bayesian classification. Entrene el filtro con algún corpus predefinido, y (opcionalmente) proporcione una forma para que los usuarios lo refinen más marcando elementos que se categorizaron incorrectamente.

Aquí hay algunos examples del uso del clasificador bayesiano en NLTK.

+0

gracias por la respuesta ... En realidad, quiero mantenerlo como tan simple como puede ser para los usuarios. Creo que sería bueno si los usuarios pueden simplemente ingresar algunos mensajes y el servidor averiguará dónde colocarlos. Aunque poner mucha inteligencia en el servidor será difícil. – Jagira

+0

No tiene que proporcionar una forma de hacer un entrenamiento continuo del filtro; eso solo hace que el filtro sea mejor. Si tiene un buen corpus, la clasificación debería ser aceptable sin un ajuste continuo. –

3

Echa un vistazo a Carrot2, esta herramienta extrae las etiquetas del texto y los clústeres. Puede descargarlo desde here y verificar los algoritmos implementados (Lingo, principalmente) here.

Espero que esto te ayude.

0

También estoy haciendo un tipo similar de cosas. Creo que los hashtags son una buena forma si hablas específicamente de Twitter. También podría realizar alguna clasificación, pero debería enriquecerse con alguna base de conocimiento externa como Wikipedia, etc. De todos modos, si su solución es mejor, por favor publíquela aquí

Cuestiones relacionadas