Phân loại tài liệu: tf-idf trước hoặc sau khi lọc tính năng?


8

Tôi có một dự án phân loại tài liệu nơi tôi đang nhận nội dung trang web và sau đó chỉ định một trong nhiều nhãn cho trang web theo nội dung.

Tôi phát hiện ra rằng tf-idf có thể rất hữu ích cho việc này. Tuy nhiên, tôi không chắc chắn chính xác khi nào sử dụng nó.

Giả sử một trang web liên quan đến một chủ đề cụ thể làm cho đề cập nhiều lần về nó, đây là quá trình hiện tại của tôi:

  1. Truy xuất nội dung trang web, phân tích cú pháp cho văn bản thuần túy
  2. Bình thường hóa và nội dung gốc
  3. Token hóa thành unigram (có thể cả bigram nữa)
  4. Truy xuất số lượng của mỗi unigram cho tài liệu đã cho, lọc các từ có độ dài thấp và các từ xuất hiện thấp
  5. Huấn luyện một trình phân loại như NaiveBayes trên tập kết quả

Câu hỏi của tôi là như sau: tf-idf sẽ phù hợp ở đâu? Trước khi bình thường hóa / xuất phát? Sau khi bình thường hóa nhưng trước khi token hóa? Sau khi token hóa?

Bất kỳ cái nhìn sâu sắc sẽ được đánh giá rất nhiều.


Biên tập:

Khi kiểm tra kỹ hơn, tôi nghĩ rằng tôi có thể đã gặp phải một sự hiểu lầm về cách TF-IDF hoạt động. Ở bước 4 ở trên mà tôi mô tả, tôi có phải cung cấp toàn bộ dữ liệu của mình vào TF-IDF cùng một lúc không? Nếu, ví dụ, dữ liệu của tôi như sau:

[({tokenized_content_site1}, category_string_site1), 
 ({tokenized_content_site2}, category_string_site2), 
...
 ({tokenized_content_siten}, category_string_siten)}]

Ở đây, cấu trúc ngoài cùng là một danh sách, chứa các bộ dữ liệu, chứa một từ điển (hoặc hashmap) và một chuỗi.

Tôi có phải cung cấp toàn bộ dữ liệu đó vào máy tính TF-IDF cùng một lúc để đạt được hiệu quả mong muốn không? Cụ thể, tôi đã xem xét TfidfVectorizer để tìm hiểu điều này, nhưng tôi không chắc lắm về việc sử dụng nó như các ví dụ khá thưa thớt.

Câu trả lời:


8

Như bạn đã mô tả, Bước 4 là nơi bạn muốn sử dụng TF-IDF. Về cơ bản, TD-IDF sẽ tính từng thuật ngữ trong mỗi tài liệu và chỉ định một số điểm cho tần suất tương đối trên toàn bộ bộ sưu tập tài liệu.

Tuy nhiên, có một bước lớn bị thiếu trong quy trình của bạn: chú thích một tập huấn luyện. Trước khi bạn huấn luyện trình phân loại của mình, bạn sẽ cần chú thích thủ công một mẫu dữ liệu của mình với các nhãn bạn muốn có thể tự động áp dụng bằng cách sử dụng trình phân loại.

Để làm cho tất cả điều này dễ dàng hơn, bạn có thể muốn xem xét sử dụng Trình phân loại Stanford . Nó sẽ thực hiện trích xuất tính năng và xây dựng mô hình phân loại (hỗ trợ một số thuật toán học máy khác nhau), nhưng bạn vẫn cần chú thích dữ liệu đào tạo bằng tay.


Trước khi đào tạo trình phân loại, tôi định dạng dữ liệu theo bộ ({tokenized content}, category). Vì tôi có các trang web tập huấn trong cơ sở dữ liệu và đã được phân loại, nên đó không phải là vấn đề. Các nhãn mà trình phân loại sẽ có thể áp dụng sẽ chỉ là những nhãn mà nó đã thấy từ tập huấn luyện có chú thích, đúng không?
user991710

Re: "Các nhãn mà trình phân loại sẽ có thể áp dụng sẽ chỉ là những nhãn mà nó đã thấy từ tập huấn luyện có chú thích, đúng không?" Chính xác. Trong học tập có giám sát, bộ phân loại sẽ không thể tạo các danh mục mới / chưa thấy. Nếu bạn muốn làm điều đó, bạn nên xem xét một cái gì đó như phân cụm hoặc mô hình chủ đề.
Charlie Greenbacker

Cám ơn bạn rất nhiều về thông tin đó! Khi bạn trả lời câu hỏi của tôi, tôi sẽ chấp nhận đây là câu trả lời.
dùng991710

Tôi xin lỗi vì đã đưa điều này trở lại sau khi chấp nhận câu trả lời ở trên, nhưng tôi cho rằng tôi sẽ có tỷ lệ nhận được câu trả lời cho bản cập nhật của mình tốt hơn nếu tôi hỏi bạn trực tiếp. Vì vậy, để tránh những bình luận dài dòng, tôi sẽ đánh giá rất cao nếu bạn có thể xem bản chỉnh sửa của tôi trong bài viết gốc.
dùng991710

1
RE: "tôi có phải cung cấp toàn bộ dữ liệu của mình vào TF-IDF cùng một lúc không?" Vâng, đó là cách nó hoạt động. RE: "Tôi đã xem xét TfidfVectorizer để tìm hiểu điều này, nhưng tôi không chắc chắn về việc sử dụng nó như các ví dụ khá thưa thớt." Dưới đây là một ví dụ tôi đã viết: github.com/charlieg/ - - có lẽ tốt nhất nếu bạn sử dụng một kho tài liệu làm đầu vào, thay vì một số lệnh + chuỗi tuple bạn đã tạo.
Charlie Greenbacker
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.