Python knn中的r错误:外部函数调用中的NA/NaN/Inf(arg 6)
我通过应用SVM、NB和kNN来分析推文,以了解推文是正面的、负面的还是中性的,为此,我有80704条推文,但出于测试目的,我只分析2847条推文,它具有以下特征Python knn中的r错误:外部函数调用中的NA/NaN/Inf(arg 6),python,r,twitter,Python,R,Twitter,我通过应用SVM、NB和kNN来分析推文,以了解推文是正面的、负面的还是中性的,为此,我有80704条推文,但出于测试目的,我只分析2847条推文,它具有以下特征 > str(total.tweets.score) 'data.frame': 2847 obs. of 3 variables: $ score : int 0 1 1 -2 0 0 1 2 -2 0 ... $ text : Factor w/ 1790 levels " st
> str(total.tweets.score)
'data.frame': 2847 obs. of 3 variables:
$ score : int 0 1 1 -2 0 0 1 2 -2 0 ...
$ text : Factor w/ 1790 levels " st century is the era of knowledge and information which will change the way countries develop says",..: 1717 129 996 1072 682 795 524 132 143 773 ...
$ Negative : Factor w/ 2 levels "FALSE","TRUE": 1 1 1 2 1 1 1 1 2 1 ...
问题是,当我将数据分为训练数据和测试数据时,它对SVM和NB有效,但在应用kNN时会给出错误,下面是我如何分割数据
total.tweets.score.train <- total.tweets.score[1:1993,]
total.tweets.score.test <- total.tweets.score[1994:2847, ]
NB型号:
nb.classifier <- naiveBayes(twitter.train , total.tweets.score.train$Negative)
这里的twitter.train
和twitter.test
都是文档术语矩阵,而kn.train.data.target
是因子
当我运行kNN代码时,我收到以下错误
Error in knn(twitter.train, twitter.test, knn.train.data.target, k = 3, :
NA/NaN/Inf in foreign function call (arg 6)
In addition: Warning messages:
1: In knn(twitter.train, twitter.test, knn.train.data.target, k = 3, :
NAs introduced by coercion
2: In knn(twitter.train, twitter.test, knn.train.data.target, k = 3, :
NAs introduced by coercion
请帮我做什么?这是我的DTM的结构
> str(total.tweets.dtm)
List of 6
$ i : int [1:22041] 1 1 1 1 1 1 1 1 1 1 ...
$ j : int [1:22041] 138 163 617 1417 1852 1899 2534 2727 2792 3234 ...
$ v : num [1:22041] 1 1 1 1 1 1 1 1 1 1 ...
$ nrow : int 2847
$ ncol : int 4232
$ dimnames:List of 2
..$ Docs : chr [1:2847] "character(0)" "character(0)" "character(0)" "character(0)" ...
..$ Terms: chr [1:4232] "#cpec" "aabpara" "aaj" "aakhir" ...
- attr(*, "class")= chr [1:2] "DocumentTermMatrix" "simple_triplet_matrix"
- attr(*, "weighting")= chr [1:2] "term frequency" "tf"
文档术语矩阵的结构是什么?你能把结构和可能的几行贴出来吗?(这将是使您的问题重现的唯一方法。谢谢。
Error in knn(twitter.train, twitter.test, knn.train.data.target, k = 3, :
NA/NaN/Inf in foreign function call (arg 6)
In addition: Warning messages:
1: In knn(twitter.train, twitter.test, knn.train.data.target, k = 3, :
NAs introduced by coercion
2: In knn(twitter.train, twitter.test, knn.train.data.target, k = 3, :
NAs introduced by coercion
> str(total.tweets.dtm)
List of 6
$ i : int [1:22041] 1 1 1 1 1 1 1 1 1 1 ...
$ j : int [1:22041] 138 163 617 1417 1852 1899 2534 2727 2792 3234 ...
$ v : num [1:22041] 1 1 1 1 1 1 1 1 1 1 ...
$ nrow : int 2847
$ ncol : int 4232
$ dimnames:List of 2
..$ Docs : chr [1:2847] "character(0)" "character(0)" "character(0)" "character(0)" ...
..$ Terms: chr [1:4232] "#cpec" "aabpara" "aaj" "aakhir" ...
- attr(*, "class")= chr [1:2] "DocumentTermMatrix" "simple_triplet_matrix"
- attr(*, "weighting")= chr [1:2] "term frequency" "tf"