Combien de temps les classificateurs scikit prennent-ils pour classer?

10

Je prévois d'utiliser le classificateur scikit linear support vector machine (SVM) pour la classification de texte sur un corpus comprenant 1 million de documents étiquetés. Ce que je prévois de faire, c'est lorsqu'un utilisateur saisit un mot clé, le classificateur le classera d'abord dans une catégorie, puis une requête de récupération d'informations ultérieure se produira dans les documents de cette catégorie de catégorie. J'ai quelques questions:

  1. Comment puis-je confirmer que le classement ne prendra pas beaucoup de temps? Je ne veux pas que les utilisateurs passent du temps à attendre la fin d'un classement pour obtenir de meilleurs résultats.
  2. Est-ce que l'utilisation de la bibliothèque scikit de Python pour les sites Web / applications Web convient à cela?
  3. Quelqu'un sait-il comment amazon ou flipkart effectuent la classification des requêtes des utilisateurs, ou utilisent-ils une logique complètement différente?
user3498
la source
Vous pouvez classer tous les mots clés à l'avance, puis extraire la catégorie de l'index.
ffriend
@ffriend semble être une réponse à une requête d'un mot. Mais si la requête de recherche est composée de plus de mots .. ou de combinaisons de mots .. je dois créer un index pour toutes les combinaisons !!!
user3498
1
SVC est rapide, donc si vous voulez l'utiliser pour la classification des requêtes dans une application à charge modérée, cela fonctionnera. Mais la classification par un seul (voire plusieurs mots) est une mauvaise idée dans la plupart des cas. Prenez des mots ambigus, par exemple: que faire si un mot appartient à 2 catégories avec très peu de différence de probabilités? Allez-vous jeter une catégorie un peu moins probable hors de recherche? Ce que vous voulez très probablement, c'est un terme supplémentaire dans la formule de classement lors de la recherche, sans rejeter les catégories les moins probables.
ffriend

Réponses:

3

Le seul moyen fiable de voir combien de temps cela prend est de le coder et de lui donner un coup de feu. La formation prendra plus de temps, puis vous pouvez enregistrer votre modèle (cornichon) pour l'utiliser plus tard.

user1269942
la source
3

Je ne vois pas de gros problème ici. Donc, j'essaierais de répondre à toutes vos questions du point de vue de la production:

Comment puis-je confirmer que le classement ne prendra pas beaucoup de temps?

Prenez un sous-ensemble des données de corpus que vous avez (vous pouvez le faire au hasard, pas besoin d'échantillonnage), et testez votre algorithme dessus, et ils l'approximent / généralisent à l'ensemble de données global.

(SVM est relativement plus rapide. Néanmoins, effectuez le processus ci-dessus juste pour être sûr.)

Et testez-le dans l'environnement de développement avant de passer à la production.

Est-ce que l'utilisation de la bibliothèque scikit de Python pour les sites Web / applications Web convient à cela?

Oui , ça l'est. Il est déjà utilisé par une bonne partie des entreprises.

La troisième question sur Amazon et Flipkart ne peut pas être répondue par quelqu'un en dehors de leurs équipes.

De plus, je vous conseille d'utiliser les techniques de mapreduce pour former vos modèles. Et comme déjà conseillé, décapez vos modèles afin que vous n'ayez pas besoin de les former à chaque demande.

Dawny33
la source