Đối với người mới bắt đầu, Naive Bayes có lẽ không thích hợp ở đây. Nó giả định tính độc lập giữa các yếu tố đầu vào (do đó là "Ngây thơ") và các từ trong câu rất phụ thuộc.
Nhưng, giả sử bạn thực sự muốn chạy với NB như một thuật toán để bắt đầu thử nghiệm, có hai tùy chọn tôi sẽ xem xét:
Ungraceful: Rất nhiều phân loại NB
Đây sẽ là một cách tiếp cận khác. Tạo một corupus của tất cả các từ được quan sát như vectơ đầu vào của bạn. Tạo một văn bản tắt tất cả các thẻ được quan sát như vectơ đầu ra của bạn. Một trình phân loại NB có nhiều đầu ra tương đương với việc có nhiều phân loại NB với một đầu ra mỗi đầu ra (vì vậy hãy thực hiện bất kỳ cách nào dễ dàng hơn trong bất kỳ khung phần mềm nào bạn đang sử dụng). Hãy coi mỗi phần tử là một mẫu đào tạo trong đó một đầu vào nhất định (một từ) là 1
nếu từ đó có mặt và 0
nếu từ đó không có. Sử dụng sơ đồ nhị phân tương tự cho đầu ra.
Kẻ vũ phu này buộc ứng dụng Trình phân loại NB vào dữ liệu của bạn và để bạn tìm thấy ý nghĩa bằng cách vẫn haivng để khai thác bộ phân loại khổng lồ mà bạn sẽ để lại.
Duyên dáng hơn: Xử lý dữ liệu của bạn
Đây là cách tiếp cận tôi khuyên dùng nếu bạn muốn chạy với một Trình phân loại NB nhiều lớp.
Mục tiêu của bạn ở đây là tìm ra cách ánh xạ từng bộ thẻ vào một lớp duy nhất. Tôi chắc chắn có một số loại sơ đồ phân cụm hoặc phân tích mạng (có lẽ ["người nổi tiếng"] được liên kết với ["giết người"] có thể trở thành một phân đoạn ["đồi trụy"]) sẽ ánh xạ hợp lý các thẻ của bạn thành một cụm. Nếu bạn coi các thẻ là các nút và hai thẻ đã cho cùng nhau làm liên kết, thì bạn sẽ muốn xem xét các thuật toán phát hiện cộng đồng (đó là nơi tôi bắt đầu). Nhưng, nếu bạn chỉ muốn một cái gì đó hoạt động, thì một số loại hack trên các thẻ chuyển đổi danh sách các thẻ thành chỉ thẻ thường thấy nhất trong tập dữ liệu của bạn là đủ.
Phương pháp này tải trước công việc làm sạch dữ liệu của bạn và sẽ làm cho đầu ra của Trình phân loại NB dễ hiểu hơn.