Tôi có một DataFrame với IDF của một số từ nhất định được tính toán. Ví dụ
(10,[0,1,2,3,4,5],[0.413734499590671,0.4244680552337798,0.4761400657781007, 1.4004620708967006,0.37876590175292424,0.48374466516332])
.... and so on
Bây giờ đưa ra một truy vấn Q, tôi có thể tính TF-IDF của truy vấn này. Làm cách nào để tính toán độ tương tự cosin của truy vấn với tất cả các tài liệu trong khung dữ liệu (có gần triệu tài liệu)
Tôi có thể thực hiện thủ công trong công việc thu nhỏ bản đồ bằng cách sử dụng phép nhân vectơ
Tương tự Cosine (Q, tài liệu) = Sản phẩm chấm (Q, dodcument) / || Q || * || tài liệu | |
nhưng chắc chắn Spark ML phải hỗ trợ tính toán độ tương tự cosin của một văn bản?
Nói cách khác, một tìm kiếm Truy vấn làm cách nào để tìm các cosin gần nhất của tài liệu TF-IDF từ DataFrame?