将CSV格式的术语文档矩阵导入R

时间:2017-09-13 17:52:13

标签: r csv text-mining text-analysis

所以我已经有了一个TDM,但它在excel上。所以我把它保存为CSV。现在我想做一些分析,但我不能使用tm包将其作为TDM加载。我的CSV看起来像这样:

           item01    item02    item03     item04


red         0          1         1           0
circle      1          0         0           1
fame        1          0         0           0
yellow      0          0         1           1 
square      1          0         1           0 

所以我无法将该文件作为TDM加载,到目前为止我尝试过的最好的是:

myDTM <- as.DocumentTermMatrix(df, weighting = weightBin)

但它在所有单元格上加载1个

<<DocumentTermMatrix (documents: 2529, terms: 1952)>>
Non-/sparse entries: 4936608/0
Sparsity           : 0%
Maximal term length: 27
Weighting          : binary (bin)
Sample             :

             Terms
Docs            item01 item02 item03 item04
      Red        1        1     1       1                
      Circle     1        1     1       1          
      fame       1        1     1       1   

我尝试先转换为语料库和其他东西,但如果我尝试使用像inspect(tdm)这样的函数,它会返回错误,如此或类似错误。

Error in `[.simple_triplet_matrix`(x, docs, terms) :

我真的不相信没有办法以正确的格式导入它,任何建议?提前谢谢。

1 个答案:

答案 0 :(得分:0)

首先尝试将CS​​V转换为稀疏矩阵。我的CSV与你的不同,因为我自己键入了它,但它的想法是一样的。

> library(tm)
> library(Matrix)
> myDF <- read.csv("my.csv",row.names=1,colClasses=c('character',rep('integer',4)))
> mySM <- Matrix(as.matrix(myDF),sparse=TRUE)
> myDTM <- as.DocumentTermMatrix(mySM,weighting = weightBin)
> inspect(myDTM)

<<DocumentTermMatrix (documents: 5, terms: 4)>>
Non-/sparse entries: 7/13
Sparsity           : 65%
Maximal term length: 6
Weighting          : binary (bin)
Sample             :
        Terms
Docs     item01 item02 item03 item04
  circle      1      1      0      0
  fame        1      0      0      0
  red         0      0      0      0
  square      1      0      1      0
  yellow      0      0      1      1 
>