Ile czasu zajmuje klasyfikator scikit na klasyfikację?

10

Planuję użyć klasyfikatora SVM (Scikit Line Support Vector Machine) do klasyfikacji tekstu na korpusie składającym się z 1 miliona oznakowanych dokumentów. Planuję zrobić, gdy użytkownik wpisze jakieś słowo kluczowe, klasyfikator najpierw sklasyfikuje je w kategorii, a następnie w dokumentach tej kategorii nastąpi kolejne zapytanie o wyszukiwanie informacji. Mam parę pytań:

  1. Jak potwierdzić, że klasyfikacja nie zajmie dużo czasu? Nie chcę, aby użytkownicy musieli spędzać czas, czekając na zakończenie klasyfikacji, aby uzyskać lepsze wyniki.
  2. Czy do tego celu nadaje się biblioteka scikit Pythona dla witryn / aplikacji internetowych?
  3. Czy ktoś wie, jak Amazon lub Flipkart przeprowadzają klasyfikację zapytań użytkowników, czy też używają zupełnie innej logiki?
użytkownik3498
źródło
Możesz wcześniej sklasyfikować wszystkie słowa kluczowe, a następnie po prostu wyciągnąć kategorię z indeksu.
zaprzyjaźnij się
@ffriend wydaje się odpowiedzią na jedno słowo. Ale jeśli zapytanie składa się z większej liczby słów .. lub kombinacji słów .. muszę utworzyć indeks dla wszystkich kombinacji !!!
user3498
1
SVC jest szybki, więc jeśli chcesz go użyć do klasyfikacji zapytań w aplikacji o średnim obciążeniu, zadziała. Ale w większości przypadków klasyfikacja według jednego (lub nawet kilku słów) jest złym pomysłem. Weźmy na przykład dwuznaczne słowa: co jeśli jakieś słowo należy do 2 kategorii z bardzo niewielką różnicą prawdopodobieństw? Czy porzucisz nieco mniej prawdopodobną kategorię wyszukiwania? To, czego najprawdopodobniej chcesz, to dodatkowy termin w formułowaniu rankingu podczas wyszukiwania, w ogóle nie odrzucający mniej prawdopodobnych kategorii.
zaprzyjaźnij się

Odpowiedzi:

3

Jedynym niezawodnym sposobem na sprawdzenie, jak długo to trwa, jest zakodowanie go i przetestowanie. Trening zajmie więcej czasu, wtedy możesz zapisać swój model (marynatę), aby użyć go później.

użytkownik1269942
źródło
3

Nie widzę tutaj wielkiego problemu. Spróbuję odpowiedzieć na wszystkie pytania z punktu widzenia produkcji:

Jak potwierdzić, że klasyfikacja nie zajmie dużo czasu?

Weź podzbiór posiadanych danych korpusowych (możesz to zrobić losowo, bez konieczności próbkowania) i przetestuj na nim swój algorytm, a one przybliżą / uogólnią go na cały zestaw danych.

(SVM jest stosunkowo szybszy. Niemniej jednak wykonaj powyższy proces, aby się upewnić).

I przetestuj to w środowisku programistycznym przed przejściem do produkcji.

Czy do tego celu nadaje się biblioteka scikit Pythona dla witryn / aplikacji internetowych?

Tak jest. Jest już używany przez niezłą grupę firm.

Na trzecie pytanie dotyczące Amazon i Flipkart nie może odpowiedzieć ktoś spoza swojego zespołu.

Ponadto radziłbym używać technik mapreduce do szkolenia modeli. I jak już doradzono, marynuj swoje modele, abyś nie musiał ich szkolić przy każdej prośbie.

Dawny33
źródło