使用してテキスト分類のためのナイーブベイズを実装します。タイプに基づいて記事のカテゴリ(つまりビジネス、エンターテイメント)を予測するNaive Bayesアルゴリズムを構築する必要があります。は、私は2つの列を持つBBCの記事のデータセットを持っているQuanteda
私は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)
()を予測するまではスムーズに動作しているようですが、与える:
Error in newdata %*% log.lik :
requires numeric/complex matrix/vector arguments
を誰がどのように洞察力を提供することができますこれを解決するには?私はまだテキスト分析とquantedaのハングを取得しています。ありがとうございました!
Here is a link to the dataset.
あなたはあなたの例を行うのに十分なデータを提供しなければならない[再現性](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。おそらくあなたのデータと関係がありますが、確かに言うことは不可能であることはわかりません。 – MrFlick
@MrFlick私は、.csvファイルへの直接リンクが含まれるようにポストを編集しました。私が提供すべき追加情報はありますか?これに新しい! – Matt
')('を予測するための第2引数newdata' '試験class'ではなく、それはDFMであることが必要であり、これは、因子であることはできません。 '?? predict.textmodel_NB_fitted'を参照してください。あなたの最終行が 'predict(bbcNb)'であれば動作するはずですが、そうではありません。どうやら* k *> 2のときの予測方法にバグがあります。 https://github.com/kbenoit/quanteda/issuesで問題を提出してください。 –