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


10

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

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

Вы можете заранее классифицировать все ключевые слова, а затем просто извлечь категорию из индекса.
друг

@ffriend кажется ответом на одно слово запроса. Но если поисковый запрос состоит из большего количества слов .. или комбинаций слов ... я должен создать индекс для всех комбинаций !!!
user3498

1
SVC работает быстро, поэтому, если вы хотите использовать его для классификации запросов в приложении с умеренной нагрузкой, он будет работать. Но классификация по одному (или даже нескольким словам) в большинстве случаев является плохой идеей. Возьмем, к примеру, двусмысленные слова: что если какое-то слово принадлежит двум категориям с очень малой разницей в вероятностях? Вы собираетесь выбросить чуть менее вероятную категорию из поиска? Скорее всего, вам нужен дополнительный термин в формуле ранжирования при поиске, а не отбрасывание менее вероятных категорий.
друг

Ответы:


3

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


3

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

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

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

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

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.