¿Cuánto tiempo tardan los clasificadores scikit en clasificar?

10

Estoy planeando usar el clasificador de máquina de vectores de soporte lineal (SVM) scikit para la clasificación de texto en un corpus que consta de 1 millón de documentos etiquetados. Lo que planeo hacer es que, cuando un usuario ingrese alguna palabra clave, el clasificador primero la clasificará en una categoría, y luego se realizará una consulta de recuperación de información en los documentos de esa categoría. Tengo algunas preguntas:

  1. ¿Cómo confirmo que la clasificación no tomará mucho tiempo? No quiero que los usuarios tengan que pasar tiempo esperando que termine una clasificación para obtener mejores resultados.
  2. ¿El uso de la biblioteca scikit de Python para sitios web / aplicaciones web es adecuado para esto?
  3. ¿Alguien sabe cómo Amazon o flipkart realizan la clasificación en las consultas de los usuarios, o utilizan una lógica completamente diferente?
usuario3498
fuente
Puede clasificar todas las palabras clave de antemano y luego simplemente extraer la categoría del índice.
amigo el
@ffriend parece una respuesta para una consulta de una palabra. Pero si la consulta de búsqueda consiste en más palabras ... o combinaciones de palabras ... ¡tengo que crear un índice para todas las combinaciones!
user3498
1
SVC es rápido, por lo que si desea usarlo para la clasificación de consultas en una aplicación de carga moderada, funcionará. Pero la clasificación por una sola (o incluso varias palabras) es una mala idea en la mayoría de los casos. Tomemos palabras ambiguas, por ejemplo: ¿qué pasa si alguna palabra pertenece a 2 categorías con muy poca diferencia en las probabilidades? ¿Vas a lanzar una categoría un poco menos probable fuera de la búsqueda? Lo que probablemente desee es un término adicional en la fórmula de clasificación durante la búsqueda, sin rechazar en absoluto las categorías menos probables.
amigo

Respuestas:

3

La única forma confiable de ver cuánto tiempo lleva es codificarlo y darle una oportunidad. La capacitación llevará más tiempo, luego puede guardar su modelo (pickle) para usarlo más tarde.

usuario1269942
fuente
3

No veo un gran problema aquí. Entonces, trataría de responder todas sus preguntas desde el punto de vista del nivel de producción:

¿Cómo confirmo que la clasificación no tomará mucho tiempo?

Tome un subconjunto de los datos del corpus que tenga (puede hacerlo al azar, sin necesidad de muestreo), y pruebe su algoritmo en él, y se aproximan / generalizan al conjunto de datos general.

(SVM es comparativamente más rápido. Sin embargo, realice el proceso anterior solo para estar seguro).

Y pruébelo en el entorno de desarrollo antes de pasar a producción.

¿El uso de la biblioteca scikit de Python para sitios web / aplicaciones web es adecuado para esto?

Si lo es. Ya está siendo utilizado por una buena parte de las empresas.

La tercera pregunta sobre Amazon y Flipkart no puede ser respondida por alguien fuera de sus equipos.

Además, le aconsejaría que utilice las técnicas de reducción de mapas para entrenar sus modelos. Y como ya se aconsejó, seleccione sus modelos para que no necesite entrenarlos con cada solicitud.

Dawny33
fuente