2011-07-05 79 views
6

Tôi muốn phân loại các tin nhắn văn bản thành một số danh mục như "xây dựng quan hệ", "phối hợp", "chia sẻ thông tin", "chia sẻ kiến ​​thức" & "giải quyết xung đột". Tôi đang sử dụng thư viện NLTK để xử lý các dữ liệu này. Tôi muốn biết phân loại nào, trong nltk, tốt hơn cho vấn đề phân loại nhiều lớp cụ thể này.Loại phân loại nào cần chọn trong NLTK

Tôi định sử dụng Phân loại Naive Bayes, có nên không?

Trả lời

8

Naive Bayes là đơn giản và dễ hiểu phân loại và vì lý do đó nó là tốt đẹp để sử dụng. Cây quyết định với tìm kiếm chùm để tìm phân loại tốt nhất không khó hiểu hơn và thường tốt hơn một chút. MaxEnt và SVM có xu hướng phức tạp hơn và SVM yêu cầu một số điều chỉnh để có được quyền.

Quan trọng nhất là lựa chọn các tính năng + số lượng/chất lượng dữ liệu bạn cung cấp!

Với vấn đề của bạn, tôi sẽ tập trung đầu tiên vào việc đảm bảo bạn có một tập dữ liệu đào tạo/thử nghiệm tốt và cũng có thể chọn các tính năng tốt. Vì bạn đang đặt câu hỏi này, bạn không có nhiều kinh nghiệm với việc học máy cho NLP, vì vậy tôi muốn bắt đầu dễ dàng với Naive Bayes vì ​​nó không sử dụng các tính năng phức tạp - bạn chỉ có thể mã hóa và đếm số lần xuất hiện từ.

EDIT: Câu hỏi How do you find the subject of a sentence? và câu trả lời của tôi cũng đáng xem.

+1

Cảm ơn rất nhiều vì câu trả lời.Tôi đang phân loại các tin nhắn SMS và ngôn ngữ rất chính thức (rõ ràng) khoảng 50% các từ là OOV (ngoài vốn từ vựng) nên tôi đã chuẩn hóa các SMS đó thành văn bản tiếng Anh thích hợp với khoảng 15-20% OOV bằng công cụ dịch thuật . Bạn có đề xuất bất kỳ cách nào khác để bình thường hóa các tin nhắn văn bản này không. – Maggie

+0

Rất tiếc, tôi không thể nhận xét về bình thường hóa văn bản như tôi biết bên cạnh không có gì về nó. Có thể có từ điển biểu tượng cảm xúc và từ viết tắt? Twitter + SMS thực sự khó! – nflacco

2

Có, đào tạo trình phân loại Naive Bayes cho từng danh mục và sau đó gắn nhãn cho mỗi thư vào lớp dựa trên Trình phân loại cung cấp điểm cao nhất là cách tiếp cận đầu tiên tiêu chuẩn cho các vấn đề như thế này. Có nhiều thuật toán phân loại lớp đơn tinh vi hơn mà bạn có thể thay thế cho Naive Bayes nếu bạn thấy hiệu suất không đầy đủ, chẳng hạn như Máy hỗ trợ Vector (Tôi tin là có sẵn trong NLTK thông qua một plug Weka, nhưng không tích cực). Trừ khi bạn có thể nghĩ về bất cứ điều gì cụ thể trong lĩnh vực này vấn đề mà sẽ làm cho Naieve Bayes đặc biệt là không phù hợp, của nó ofen đi-to "đầu tiên thử" cho rất nhiều dự án.

Trình phân loại NLTK khác mà tôi cân nhắc sẽ cố gắng là MaxEnt vì tôi tin rằng nó sẽ xử lý phân loại nhiều lớp. (Mặc dù cách tiếp cận phân lớp nhị phân rất chuẩn và phổ biến). Trong mọi trường hợp, điều quan trọng nhất là thu thập một kho dữ liệu văn bản được gắn thẻ rất lớn.

Nếu bằng "Tin nhắn văn bản" bạn đang đề cập đến các tin nhắn văn bản điện thoại di động thực tế rất ngắn và ngôn ngữ rất chính thức và đa dạng, tôi cho rằng lựa chọn tính năng có thể trở thành yếu tố lớn hơn trong việc xác định độ chính xác. lựa chọn cho bạn. Ví dụ, sử dụng Stemmer hoặc Lemmatizer để hiểu các từ viết tắt và thành ngữ được sử dụng, gắn thẻ một phần lời nói hoặc đoạn trích, trích xuất thực thể, trích xuất mối quan hệ giữa các cụm từ có thể cung cấp nhiều bang hơn sử dụng các trình phân loại phức tạp hơn.

Bài viết này nói về việc phân loại các thông báo trạng thái trên Facebook dựa trên tình cảm, có một số vấn đề tương tự và có thể cung cấp một số thông tin chi tiết về vấn đề này. Các liên kết là một bộ nhớ cache của google vì tôi đang gặp vấn đề w/trang web gốc:

http://docs.google.com/viewer?a=v&q=cache:_AeBYp6i1ooJ:nlp.stanford.edu/courses/cs224n/2010/reports/ssoriajr-kanej.pdf+maxent+classifier+multiple+classes&hl=en&gl=us&pid=bl&srcid=ADGEESi-eZHTZCQPo7AlcnaFdUws9nSN1P6X0BVmHjtlpKYGQnj7dtyHmXLSONa9Q9ziAQjliJnR8yD1Z-0WIpOjcmYbWO2zcB6z4RzkIhYI_Dfzx2WqU4jy2Le4wrEQv0yZp_QZyHQN&sig=AHIEtbQN4J_XciVhVI60oyrPb4164u681w&pli=1

+0

Cảm ơn rất nhiều vì câu trả lời. Vâng, tôi đang phân loại SMS và ngôn ngữ rất chính thức (rõ ràng) khoảng 50% từ là OOV (ngoài vốn từ vựng) nên tôi đã chuẩn hóa các SMS đó thành văn bản tiếng Anh thích hợp với khoảng 15-20% OOV bằng công cụ Dịch thuật Thống kê Moses. Bạn có đề xuất bất kỳ cách nào khác để bình thường hóa các tin nhắn văn bản này không. – Maggie

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