Thảo luận: Ý tưởng cho thuật toán nhắc từ khóa tương tự Google
Gần đây mình sử dụng google thì để ý google có tích hợp autocomplete dựa trên lịch sử tìm kiếm gần nhất của người dùng.
Ví dụ: Mình bắt đầu tìm kiếm bằng từ khóa godfather
Ok, kết quả hiển thị bình thường.
Bây giờ mình muốn tìm kiếm thêm thông tin của godfather, giả sử corleone chẳng hạn:
Mình mới chỉ gõ đến chữ thứ 3, nghĩa là “cor”, google đã ngay lập tức gợi ý “corleone family”!
Bình thường, nếu không tìm kiếm godfather trước đó, google sẽ gợi ý như thế này
Hay nếu tìm kiếm từ khóa “farm” trước, sau đó gõ “cor”, google sẽ gợi ý từ “corn”
Và hệ thống hoạt động rất chính xác, kể cả với các từ khóa lạ. Không biết làm cách nào google có thể cài đặt hệ thống như vậy nhỉ?
Thực ra không phải chỉ 1 thuật toán mà có rất nhiều thuật toán được gg áp dụng, có thể bạn chưa biết nhưng gg đã áp dụng trí Tuệ nhân tạo cho máy tìm kiếm gg để tăng khả năng tìm kiếm gần với kết quả mong muốn của người dùng nhất
Nó là cả một hệ thống rất lớn, về cơ bản có những cái này:
Tìm từ khoá
Tốc độ
… còn một số nữa
Uhm cảm ơn @petehouston. Ý mình đang hỏi là cách họ cài đặt phần từ khóa liên quan và dự đoán từ khóa thế nào nhỉ?
Giả sử với từ khóa liên quan họ có thể làm:
Với việc dự đoán từ khóa:
Ý mình đang hỏi về phần cài đặt như vậy, liệu cách nào là khả thi nhỉ?
Tham khảo bằng sáng chế về chức năng autocomplete của Google nhé ;). Mấy cái phức tạp thế này mình toàn lên Google Scholar tìm.
https://www.google.com/patents/US8645825
À vâng cảm ơn anh .
Đọc thì nó chỉ nói tư tưởng chính chứ không nói cài đặt cụ thể, thuật toán thế nào (ngoại trừ cái n-gram).
Câu trả lời: Xếp hạng từ khoá.
Để xếp hạng một từ khoá thì có nhiều tiêu chí ví dụ: tần suất người dùng nhập (user input frequency), độ tương đồng của từ khoá (similarity), hành vi người dùng (user behavior), từ khoá bị cấm (blacklist), giới tính (gender), độ tuổi (age), mức độ xu hướng (trending) …
Có thể gom lại đơn giản là:
Khi thực hiện tìm kiếm 1 kết quả trên Google, thì server của Google sẽ log lại khá nhiều thông tin từ người dùng từ lúc gõ search từ, tới lúc click vào một link. Dữ liệu này có thể được lưu lại để tính cho mục autocomplete.
2 tỉ dòng code thôi mà =))