2010-05-14 52 views
17

Tôi đang bắt tay vào một dự án NLP để phân tích tình cảm.Phân tích ý kiến ​​với python NLTK cho câu sử dụng dữ liệu mẫu hoặc dịch vụ web?

Tôi đã cài đặt thành công NLTK cho python (có vẻ như một phần mềm tuyệt vời cho việc này). Tuy nhiên, tôi đang gặp khó khăn khi hiểu cách nó có thể được sử dụng để hoàn thành nhiệm vụ của tôi.

Đây là nhiệm vụ của tôi:

  1. Tôi bắt đầu với một mảnh dài của dữ liệu (cho phép nói vài trăm tweets về chủ đề của cuộc bầu cử Anh từ webservice của họ)
  2. Tôi muốn chia nhỏ ra thành các câu (hoặc thông tin không quá 100 ký tự) (tôi đoán tôi có thể làm điều này trong python ??)
  3. Sau đó tìm kiếm tất cả các câu cho các trường hợp cụ thể trong câu đó "David Cameron"
  4. Sau đó, tôi muốn kiểm tra xem có tình cảm tích cực/tiêu cực trong mỗi câu và đếm chúng cho phù hợp

NB: Tôi không thực sự lo lắng quá nhiều về độ chính xác bởi vì bộ dữ liệu của tôi là lớn và cũng không lo lắng quá nhiều về mỉa mai.

Dưới đây là những rắc rối Tôi gặp:

  1. Tất cả các bộ dữ liệu tôi có thể tìm thấy ví dụ dữ liệu đánh giá phim gốc đi kèm với NLTK arent ở định dạng webservice. Có vẻ như việc này đã hoàn tất một số quá trình xử lý. Theo như tôi có thể thấy việc xử lý (bằng stanford) đã được thực hiện với WEKA. Liệu NLTK có thể tự mình làm tất cả điều này không? Tại đây, tất cả các tập dữ liệu đã được tổ chức thành tích cực/tiêu cực, ví dụ: polarity dataset http://www.cs.cornell.edu/People/pabo/movie-review-data/ Điều này được thực hiện như thế nào? (để tổ chức các câu bằng tình cảm, chắc chắn là WEKA? hay cái gì khác?)

  2. Tôi không chắc tại sao WEKA và NLTK lại được sử dụng cùng nhau. Có vẻ như họ cũng làm như vậy. Nếu tôi xử lý dữ liệu với WEKA trước tiên để tìm tình cảm tại sao tôi cần NLTK? Có thể giải thích tại sao điều này có thể cần thiết không?

Tôi đã tìm thấy một vài tập lệnh nhận được phần nào gần tác vụ này, nhưng tất cả đều sử dụng cùng một dữ liệu được xử lý trước. Liệu không thể tự mình xử lý dữ liệu này để tìm tình cảm trong các câu thay vì sử dụng các mẫu dữ liệu được đưa ra trong liên kết?

Bất kỳ trợ giúp nào được đánh giá cao và sẽ giúp tôi tiết kiệm nhiều tóc!

Cheers Ke

Trả lời

12

Bộ phim xem xét dữ liệu đã được đánh dấu bởi con người như là tích cực hay tiêu cực (người đã xem xét cho bộ phim một đánh giá được sử dụng để xác định phân cực). Các nhãn tiêu chuẩn vàng này cho phép bạn đào tạo một trình phân loại, sau đó bạn có thể sử dụng cho các đánh giá phim khác. Bạn có thể đào tạo một trình phân loại trong NLTK với dữ liệu đó, nhưng việc áp dụng các kết quả cho các tweet bầu cử có thể kém chính xác hơn so với việc đoán ngẫu nhiên là dương hoặc âm. Ngoài ra, bạn có thể đi qua và gắn nhãn một vài nghìn tweets mình là tích cực hoặc tiêu cực và sử dụng điều này như là tập huấn luyện của bạn.

Đối với một mô tả của việc sử dụng Naive Bayes để phân tích tình cảm với NLTK: http://streamhacker.com/2010/05/10/text-classification-sentiment-analysis-naive-bayes-classifier/

Sau đó trong mã đó, thay vì sử dụng corpus phim, sử dụng dữ liệu của riêng bạn để tính toán số lượng từ (trong phương pháp word_feats).

+0

yep, tôi đã kết thúc trên trang web đó sau một chút tìm kiếm, nhưng tôi đoán là có một chút khó khăn về cách lấy thống kê cho mỗi bài đánh giá. Làm thế nào tôi có thể sử dụng nltk để cung cấp cho tôi một danh sách các id đánh giá với 1 hoặc 0 cho pos/neg? cheers ke –

+0

Có thể hữu ích cho người đọc trong tương lai: Tập đoàn xem xét phim có các danh mục "pos" và "neg". Để có được một danh sách các tập tin trong "neg" catogory, chỉ cần sử dụng 'movie_reviews.fileids (" neg ")'. Bạn cũng có thể trích xuất trực tiếp tất cả văn bản trong danh mục phủ định bằng cách nói, ví dụ: 'movie_reviews.sents (categories = [" neg "])'. (Các phương thức này làm việc với tất cả các phân loại nltk corpora. Để liệt kê các danh mục trong một kho văn bản, sử dụng 'corpus.categories()'.) – alexis

1

Tại sao bạn không sử dụng WSD. Sử dụng công cụ Định hướng để tìm các giác quan. và sử dụng phân cực bản đồ cho các giác quan thay vì từ. Trong trường hợp này, bạn sẽ nhận được kết quả chính xác hơn một chút so với phân cực chỉ mục từ.

+1

Âm thanh tuyệt vời. Bạn có bất kỳ giấy tờ hoặc ứng dụng nào đề cập đến điều này không? – mixdev