2009-04-13 23 views
14

Le pedí un question similar a este hace un par de semanas, pero no hice la pregunta correctamente. Así que vuelvo a hacer aquí la pregunta con más detalles y me gustaría obtener una respuesta más orientada a IA.Algoritmo para clasificar una lista de productos? Tome 2

Tengo una lista que representa productos que son más o menos lo mismo. Por ejemplo, en la lista a continuación, todos son discos duros Seagate.

  1. disco duro Seagate 500Go
  2. disco duro Seagate 120Go para el ordenador portátil
  3. Seagate Barracuda 7200.12 ST3500418AS 500 GB 7200 RPM SATA 3,0 Gb/s de disco duro
  4. nuevo y brillante disco duro de Seagate 500Go
  5. Seagate Barracuda 7200.12
  6. Seagate FreeAgent Desk Disco duro externo de 500GB Plata 7200RPM USB2.0 Minorista
  7. GE Spacemaker Laudry
  8. Mazda3 2010
  9. Mazda3 2009 2.3L

Para un ser humano, los discos duros de 3 y 5 son los mismos. Podríamos ir un poco más lejos y suponer que los productos 1, 3, 4 y 5 son los mismos y poner en otras categorías el producto 2 y 6.

En mi pregunta anterior, alguien me sugirió usar la extracción de características . Funciona muy bien cuando tenemos un pequeño conjunto de datos de descripciones predefinidas (todos los discos duros), pero ¿qué pasa con el otro tipo de descripción? No quiero comenzar a escribir extractores de funciones basados ​​en expresiones regulares para todas las descripciones que mi aplicación podría enfrentar, no escala. ¿Hay algún algoritmo de aprendizaje automático que pueda ayudarme a lograr esto? El rango de descripción que puedo obtener es muy amplio, en la línea 1, podría ser una nevera, y luego en la siguiente línea, un disco duro. ¿Debería intentar tomar la ruta de la Red Neural? ¿Cuáles deberían ser mis entradas?

¡Gracias por la ayuda!

+1

Interesante pregunta. Voy a enfrentar algún simillar en los próximos meses. – JoshBerke

Respuesta

8

Me gustaría ver algunos métodos Bayesian classification. Implicaría entrenar al clasificador para que reconozca determinadas palabras como indicativas de la probabilidad de que un producto pertenezca a una de sus clases. Por ejemplo, después de recibir capacitación, podría reconocer que si la descripción de un producto tiene "Seagate", existe un 99% de posibilidades de que sea un disco duro, mientras que si tiene "Mazda", hay un 97% de posibilidades de que sea un automóvil. Una palabra como "nuevo" probablemente no contribuya mucho a ninguna clasificación, que es la forma en que desea que funcione.

La desventaja de esto sería que generalmente requiere bastante corpus de datos de entrenamiento antes de que comience a funcionar bien, pero puede configurarlo de modo que continúe modificando sus porcentajes mientras está en producción (si observa que clasificó algo incorrectamente), y eventualmente se volverá muy efectivo.

Las técnicas bayesianas se usan bastante recientemente para spam-filtering applications, por lo que podría ser útil leer un poco sobre cómo se ha utilizado allí.

9

Debería ver tanto clustering como classification. Sus categorías parecen abiertas y sugieren que la agrupación puede ser mejor para el problema. En cuanto a la representación de entrada, puede probar su suerte extrayendo palabras y caracteres n-grams. Su medida de similitud puede ser el conteo de n-gramas comunes, o something more sophisticated. Es posible que deba etiquetar manualmente los clústeres resultantes.

Cuestiones relacionadas