Mahout - Clustering - "nombrar" los elementos del clúster

Estoy investigando un poco y estoy jugando con Apache Mahout 0.6

Mi propósito es construir un sistema que nombrará diferentes categorías de documentos según la entrada del usuario. Los documentos no se conocen de antemano y tampoco sé qué categorías tengo al recopilar estos documentos. Pero sí sé que todos los documentos del modelo deben pertenecer a una de las categorías predefinidas.

Por ejemplo: digamos que he recopilado N documentos, que pertenecen a 3 grupos diferentes:

  • Politica
  • Madonna (estrella del pop)
  • Ciencia ficción

No sé qué documento pertenece a qué categoría, pero sé que cada uno de mis N documentos pertenece a una de esas categorías (por ejemplo, no hay documentos sobre, por ejemplo, baloncesto entre estos N documentos)

Entonces, se me ocurrió la siguiente idea:

  • Aplique la agrupación mahout (por ejemplo, k-mean con k=3 en estos documentos). Esto debería dividir los N documentos en 3 grupos. Este debería ser mi modelo para aprender. Todavía no sé qué documento pertenece realmente a qué grupo, pero al menos los documentos ahora están agrupados por grupo

  • Pídale al usuario que busque cualquier documento en la web que deba ser sobre 'Madonna' (no puedo mostrarle al usuario ninguno de mis N documentos, es una restricción). Luego quiero medir la 'similitud' de este documento y cada uno de los 3 grupos. Espero ver que la medida de similitud entre user_doc y documentos en el grupo de Madonna en el modelo será más alta que la similitud entre user_doc y documentos sobre política.

Me las arreglé para producir el grupo de documentos usando el libro 'Mahout in Action'. Pero no entiendo cómo debo usar Mahout para medir la similitud entre el grupo de documentos 'listo' y un documento dado.

Pensé en volver a ejecutar el clúster con k = 3 para documentos N + 1 con los mismos centroides (en términos de agrupación en clústeres k-mean) y ver dónde cae el nuevo documento, pero tal vez haya alguna otra forma de hacerlo.

¿Se puede hacer con Mahout o mi idea es conceptualmente incorrecta? (un ejemplo en términos de Mahout API sería realmente bueno)

Muchas gracias y perdón por la pregunta larga (no podría describirlo mejor)

Cualquier ayuda es muy apreciada

PD Este no es un proyecto de trabajo en casa :)

preguntado el 12 de junio de 12 a las 13:06

1 Respuestas

Esto podría ser posible, pero una solución mucho más fácil (en mi humilde opinión) sería etiquetar a mano algunos documentos de cada categoría y luego usarlos para arrancar k-means. Es decir, calcule los centroides de los documentos de política/Madonna/scifi etiquetados a mano y deje que k-means lo tome a partir de ahí.

(En términos sofisticados, estarías haciendo semisupervisado clasificación de los centroides más cercanos.)

Respondido el 12 de junio de 12 a las 15:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.