2012-05-05 25 views
8

Tôi đang gặp phải một chút vấn đề liên quan đến biểu thức chính quy và CategorizedPlaintextCorpusReader bằng Python.Tạo một kho dữ liệu được phân loại tùy chỉnh trong NLTK và Python

Tôi muốn tạo một kho văn bản được phân loại tùy chỉnh và đào tạo một trình phân loại Naive-Bayes trên đó. Vấn đề của tôi là như sau: Tôi muốn có hai loại, "pos" và "neg". Các tệp dương nằm trong một thư mục, main_dir/pos/*.txt và các tệp phủ định nằm trong một thư mục riêng biệt, main_dir/neg/*.txt.

Làm cách nào để sử dụng CategorizedPlaintextCorpusReader để tải và gắn nhãn tất cả các tệp dương trong thư mục pos và thực hiện tương tự cho các tệp phủ định?

NB: Thiết lập hoàn toàn giống với đơn vị tổ chức Movie_reviews (~nltk_data\corpora\movie_reviews).

+0

xem http://stackoverflow.com/questions/29275614/using-my-own-corpus-instead-of-movie-reviews-corpus-for-classification-in-nltk – alvas

Trả lời

18

Đây là câu trả lời cho câu hỏi của tôi. Vì tôi đã suy nghĩ về việc sử dụng hai trường hợp, tôi nghĩ rằng nó tốt để trang trải cả hai trong trường hợp ai đó cần câu trả lời trong tương lai. Nếu bạn có cùng thiết lập với tư liệu movie_review - một số thư mục được gắn nhãn giống như cách bạn muốn nhãn của mình được gọi và chứa dữ liệu đào tạo bạn có thể sử dụng.

reader = CategorizedPlaintextCorpusReader('~/MainFolder/', r'.*\.txt', cat_pattern=r'(\w+)/*') 

Cách tiếp cận khác mà tôi đang cân nhắc là đưa tất cả mọi thứ trong một thư mục và đặt tên tệp 0_neg.txt, 0_pos.txt, 1_neg.txt vv Các mã cho độc giả của bạn sẽ giống như:

reader = CategorizedPlaintextCorpusReader('~/MainFolder/', r'.*\.txt', cat_pattern=r'\d+_(\w+)\.txt') 

Tôi hy vọng điều này sẽ giúp một người nào đó trong tương lai.

+1

nó đã làm, cảm ơn bạn! :) –