Quanto tempo impiegano i classificatori di scikit a classificare?


10

Sto programmando di utilizzare il classificatore SVM (scikit linear support vector machine) per la classificazione del testo su un corpus costituito da 1 milione di documenti etichettati. Quello che sto pianificando di fare è che, quando un utente inserisce una parola chiave, il classificatore prima lo classificherà in una categoria, quindi una successiva query di recupero delle informazioni avverrà all'interno dei documenti di quella categoria di categorie. Ho alcune domande:

  1. Come posso confermare che la classificazione non richiederà molto tempo? Non voglio che gli utenti debbano passare il tempo ad aspettare il completamento di una classificazione per ottenere risultati migliori.
  2. L'uso della libreria scikit di Python per siti Web / applicazioni Web è adatto a questo?
  3. Qualcuno sa in che modo Amazon o flipkart eseguono la classificazione sulle query degli utenti o usano una logica completamente diversa?

Puoi classificare in anticipo tutte le parole chiave e quindi estrarre la categoria dall'indice.
amico

@ffriend sembra una risposta per una query di una sola parola. Ma se la query di ricerca è composta da più parole .. o combinazioni di parole .. devo creare un indice per tutte le combinazioni !!!
user3498

1
SVC è veloce, quindi se si desidera utilizzarlo per la classificazione delle query in un'applicazione a carico moderato, funzionerà. Ma la classificazione per singola (o anche più parole) è una cattiva idea nella maggior parte dei casi. Prendi parole ambigue, per esempio: cosa succede se una parola appartiene a 2 categorie con una differenza minima nelle probabilità? Hai intenzione di buttare fuori dalla ricerca solo una categoria un po 'meno probabile? Quello che molto probabilmente desideri è un termine aggiuntivo nella formula di classificazione durante la ricerca, non rifiutando affatto le categorie meno probabili.
amico

Risposte:


3

L'unico modo affidabile per vedere quanto tempo richiede è codificarlo e provarlo. L'addestramento richiederà più tempo, quindi puoi salvare il tuo modello (pickle) per usarlo in seguito.


3

Non vedo un grosso problema qui. Quindi, proverei a rispondere a tutte le tue domande dal punto di vista della produzione:

Come posso confermare che la classificazione non richiederà molto tempo?

Prendi un sottoinsieme dei dati corpus che hai (puoi farlo in modo casuale, senza bisogno di campionamento) e testare l'algoritmo su di esso, che approssimano / generalizzano al set di dati complessivo.

(SVM è relativamente più veloce. Tuttavia, fai il processo sopra solo per essere sicuro.)

E testarlo nell'ambiente di sviluppo prima di passare alla produzione.

L'uso della libreria scikit di Python per siti Web / applicazioni Web è adatto a questo?

, lo è. È già utilizzato da un bel gruppo di aziende là fuori.

La terza domanda su Amazon e Flipkart non può essere risolta da qualcuno al di fuori dei loro team.

Inoltre, ti consiglierei di usare le tecniche mapreduce per allenare i tuoi modelli. E come già consigliato, decapita i tuoi modelli in modo da non doverli addestrare ad ogni richiesta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.