Я использую наивную байесовскую модель quanteda
(textmodel_nb
), чтобы выполнить некоторую классификацию текста.
Одним из выходных данных модели является список, содержащий вероятности каждого класса.То есть, если nb
является моей моделью, я вижу, что
> str(nb$PcGw)
num [1:2, 1:462] 0.9446 0.0554 0.9259 0.0741 0.2932 ...
- attr(*, "dimnames")=List of 2
..$ classes : chr [1:2] "FALSE" "TRUE"
..$ features: chr [1:462] "hello" "john" "jan" "index" ..
и вывод списка дает что-то вроде
nb$PcGw
features
classes ny john
FALSE 0.94457605 0.92594799
TRUE 0.05542395 0.07405201
Я хотел использовать purrr
для извлечения этой информациии придумал data_frame
как
variable P_TRUE P_FALSE
'ny' 0.05542395 0.94457605
'john' 0.07405201 0.92594799
Однако я не смог этого сделать.Кто-нибудь может мне помочь?
Вот рабочий пример, использующий собственный пример Quanteda:
txt <- c(d1 = "Chinese Beijing Chinese",
d2 = "Chinese Chinese Shanghai",
d3 = "Chinese Macao",
d4 = "Tokyo Japan Chinese",
d5 = "Chinese Chinese Chinese Tokyo Japan")
trainingset <- dfm(txt, tolower = FALSE)
trainingclass <- factor(c("Y", "Y", "Y", "N", NA), ordered = TRUE)
## replicate IIR p261 prediction for test set (document 5)
nb_test <- textmodel_nb(trainingset, trainingclass)
str(nb_test$PcGw)
num [1:2, 1:6] 0.659 0.341 0.562 0.438 0.562 ...
- attr(*, "dimnames")=List of 2
..$ classes : chr [1:2] "Y" "N"
..$ features: chr [1:6] "Chinese" "Beijing" "Shanghai" "Macao"
Спасибо !!