Các lựa chọn thay thế cho Tương tự TF-IDF và Cosine khi so sánh các tài liệu có định dạng khác nhau


12

Tôi đã làm việc trong một dự án nhỏ, mang tính kỹ năng nghề nghiệp của người dùng và gợi ý nghề nghiệp lý tưởng nhất cho họ dựa trên những kỹ năng đó. Tôi sử dụng một cơ sở dữ liệu của danh sách công việc để đạt được điều này. Tại thời điểm này, mã hoạt động như sau:

1) Xử lý văn bản của từng danh sách công việc để trích xuất các kỹ năng được đề cập trong danh sách

2) Đối với mỗi nghề nghiệp (ví dụ: "Nhà phân tích dữ liệu"), hãy kết hợp văn bản được xử lý của danh sách công việc cho nghề nghiệp đó vào một tài liệu

3) Tính TF-IDF của từng kỹ năng trong các tài liệu nghề nghiệp

Sau này, tôi không chắc mình nên sử dụng phương pháp nào để xếp hạng nghề nghiệp dựa trên danh sách các kỹ năng của người dùng. Phương pháp phổ biến nhất mà tôi từng thấy là xử lý các kỹ năng của người dùng như một tài liệu, sau đó tính toán TF-IDF cho tài liệu kỹ năng và sử dụng một cái gì đó giống như cosine để tính tương tự giữa tài liệu kỹ năng và từng tài liệu tài liệu nghề nghiệp.

Đây dường như không phải là giải pháp lý tưởng đối với tôi, vì sự tương tự cosine được sử dụng tốt nhất khi so sánh hai tài liệu có cùng định dạng. Đối với vấn đề đó, TF-IDF dường như không phải là số liệu thích hợp để áp dụng cho danh sách kỹ năng của người dùng. Chẳng hạn, nếu người dùng thêm các kỹ năng bổ sung vào danh sách của họ, TF cho mỗi kỹ năng sẽ giảm xuống. Trong thực tế, tôi không quan tâm tần suất của các kỹ năng trong danh sách kỹ năng của người dùng - tôi chỉ quan tâm rằng họ có những kỹ năng đó (và có thể họ hiểu những kỹ năng đó như thế nào).

Có vẻ như một số liệu tốt hơn sẽ được thực hiện như sau:

1) Đối với mỗi kỹ năng mà người dùng có, hãy tính TF-IDF của kỹ năng đó trong các tài liệu nghề nghiệp

2) Đối với mỗi nghề nghiệp, hãy tính tổng kết quả TF-IDF cho tất cả các kỹ năng của người dùng

3) Xếp hạng sự nghiệp dựa trên tổng số trên

Tôi đang suy nghĩ theo đúng dòng ở đây? Nếu vậy, có bất kỳ thuật toán nào hoạt động dọc theo các dòng này, nhưng phức tạp hơn một tổng đơn giản? Cảm ơn đã giúp đỡ!


3
Hãy xem Doc2vec, Gensim đã triển khai
Blue482

Câu trả lời:


1

Có lẽ bạn có thể sử dụng các từ nhúng để thể hiện tốt hơn khoảng cách giữa các kỹ năng nhất định. Chẳng hạn, "Python" và "R" nên gần nhau hơn "Python" và "Quản lý thời gian" vì cả hai đều là ngôn ngữ lập trình.

Toàn bộ ý tưởng là các từ xuất hiện trong cùng một bối cảnh nên gần hơn.

Khi bạn có các nhúng này, bạn sẽ có một bộ kỹ năng cho ứng viên và bộ kỹ năng có quy mô khác nhau cho các công việc. Sau đó, bạn có thể sử dụng Khoảng cách của Earth Mover để tính khoảng cách giữa các bộ. Thước đo khoảng cách này khá chậm (thời gian bậc hai) nên có thể không mở rộng tốt nếu bạn có nhiều công việc phải trải qua.

Để giải quyết vấn đề về khả năng mở rộng, có lẽ bạn có thể xếp hạng các công việc dựa trên số lượng kỹ năng mà ứng viên có điểm chung ở nơi đầu tiên và ưu tiên những công việc này.


1

Một phương pháp phổ biến và đơn giản để khớp với "tài liệu" là sử dụng trọng số TF-IDF, như bạn đã mô tả. Tuy nhiên, theo tôi hiểu câu hỏi của bạn, bạn muốn xếp hạng từng nghề nghiệp (-document) dựa trên bộ kỹ năng người dùng.

Nếu bạn tạo một "vectơ truy vấn" từ các kỹ năng, bạn có thể nhân vectơ với ma trận nghề nghiệp thuật ngữ của bạn (với tất cả các trọng số tf-idf làm giá trị). Vectơ kết quả sẽ cung cấp cho bạn điểm xếp hạng trên mỗi tài liệu nghề nghiệp mà bạn có thể sử dụng để chọn nghề nghiệp hàng đầu cho tập hợp "kỹ năng truy vấn".

q¯1×|termS|M|termS|×|docbạnmentS|v¯M1×|docbạnmentS|

Phương pháp xếp hạng này là một trong những cách đơn giản nhất và có nhiều biến thể tồn tại. Mục TF-IDF trên Wikipedia cũng mô tả ngắn gọn phương pháp xếp hạng này. Tôi cũng tìm thấy câu hỏi và trả lời này trên SO về các tài liệu phù hợp.


Đáng ngạc nhiên, trung bình đơn giản của các từ nhúng thường tốt bằng mức trung bình của các nhúng được thực hiện với trọng số Tf-Idf.
wacax


0

Bạn có thể thử sử dụng "gensim". Tôi đã làm một dự án tương tự với dữ liệu phi cấu trúc. Gensim cho điểm tốt hơn TFIDF tiêu chuẩn. Nó cũng chạy nhanh hơn.

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.