Đo độ tương tự tài liệu


21

Để phân cụm (văn bản) tài liệu, bạn cần một cách đo lường sự tương đồng giữa các cặp tài liệu.

Hai lựa chọn thay thế là:

  1. So sánh các tài liệu dưới dạng vectơ hạn sử dụng Tương tự Cosine - và TF / IDF làm trọng số cho các điều khoản.

  2. So sánh từng phân phối xác suất tài liệu bằng cách sử dụng phân kỳ f, ví dụ phân kỳ Kullback-Leibler

Có bất kỳ lý do trực quan nào để thích một phương pháp này hơn phương pháp kia không (giả sử kích thước tài liệu trung bình là 100 điều khoản)?

Câu trả lời:


23

Đối với tài liệu văn bản, các vectơ đặc trưng có thể rất cao và thưa thớt dưới bất kỳ biểu diễn tiêu chuẩn nào (túi từ hoặc TF-IDF, v.v.). Đo khoảng cách trực tiếp dưới một đại diện như vậy có thể không đáng tin cậy vì thực tế đã biết rằng trong các kích thước rất cao, khoảng cách giữa hai điểm bất kỳ bắt đầu giống nhau. Một cách để giải quyết vấn đề này là giảm kích thước dữ liệu bằng cách sử dụng PCA hoặc LSA ( Phân tích ngữ nghĩa tiềm ẩn ; còn được gọi là lập chỉ mục ngữ nghĩa tiềm ẩn ) và sau đó đo khoảng cách trong không gian mới. Sử dụng một cái gì đó như LSA trên PCA là thuận lợi vì nó có thể mang lại một đại diện có ý nghĩa về mặt "khái niệm ngữ nghĩa", ngoài việc đo khoảng cách trong không gian chiều thấp hơn.

So sánh các tài liệu dựa trên phân phối xác suất thường được thực hiện bằng cách tính toán phân phối chủ đề của từng tài liệu (sử dụng cái gì đó như Phân bổ Dirichlet tiềm ẩn ), sau đó tính toán một số loại phân kỳ (ví dụ: phân kỳ KL) giữa các phân phối chủ đề của cặp tài liệu. Theo một cách nào đó, nó thực sự giống với việc thực hiện LSA trước rồi sau đó đo khoảng cách trong không gian LSA bằng cách sử dụng phân kỳ KL giữa các vectơ (thay vì tương tự cosine).

Phân kỳ KL là thước đo khoảng cách để so sánh các phân phối, vì vậy có thể tốt hơn nếu biểu diễn tài liệu theo phân phối (thường là trường hợp - ví dụ, các tài liệu được biểu thị dưới dạng phân phối theo các chủ đề, như trong LDA). Cũng lưu ý rằng theo cách trình bày như vậy, các mục trong vectơ đặc trưng sẽ tổng hợp thành một (vì về cơ bản bạn đang coi tài liệu là phân phối theo các chủ đề hoặc khái niệm ngữ nghĩa).

Cũng xem một chủ đề liên quan ở đây .


Cảm ơn. LDA có yêu cầu bạn biết các chủ đề trả trước không? Trong trường hợp của chúng tôi, chúng tôi không biết mỗi tài liệu thuộc về chủ đề nào và chúng tôi sẽ sử dụng biện pháp tương tự để thực hiện phân cụm (EM-G-Means hoặc GAAC)
Joel

@ mun1 Tham khảo rất hay về LSA, tôi đã có một câu trả lời tương tự cách đây một thời gian tại stats.stackexchange.com/questions/369/ chủ
chl

1
@Joel: Không, LDA không cho rằng bạn biết các chủ đề cho từng tài liệu trước đó. BTW, rõ ràng, LDA đại diện cho mỗi tài liệu như một hỗn hợp các chủ đề, không chỉ bằng một chủ đề duy nhất. Vì vậy, mỗi chủ đề sẽ đóng góp vào một số phần trong tài liệu (và các phân số riêng lẻ sẽ tổng hợp thành 1). Về cơ bản, LDA giả định rằng mỗi từ trong tài liệu được tạo ra bởi một số chủ đề.
mun1

@ebony - cảm ơn! Có nguy cơ trả lời lại câu hỏi và lặp lại chính mình, LDA có yêu cầu bạn biết số lượng chủ đề kín đáo không?
Joel

Vâng. Nhưng có những biến thể của LDA (HDP-LDA) không yêu cầu chỉ định số lượng chủ đề. Xem bài viết này: cse.buffalo.edu/facemony/mbeal/ con / hdp.pdf
mun1

0

Bạn có thể muốn dùng thử dịch vụ trực tuyến này để có sự tương tự về tài liệu cosine http://www.scurtu.it/documentSimilarity.html

import urllib,urllib2
import json
API_URL="http://www.scurtu.it/apis/documentSimilarity"
inputDict={}
inputDict['doc1']='Document with some text'
inputDict['doc2']='Other document with some text'
params = urllib.urlencode(inputDict)    
f = urllib2.urlopen(API_URL, params)
response= f.read()
responseObject=json.loads(response)  
print responseObject

2
Vui lòng cung cấp thêm chi tiết.
Tây An
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.