Tôi là tác giả của qdap. Hàm polarity
được thiết kế cho nhiều tập dữ liệu nhỏ hơn. Khi vai trò của tôi thay đổi, tôi bắt đầu làm việc với các tập dữ liệu lớn hơn. Tôi cần nhanh chóng và chính xác (hai điều này là đối lập với nhau) và kể từ đó đã phát triển một gói nghỉ ngơi sentimentr. Thuật toán được tối ưu hóa để nhanh hơn và chính xác hơn so với phân cực qdap.
Vì hiện tại bạn có 5 từ điển dựa trên (hoặc được đào tạo từ alorithm) được tiếp cận để phát hiện tình cảm. Mỗi người có nhược điểm (-) và điểm cộng (+) và hữu ích trong một số trường hợp nhất định.
- qdap + trên CRAN; -slow
- syuzhet + trên CRAN; + nhanh; + âm mưu lớn; không chính xác về sử dụng phi văn học
- sentimentr + nhanh; + độ chính xác cao hơn; -GitHub chỉ
- stansent (stanford port) + chính xác nhất; -slower
- tm.plugin.sentiment -archived on CRAN; -Tôi không thể làm cho nó hoạt động dễ dàng
Tôi hiển thị kiểm tra thời gian trên dữ liệu mẫu cho 4 lựa chọn đầu tiên ở trên trong mã bên dưới.
Cài đặt gói và làm cho chức năng thời gian
tôi sử dụng pacman vì nó cho phép người đọc chỉ cần chạy mã; mặc dù bạn có thể thay thế bằng các cuộc gọi install.packages
& library
.
if (!require("pacman")) install.packages("pacman")
pacman::p_load(qdap, syuzhet, dplyr)
pacman::p_load_current_gh(c("trinker/stansent", "trinker/sentimentr"))
pres_debates2012 #nrow = 2912
tic <- function (pos = 1, envir = as.environment(pos)){
assign(".tic", Sys.time(), pos = pos, envir = envir)
Sys.time()
}
toc <- function (pos = 1, envir = as.environment(pos)) {
difftime(Sys.time(), get(".tic", , pos = pos, envir = envir))
}
id <- 1:2912
Thời gian
## qdap
tic()
qdap_sent <- pres_debates2012 %>%
with(qdap::polarity(dialogue, id))
toc() # Time difference of 18.14443 secs
## sentimentr
tic()
sentimentr_sent <- pres_debates2012 %>%
with(sentiment(dialogue, id))
toc() # Time difference of 1.705685 secs
## syuzhet
tic()
syuzhet_sent <- pres_debates2012 %>%
with(get_sentiment(dialogue, method="bing"))
toc() # Time difference of 1.183647 secs
## stanford
tic()
stanford_sent <- pres_debates2012 %>%
with(sentiment_stanford(dialogue))
toc() # Time difference of 6.724482 mins
Để biết thêm về timings và chính xác thấy sentimentr README.md tôi và xin sao repo nếu nó hữu ích.Các viz dưới đây chụp một trong các bài kiểm tra từ README:
Nguồn
2016-04-12 14:38:55
Tôi đồng ý với Tyler, tôi đã có kết quả tốt với syuzhet trên bộ rất lớn của đoạn/tổng khối văn bản có kích thước. – Awhstin
Cảm ơn @Tyler Rinker vì đã phân tích chi tiết các gói tình cảm khác nhau. Vừa mới kiểm tra gói tình cảm do bạn tạo. Đây chính xác là những gì tôi cần. Nhưng tôi cần danh sách các từ tích cực và các từ tiêu cực từ mỗi câu. Tôi đã nhận được điều này trong khi sử dụng qdap, nơi tình cảm chỉ trả về số từ. Có thể nhận được chúng trong khi sử dụng tình cảm? – VenuSathya20
@ VenuSathya20 không có ý nghĩa gì với tôi nữa. Tôi có thể hỏi bạn muốn làm gì với họ không? –