Сколько времени занимают классификаторы scikit, чтобы классифицировать?

10

Я планирую использовать классификатор линейных опорных векторов (SVM) Scikit для классификации текста в корпусе, состоящем из 1 миллиона помеченных документов. Я планирую сделать следующее: когда пользователь вводит какое-либо ключевое слово, классификатор сначала классифицирует его по категории, а затем в документах этой категории будет выполняться последующий запрос на получение информации. У меня есть несколько вопросов:

  1. Как я могу подтвердить, что классификация не займет много времени? Я не хочу, чтобы пользователям приходилось тратить время на ожидание окончания классификации, чтобы получить лучшие результаты.
  2. Подходит ли для этого использование библиотеки Scikit Python для веб-сайтов / веб-приложений?
  3. Кто-нибудь знает, как amazon или flipkart выполняют классификацию пользовательских запросов, или они используют совершенно другую логику?
user3498
источник
Вы можете заранее классифицировать все ключевые слова, а затем просто извлечь категорию из индекса.
друг
@ffriend кажется ответом на одно слово запроса. Но если поисковый запрос состоит из большего количества слов .. или комбинаций слов ... я должен создать индекс для всех комбинаций !!!
user3498
1
SVC работает быстро, поэтому, если вы хотите использовать его для классификации запросов в приложении с умеренной нагрузкой, он будет работать. Но классификация по одному (или даже нескольким словам) в большинстве случаев является плохой идеей. Возьмем, к примеру, двусмысленные слова: что если какое-то слово принадлежит двум категориям с очень малой разницей в вероятностях? Вы собираетесь выбросить чуть менее вероятную категорию из поиска? Скорее всего, вам нужен дополнительный термин в формуле ранжирования при поиске, а не отбрасывание менее вероятных категорий.
друг

Ответы:

3

Единственный надежный способ узнать, сколько времени это займет, - это кодировать его и дать ему шанс. Обучение займет больше времени, затем вы можете сохранить свою модель (рассол) для последующего использования.

user1269942
источник
3

Я не вижу здесь огромной проблемы. Итак, я постараюсь ответить на все ваши вопросы с точки зрения уровня производства:

Как я могу подтвердить, что классификация не займет много времени?

Возьмите подмножество имеющихся у вас данных корпуса (вы можете сделать это произвольно, без необходимости выборки), и протестируйте ваш алгоритм на нем, и они аппроксимируют / обобщают его для всего набора данных.

(SVM сравнительно быстрее. Тем не менее, для большей уверенности выполните описанный выше процесс.)

И сделайте это в среде разработки, прежде чем приступить к работе.

Подходит ли для этого использование библиотеки Scikit Python для веб-сайтов / веб-приложений?

Да , это так. Это уже используется хорошей группой компаний там.

На третий вопрос об Amazon и Flipkart никто не может ответить за пределами своих команд.

Кроме того, я бы посоветовал вам использовать методы mapreduce для обучения ваших моделей. И, как уже советовали, протравите свои модели, чтобы вам не приходилось тренировать их при каждом запросе.

Dawny33
источник