这就是我得到tdm矩阵的方式:
doc.vec <- VectorSource(data$text)
doc.corpus <- Corpus(doc.vec)
tdm <- TermDocumentMatrix(doc.corpus, control = list(wordLengths = c(2, Inf)))
我原来的tdm矩阵看起来像:
doc1 doc2 doc3 ... doc10000
term1 . 1 1 ... 1
term2 . . 1 ... .
...
term99 1 . 1 ... 1
我想要的是:
doc1 doc2 doc3 ... doc10000 class
term1 . 1 1 ... 1 1
term2 . . 1 ... . 0
...
term99 1 . 1 ... 1 0
其中class是0/1哑元,表示该术语是否包含在0级或1级中 我在我的原始数据中定义了这个类dummy,由data $ class调用。 我想知道是否有办法将这个变量“转移”到我的tdm中。
非常感谢你。
编辑:很抱歉之前不清楚 - 我原来的班级假人是为了文件而不是用于条款。而我要做的是将类重新分配给术语,因此1表示术语仅出现在第1类中,0表示它仅出现在第0类中。
答案 0 :(得分:0)
你可以有一个tdm或一个文档术语矩阵(dtm),它不是很清楚你想要从中得到什么,但第二个有助于每个文档有一个类,例如:
term1 term2 term3 ... term10000 class
doc1 . 1 1 ... 1 1
doc2 . . 1 ... . 0
...
doc99 1 . 1 ... 1 0
现在,您可以使用它来训练模型(分类器)来预测新文档的类。完成这项工作的更简单方法是将dtm转换为数据框而不是附加类列,就是这样:
dtmDataFrame <- as.data.frame(inspect(dtm))
你在这里提到的另一件事&#34;将类重新分配给术语,因此1表示术语仅出现在等级1中,0表示它仅出现在等级0和#34;对我来说没有多大意义,对于不属于你的1级和0级的术语你会怎么做?过滤掉它们?你的意图是什么?