Tôi đang cố gắng phân loại các tweet theo tình cảm của chúng thành ba loại (Mua, Giữ, Bán). Tôi đang sử dụng R và gói e1071.R: Căn cứ phân loại Naives Bayes quyết định chỉ trên xác suất trước
Tôi có hai khung dữ liệu: một tập huấn luyện và một bộ tweet mới mà tình cảm cần được dự đoán.
trainingset dataframe:
+--------------------------------------------------+
**text | sentiment**
*this stock is a good buy* | Buy
*markets crash in tokyo* | Sell
*everybody excited about new products* | Hold
+--------------------------------------------------+
Bây giờ tôi muốn đào tạo các mô hình sử dụng văn bản tweet trainingset[,2]
và thể loại tình cảm trainingset[,4]
.
classifier<-naiveBayes(trainingset[,2],as.factor(trainingset[,4]), laplace=1)
Nhìn vào các yếu tố của phân loại với
classifier$tables$x
Tôi thấy rằng xác suất có điều kiện là calculated..There là xác suất khác nhau cho mỗi tweet liên quan đến Mua, Giữ và Sell.So xa quá tốt.
Tuy nhiên khi tôi dự đoán công tác đào tạo thiết lập với:
predict(classifier, trainingset[,2], type="raw")
tôi nhận được một phân loại mà là dựa chỉ trên một tiên nghiệm xác suất, có nghĩa là mỗi tweet được phân loại là Hold (vì " Giữ "có phần lớn nhất trong số các tình cảm). Vì vậy, mỗi tweet đều có cùng xác suất cho Mua, Giữ và Bán:
+--------------------------------------------------+
**Id | Buy | Hold | Sell**
1 |0.25 | 0.5 | 0.25
2 |0.25 | 0.5 | 0.25
3 |0.25 | 0.5 | 0.25
.. |..... | .... | ...
N |0.25 | 0.5 | 0.25
+--------------------------------------------------+
Bất kỳ ý tưởng nào tôi đang làm sai? Đánh giá cao sự giúp đỡ của bạn!
Cảm ơn
phản ứng phi thường. –
Re: chuyển đổi các tweet thành các từ, điều này cũng có thể được thực hiện khá dễ dàng trong R với gói khai thác văn bản 'tm' (cran.r-project.org/web/packages/tm/) Nó có nhiều công cụ để đơn giản hóa quá trình chẳng hạn như xóa các từ dừng (ví dụ: "the", "it"), viết hoa, v.v. Gói có [họa tiết] đẹp mắt (http://cran.r-project.org/web/packages/tm/vignettes/ tm.pdf) đáng khám phá. – Bryan