Định lượng sự giống nhau của túi từ


7

Tôi có hai bộ dữ liệu chứa các từ phổ biến nhất và tần số của hai bài viết khác nhau.

ví dụ:

A = [apple: 23, healthy: 15, tasty: 4]
B = [apple: 19, healthy: 21, bad: 7]

Cả hai tập dữ liệu đều chứa các từ tương tự nhau. Tôi muốn tìm một biện pháp sẽ cho tôi một ý tưởng về việc hai bài báo có nói về cùng một điều hay không. Trong trường hợp này, họ có thể đang thảo luận về táo và lợi ích sức khỏe của họ.

Tôi có thể có được một biện pháp đơn giản như thế similarity = words in A and B / total number of wordsnhưng liệu có một biện pháp chính thức hơn, có lẽ là một biện pháp sử dụng tần số như trọng lượng?


Tiêu đề trước cho thấy rằng bạn biết rằng cả hai túi có cùng số lượng từ khác nhau. Đây thực sự là những gì bạn có ý nghĩa? Ngoài ra, tại sao điều này được đảm bảo; có phải bạn đang chọn chỉntừ thường xuyên nhất từ ​​mỗi bài viết?
Kodiologist

Tôi có thể chọn ncho cả hai bài viết. Có thể chúng có kích thước khác nhau nhưng tôi chỉ trả lại 10 từ phổ biến nhất để chúng tôi có thể đảm bảo về cơ bản.
củ cải

Có rất nhiều kỹ thuật .. Tfidf (tần số nghịch đảo tần số tài liệu) và bm25 có thể hữu ích để bắt đầu với
seanv507

TF-IDF, trong đó Okapi-BM25 chỉ là trường hợp đặc biệt, là một cách để biến đổi số lượng BoW, nhưng bản thân nó không tạo ra sự tương đồng giữa các vectơ (được chuyển đổi).
fnl

Câu trả lời:


11

Hãy để tôi giải quyết điều này bằng cách mô tả bốn số liệu tương tự có thể phổ biến nhất cho các túi từ và vectơ tài liệu nói chung, đó là so sánh các bộ sưu tập các biến rời rạc.

Sự tương tự cosine được sử dụng thường xuyên nhất nói chung, nhưng bạn phải luôn luôn đo lường trước và đảm bảo rằng không có sự tương tự nào khác sẽ tạo ra kết quả tốt hơn cho vấn đề của bạn, đánh giá xem bạn có thể sử dụng một số biện pháp phức tạp hơn không. Ngoại trừ sự giống nhau về tập hợp của Jaccard, bạn có thể (thực sự có thể muốn) áp dụng một số hình thức cân lại TF-IDF (ff) cho số lượng / vectơ tài liệu của bạn trước khi sử dụng các biện pháp này. Thuật ngữ trọng số TF thậm chí có thể là Okapi-BM25 và thuật ngữ IDF được thay thế bằng entropy , nhưng cuối cùng không có liên quan gì đến câu hỏi ban đầu (các biện pháp tương tự của BoW).

Lưu ý rằng biện pháp đầu tiên, độ tương tự của Jaccard, chịu một nhược điểm đáng kể: Nó bị ảnh hưởng nặng nề nhất bởi sự khác biệt về độ dài giữa các tài liệu và cũng không tính đến tần số từ. Đối với sự tương tự Cosine vàχ2-distance bạn có thể (hoặc đúng hơn, nên) điều chỉnh các vectơ bằng cách chuẩn hóa các vectơ của bạn thành đơn vị chiều dài (nghĩa là, ngoài việc cân lại TF-IDF). Nhưng ngay cả khi đó, các tài liệu ngắn hơn sẽ có số lượng thưa thớt hơn (nghĩa là nhiều số không trong vectơ của chúng) so với các tài liệu dài hơn, vì những lý do rõ ràng. (Một cách xung quanh sự khác biệt về độ thưa thớt thể chỉ bao gồm các từ trên mức cắt tối thiểu, sử dụng giá trị ngưỡng động tăng theo chiều dài tài liệu.)

Trước khi chúng ta đi qua các biện pháp, cần đề cập rằng cuộc thảo luận này chỉ tập trung vào các biện pháp đối xứng , trong khi biện pháp bất đối xứng cũng tồn tại (đặc biệt là phân kỳ KL ).

1. Tương tự JaccardJ

Đây là số liệu đơn giản nhất: Thu thập tập hợp tất cả các từ trong cả hai tài liệu (tweet, câu, ...), ABvà đo tỷ lệ các từ mà hai bộ có điểm chung:

JA,B=|AB||AB|

Biện pháp này cũng hoạt động đối với các từ (và tài liệu) bằng cách thu thập các bộ ký tự (hoặc từ) n-grams, ở đâu nthông thường là 1, 2 và có thể 3. Lưu ý rằng sự tương tự của Jaccard có giới hạn của nó; Nếu trình tự củaA đã từng (x,y,z,x,y,z,x,y,z) và của B chỉ là (x,y,z), sự giống nhau Jaccard của họ dù sao cũng hoàn hảo (nghĩa là 1.0), trừ khi bạn sử dụng "mẹo" n-gram vừa mô tả.

Cuối cùng, cần lưu ý rằng hệ số DiceD là một phiên bản có liên quan nhiều hơn một chút về sự tương tự của Jaccard, nhưng cũng không tính đến số lượng từ và nó có thể dễ dàng được tính từ J như: D=2J1+J.

2. Tương tự cosinα

Tương tự Cosine có lẽ là số liệu phổ biến nhất. Thu thập các bộ theo thứ tự của tất cả số lượng từ từ cả hai tài liệu (tweet, câu, ...),AB, đó là, hiệu quả, hai " vectơ tài liệu "abvà đo góc Cosine giữa hai vectơ:

αA,B=ab|a||b|=aibiai2bi2

Bây giờ, vì bạn có thể chuẩn hóa các vectơ của mình thành các vectơ đơn vị (nghĩa là |z|các phần) trước khi thực hiện phép tính này, bạn thực sự chỉ cần tính tích của sản phẩm chấm giữa hai vectơ để tính độ tương tự - không gì khác hơn là tổng các sản phẩm của tất cả các cặp. Sản phẩm chấm có thể được tính toán đặc biệt hiệu quả trên các CPU hiện đại.

3. Hệ số tương quan xếp hạng của Spearmanρ

Thay vì sử dụng số đếm của từng từ, bạn sắp xếp các từ của từng tài liệu theo số đếm của chúng và từ đó gán một thứ hạng cho mỗi từ, cho cả tài liệu,AB. Điều đó giúp bạn không phải bình thường hóa các vectơ tài liệu. Chúng ta hãy sử dụng danh pháp Wikipedia và gọi hàm tạo thứ hạng (tìm thứ hạng cho một từ nhất địnhi từ một danh sách tuple (từ, đếm) Xhoặc một vectơ tài liệu x) rg. Thứ hai, hãy xác định khoảng cách đód giữa cùng một từ i trong số hai tài liệu như di=rg(A,i)rg(B,i). Đó là,dsự khác biệt giữa hai cấp bậc, bằng không nếu bằng nhau và khác không. Với điều này, hệ số có thể được tính từ các số nguyên như:

ρA,B=16di2n(n21)

Lưu ý rằng công thức này có một yêu cầu mạnh mẽ: Tất cả các cấp bậc phải khác biệt , vì vậy ngay cả đối với các mối quan hệ (nếu hai từ có cùng số đếm trong cùng một tài liệu), bạn cần chỉ định các cấp bậc riêng biệt; Tôi đề nghị, bạn sử dụng thứ tự chữ và số trong những trường hợp đó. Và đối với các từ chỉ xuất hiện trong một tài liệu, bạn đặt chúng ở vị trí cuối cùng trong tài liệu khác (một lần nữa sử dụng cùng thứ tự chữ và số). Cần lưu ý rằng bằng cách cân lại số đếm của bạn với TF-IDF trước khi tính toán độ tương tự này, bạn có thể có ít mối quan hệ hơn giữa các từ có số đếm khác không.

Nếu bạn muốn duy trì các mối quan hệ (nghĩa là không muốn "giả tạo" làm cho tất cả các cấp bậc trở nên khác biệt) hoặc nếu bạn đang sử dụng các điểm ngắt để loại bỏ một số bộ (từ, đếm) hoặc chỉ chọn hàng đầu n tuy nhiên, hầu hết các từ thường xuyên nhất, bạn nên sử dụng công thức chuẩn cho ρ (và xác định rgnhư một hàm tạo ra vectơ xếp hạng hoàn chỉnh cho tất cả các bộ dữ liệu (từ, đếm) được sắp xếp theo thứ tự chữ và số của tài liệu của bạnXtrong vector tài liệux):

ρA,B=cov(rg(a),rg(b))σrgAσrgB

Ở đâu covhiệp phương sai giữa các cấp bậc của hai tài liệu vàσrgX là độ lệch chuẩn của các cấp bậc (có thể bị cắt) rg (có quan hệ) của tài liệu X.

Tóm lại, bạn có thể thấy cách tiếp cận này là một nửa giữa sự tương đồng của Jaccard và sự tương đồng của Cosine. Đặc biệt, nó (một chút nữa - xem biện pháp tiếp theo) mạnh mẽ chống lại sự khác biệt về phân phối giữa số lượng từ giữa các tài liệu, trong khi vẫn tính đến tần số từ tổng thể. Tuy nhiên, trong hầu hết các tác phẩm, sự tương tự của Cosine dường như thực hiện hiệu chỉnh thứ hạng của Spearman - nhưng bạn nên kiểm tra điều này và có thể nhận được kết quả tốt với TF-IDF và Spearman, trong khi, như đã nói, cách tiếp cận này không yêu cầu bạn thực hiện bình thường hóa chiều dài các vectơ tài liệu của bạn.

4. (Pearson'sχ2 dựa trên kiểm tra) χ2 khoảng cách

Cho đến nay, tất cả chúng tôi giống nhau các biện pháp giả định tính đồng nhất của tần số từ, đó là giả định rằng phương sai của đếm từ của chúng tôi đều bình đẳng giữa tất cả các văn bản của một bộ sưu tập (một "corpus"), một cái gì đó là (hy vọng, loại trực giác) không trường hợp . Đó là, trước đó, Kilgarriff (1997) đã chứng minh rằngχ2là một sự phù hợp tốt hơn để so sánh số lượng từ so với các biện pháp trên của chúng tôi. Lưu ý rằng nếu bạn đang theo dõi nghiên cứu hiện tại, để so sánh kho dữ liệu ngày hôm nay (ví dụ: để thực hiện lựa chọn tính năng ), tuy nhiên, có lẽ bạn nên sử dụng thử nghiệm Bootstrap thay vìχ2.

Kilgarriff χ2 so sánh cũng có thể được áp dụng cho các tài liệu (bằng cách giả sử rằng chỉ có hai "lớp", hai tài liệu của bạn, và do đó, d.f.=1) và do tính mạnh mẽ của nó, nó có thể được ưa thích hơn các biện pháp tương tự được hiển thị cho đến nay. Lưu ý rằng phương pháp này cung cấp cho bạn một khoảng cách để chuyển đổi giá trị này thành độ tương tự , bạn phải thực hiện nghịch đảo của nó (nghĩa là khoảng cách này càng lớn thì độ tương tự của tài liệu càng nhỏ). Hãy để chúng tôi xác định số lượng của tất cả các từ trong một tài liệuX như nX=xi và tổng số cả hai tài liệu AB như n=nA+nB. Sau đó, mộtχ2khoảng cách dựa trên nền tảng cho hai tài liệu (vectơ tài liệu) có thể được lấy từ công thức cơ sở của Pearson(OiEi)2Ei như:

χA,B2=n[ai2nA(ai+bi)+bi2nB(ai+bi)]n

Tuy nhiên, tính toán này tốn kém hơn nhiều khi chạy, có lẽ chính nó giải thích lý do tại sao hầu hết các cách tiếp cận đều tương tự Cosine, và thậm chí còn hơn thế nếu bạn có thể xác minh rằng kết quả phân loại / truy xuất / phân cụm của bạn không đạt được từ thước đo khoảng cách sau này. Ngoài ra, như được hiển thị bởi bài báo được liên kết, thước đo khoảng cách này dường như không cạnh tranh với sự tương đồng của Cosine với việc cân lại TF-IDF. Nhưng lưu ý rằng giấy được liên kết sử dụng số đếm tần số "thô" để tính toán khoảng cách này và so sánh với độ tương tự Cosine của TF-IDF. Như đã thảo luận, trước tiên, thường là một ý tưởng tốt để bình thường hóa các vectơ tài liệu trên tổng số từ của chúng (nghĩa là độ dài) để có kết quả tốt, nghĩa là biến đổiX/nX đầu tiên (và thậm chí bạn có thể thử áp dụng trọng số vectơ tài liệu TF-IDF trước đó), trong trường hợp đó, công thức trên đơn giản hóa (một chút) cho:

χA,B2=2[ai2ai+bi+bi2ai+bi]2
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.