Các phân loại scikit mất bao nhiêu thời gian để phân loại?


10

Tôi đang lên kế hoạch sử dụng trình phân loại máy vectơ hỗ trợ tuyến tính scikit (SVM) để phân loại văn bản trên kho văn bản bao gồm 1 triệu tài liệu được dán nhãn. Những gì tôi dự định làm là, khi người dùng nhập một số từ khóa, trước tiên, bộ phân loại sẽ phân loại nó trong một danh mục và sau đó một truy vấn truy xuất thông tin tiếp theo sẽ xảy ra trong các tài liệu của danh mục đó. Tôi có một vài câu hỏi:

  1. Làm thế nào để tôi xác nhận rằng phân loại sẽ không mất nhiều thời gian? Tôi không muốn người dùng phải dành thời gian chờ đợi phân loại kết thúc để có kết quả tốt hơn.
  2. Việc sử dụng thư viện scikit của Python cho các trang web / ứng dụng web có phù hợp với điều này không?
  3. Có ai biết làm thế nào amazon hoặc flipkart thực hiện phân loại trên các truy vấn của người dùng, hoặc họ sử dụng một logic hoàn toàn khác nhau?

Bạn có thể phân loại tất cả các từ khóa trước và sau đó chỉ cần kéo danh mục từ chỉ mục.

@ffriend có vẻ như là một câu trả lời cho một truy vấn từ. Nhưng nếu truy vấn tìm kiếm bao gồm nhiều từ hơn .. hoặc kết hợp các từ .. tôi phải tạo chỉ mục cho tất cả các kết hợp !!!
user3498

1
SVC rất nhanh, vì vậy nếu bạn muốn sử dụng nó để phân loại truy vấn trong một ứng dụng tải vừa phải, nó sẽ hoạt động. Nhưng phân loại theo một (hoặc thậm chí vài từ) là một ý tưởng tồi trong hầu hết các trường hợp. Lấy các từ mơ hồ, ví dụ: nếu một số từ thuộc về 2 loại có rất ít sự khác biệt về xác suất thì sao? Bạn sẽ ném một danh mục ít có thể xảy ra ra khỏi tìm kiếm? Những gì bạn có thể muốn nhất là một thuật ngữ bổ sung trong công thức xếp hạng trong khi tìm kiếm, không từ chối tất cả các danh mục có thể xảy ra ít hơn.

Câu trả lời:


3

Cách đáng tin cậy duy nhất để xem mất bao lâu là mã hóa nó và cho nó một shot. Đào tạo sẽ mất nhiều thời gian hơn, sau đó bạn có thể lưu mô hình của mình (dưa chua) để sử dụng sau này.


3

Tôi không thấy một vấn đề lớn ở đây. Vì vậy, tôi sẽ cố gắng trả lời tất cả các câu hỏi của bạn từ quan điểm cấp sản xuất:

Làm thế nào để tôi xác nhận rằng phân loại sẽ không mất nhiều thời gian?

Lấy một tập hợp con của dữ liệu kho dữ liệu bạn có (bạn có thể thực hiện ngẫu nhiên, không cần lấy mẫu) và kiểm tra thuật toán của bạn trên đó và họ ước tính / tổng quát hóa nó cho tập dữ liệu tổng thể.

(SVM tương đối nhanh hơn. Tuy nhiên, hãy thực hiện quy trình trên chỉ để đảm bảo.)

Và làm thử nó trong môi trường phát triển trước khi đẩy vào sản xuất.

Việc sử dụng thư viện scikit của Python cho các trang web / ứng dụng web có phù hợp với điều này không?

Vâng , nó là. Nó đã được sử dụng bởi một nhóm tốt đẹp của các công ty ngoài đó.

Câu hỏi thứ ba về Amazon và Flipkart không thể được trả lời bởi ai đó bên ngoài đội của họ.

Ngoài ra, tôi sẽ khuyên bạn nên sử dụng các kỹ thuật mapreduce để đào tạo các mô hình của bạn. Và như đã khuyên, hãy chọn các mô hình của bạn để bạn không cần phải đào tạo chúng theo mọi yêu cầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.