2012-11-21 32 views
17

Tôi đã tự hỏi làm thế nào người ta sẽ tính toán thông tin tương tự theo chiều kim đồng hồ để phân loại văn bản. Để chính xác hơn, tôi muốn phân loại các tweet trong các danh mục. Tôi có một tập dữ liệu của tweets (được chú thích), và tôi có một từ điển cho mỗi loại từ thuộc về thể loại đó. Với thông tin này, làm cách nào để tính toán PMI cho mỗi danh mục trên mỗi tweet, để phân loại một tweet ở một trong các danh mục này.Thông tin tương tự theo chiều dọc trên văn bản

Trả lời

25

PMI là thước đo liên kết giữa một đối tượng địa lý (trong trường hợp của bạn là một từ) và một lớp (danh mục), không nằm giữa tài liệu (tweet) và danh mục. Công thức có sẵn trên Wikipedia:

    P(x, y) 
pmi(x ,y) = log ------------ 
        P(x)P(y) 

Trong công thức đó, X là biến ngẫu nhiên mà mô hình sự xuất hiện của một từ, và Y mô hình sự xuất hiện của một lớp. Đối với một từ nhất định x và một lớp nhất định y, bạn có thể sử dụng PMI để quyết định xem tính năng có mang tính thông tin hay không và bạn có thể thực hiện lựa chọn tính năng trên cơ sở đó. Việc có ít tính năng hơn thường cải thiện hiệu suất của thuật toán phân loại và tăng tốc độ đáng kể. Tuy nhiên, bước phân loại là riêng biệt - PMI chỉ giúp bạn chọn các tính năng tốt hơn để nạp vào thuật toán học tập của bạn.


Chỉnh sửa: Một điều tôi không đề cập trong bài gốc là PMI nhạy cảm với tần số từ. Hãy viết lại công thức như

    P(x, y)    P(x|y) 
pmi(x ,y) = log ------------ = log ------------ 
        P(x)P(y)    P(x) 

Khi xy có tương quan hoàn hảo, P(x|y) = P(y|x) = 1, vì vậy pmi(x,y) = 1/P(x). Ít thường xuyên hơn x -es (từ) sẽ có điểm số PMI cao hơn thường lệ x -es, ngay cả khi cả hai đều tương quan hoàn toàn với y.

+0

Câu hỏi tiếp theo. Bạn nói "X là biến ngẫu nhiên mô hình sự xuất hiện của một từ". Có bao nhiêu lần từ xảy ra trong toàn bộ tập dữ liệu không? ví dụ. Tôi có 250.000 câu, x là sau đó bao nhiêu lần từ xảy ra trong toàn bộ tập dữ liệu? Và những gì về p (x, y) làm thế nào tôi sẽ cần phải giải thích điều đó? số lần x và y xuất hiện cùng nhau trong một câu? – Ojtwist

+10

'P (x)' là xác suất của từ 'x' (chữ thường) xảy ra, là tỷ số giữa số lượng tài liệu chứa từ và tổng số tài liệu. 'P (y)' là xác suất của lớp (danh mục) 'y', được tính theo kiểu tương tự. 'P (x, y)' nếu tỷ lệ giữa số lượng tài liệu * cả hai * của nhãn 'y' và chứa từ' x' và tổng số tài liệu. – mbatchkarov

+0

Bạn có thực sự cần bình thường hóa số lượng xác suất bằng cách chia cho số lượng tài liệu không? Tôi biết bạn nhận được một số pmi() khác nhau, nhưng pmi() tương đối giữa các cặp khác nhau (X, Y) giữ nguyên và giá trị thực tế của pmi không có nghĩa là bất cứ điều gì anyways phải không? Tôi chỉ có thể nhìn thấy sự bình thường hóa hữu ích nếu so sánh pmi trên các tập tài liệu khác nhau (với số lượng tài liệu khác nhau) – kane

Các vấn đề liên quan