Nếu bạn muốn tự mình xây dựng thứ gì đó như thế này từ đầu, bạn sẽ sử dụng một thứ gọi là TF / IDF:Tần suất thuật ngữ / Tần suất tài liệu nghịch đảo. Điều đó có nghĩa là, để đơn giản hóa nó, bạn tìm các từ trong truy vấn không phổ biến trong toàn bộ kho tài liệu và tìm các tài liệu có những từ đó.
Nói cách khác, nếu ai đó nhập một truy vấn có từ "Tôi muốn mua một con voi" trong đó, thì trong số các từ trong truy vấn, từ "voi" có lẽ là từ ít phổ biến nhất trong kho ngữ liệu của bạn. "Mua" có lẽ là tiếp theo. Vì vậy, bạn xếp hạng tài liệu (trong trường hợp của bạn là các truy vấn trước đó) theo mức độ chúng chứa từ "con voi" và sau đó chúng chứa từ "mua" là bao nhiêu. Các từ "I", "to" và "an" có thể nằm trong danh sách dừng, vì vậy bạn hoàn toàn bỏ qua chúng. Bạn xếp hạng mỗi tài liệu (truy vấn trước đó, trong trường hợp của bạn) theo số lượng từ phù hợp có (trọng số theo tần suất nghịch đảo của tài liệu - tức là tỷ trọng cao đối với các từ không phổ biến) và hiển thị một số từ hàng đầu.
Tôi đã đơn giản hóa quá mức và bạn cần phải đọc kỹ điều này để làm đúng, nhưng nó thực sự không quá phức tạp để triển khai một cách đơn giản. Trang Wikipedia có thể là một nơi tốt để bắt đầu:
http://en.wikipedia.org/wiki/Tf%E2%80 % 93idf