Rでマルチラベルテキスト分類にNaive Bayesを使用する方法
e1071ライブラリのnaiveBayes()を使用してみましたが、トレーニング中にマルチラベルクラス変数を受け入れないようです。
テキストドキュメントコーパスを使用してTermDocumentMatrixを作成し、このマトリックスとクラス変数(特定のドキュメントが属するトピックのリスト)を使用してモデルを作成しようとしました。以下は私が使用したコードです。
trainvector <- as.vector(traindata$bodyText)
trainsource <- VectorSource(trainvector)
traincorpus <- Corpus(trainsource)
trainmatrix <- t(TermDocumentMatrix(traincorpus))
model <- naiveBayes(as.matrix(trainmatrix), as.factor(traindata$topics))
最後の行は以下のエラーを示します:
Error in sort.list(y) : 'x' must be atomic for 'sort.list'
リストで「並べ替え」を呼び出しましたか?
使ってみた
model <- naiveBayes(as.matrix(trainmatrix), as.factor(unlist(traindata$topics)))
エラーが発生しました:
Error in tapply(var, y, mean, na.rm = TRUE) :
arguments must have same length