我有一个包含两列的 BBC 文章数据集:“类别”和“文本”。我需要构建一个朴素贝叶斯算法,根据类型预测文章的类别(即商业、娱乐)。
我正在尝试使用 Quanteda 并具有以下代码:
library(quanteda)
bbc_data <- read.csv('bbc_articles_labels_all.csv')
text <- textfile('bbc_articles_labels_all.csv', textField='text')
bbc_corpus <- corpus(text)
bbc_dfm <- dfm(bbc_corpus, ignoredFeatures = stopwords("english"), stem=TRUE)
# 80/20 split for training and test data
trainclass <- factor(c(bbc_data$category[1:1780], rep(NA, 445)))
testclass <- factor(c(bbc_data$category[1781:2225]))
bbcNb <- textmodel_NB(bbc_dfm, trainclass)
bbc_pred <- predict(bbcNb, testclass)
它似乎工作顺利,直到 predict(),它给出:
Error in newdata %*% log.lik :
requires numeric/complex matrix/vector arguments
谁能提供有关如何解决此问题的见解?我仍然掌握文本分析和 quanteda 的窍门。谢谢!