Tôi có các yêu cầu sau: -Làm thế nào để sửa đầu vào của người dùng (Loại google "ý bạn là gì?")
Tôi có nhiều (1 triệu) giá trị (tên). Người dùng sẽ nhập chuỗi tìm kiếm.
Tôi không mong đợi người dùng đánh vần tên chính xác.
Vì vậy, tôi muốn biến Google thành "Ý của bạn là". Điều này sẽ liệt kê tất cả các giá trị có thể từ kho dữ liệu của tôi. Có một câu hỏi tương tự nhưng không giống nhau here. Điều này không trả lời câu hỏi của tôi.
Câu hỏi của tôi: - 1) Tôi nghĩ rằng không nên lưu trữ những dữ liệu đó trong RDBMS. Bởi vì sau đó tôi sẽ không có bộ lọc trên các truy vấn SQL. Và tôi phải quét toàn bộ bảng. Vì vậy, trong tình huống này, cách dữ liệu sẽ được lưu trữ?
2) Câu hỏi thứ hai là giống như this. Nhưng, chỉ cho sự hoàn chỉnh của câu hỏi của tôi: làm cách nào để tìm kiếm thông qua tập dữ liệu lớn? Giả sử, có một tên Franky trong tập dữ liệu. Nếu người dùng nhập là Phranky, tôi làm cách nào để khớp với Franky? Tôi có phải lặp qua tất cả các tên không?
Tôi đã xem qua Levenshtein Distance, đây sẽ là một kỹ thuật tốt để tìm các chuỗi có thể. Nhưng một lần nữa, câu hỏi của tôi là tôi phải hoạt động trên tất cả 1 triệu giá trị từ kho dữ liệu của tôi?
3) Tôi biết, Google làm điều đó bằng cách xem hành vi của người dùng. Nhưng tôi muốn làm điều đó mà không xem hành vi của người dùng, tức là bằng cách sử dụng, tôi chưa biết, hãy nói thuật toán khoảng cách. Bởi vì phương pháp cũ sẽ yêu cầu khối lượng lớn các tìm kiếm để bắt đầu!
4) Như Kirk Broadhurst chỉ ra trong một câu trả lời below, có hai kịch bản có thể: -
- Người dùng đánh nhầm một từ (một chỉnh sửa khoảng cách thuật toán)
- Người dùng không biết một từ và đoán (một thuật toán đối sánh ngữ âm)
Tôi quan tâm đến cả hai. Họ thực sự là hai điều riêng biệt; ví dụ. Sean và Shawn âm thanh giống nhau nhưng có một khoảng cách chỉnh sửa 3 - quá cao để được coi là một lỗi đánh máy.
Google thực hiện "ý của bạn là gì?" (nói gần) bằng cách xem cách người dùng sửa * bản thân * và sau đó cung cấp hiệu chỉnh phổ biến nhất cho những người dùng khác. –
Tôi đồng ý. Nhưng câu hỏi của tôi là làm thế nào để thực hiện một chức năng tương tự. Tôi tin rằng nó sẽ có thể thực hiện tính toán chức năng tương tự cũng có. – Sabya
gần như tất cả các câu trả lời ở đây là thông tin. Vì vậy, tôi nghĩ chúng ta nên đánh giá các giải pháp và hình thành một phân tích kết hợp hoàn chỉnh. Tôi sẽ cố gắng làm trong vài ngày cuối tuần. – Sabya