R 向tdm矩阵添加虚拟变量
这是我如何得到tdm矩阵的:R 向tdm矩阵添加虚拟变量,r,machine-learning,tm,R,Machine Learning,Tm,这是我如何得到tdm矩阵的: doc.vec <- VectorSource(data$text) doc.corpus <- Corpus(doc.vec) tdm <- TermDocumentMatrix(doc.corpus, control = list(wordLengths = c(2, Inf))) 我想要的是: doc1 doc2 doc3 ... doc10000 class
doc.vec <- VectorSource(data$text)
doc.corpus <- Corpus(doc.vec)
tdm <- TermDocumentMatrix(doc.corpus, control = list(wordLengths = c(2, Inf)))
我想要的是:
doc1 doc2 doc3 ... doc10000 class
term1 . 1 1 ... 1 1
term2 . . 1 ... . 0
...
term99 1 . 1 ... 1 0
其中,类是0/1伪值,表示术语是包含在类0中还是包含在类1中。我在原始数据中定义了这个类虚拟,称为data$class。 我想知道是否有办法将这个变量“转移”到我的tdm中 非常感谢你
编辑:很抱歉之前不清楚——我最初的类虚拟是用于文档的,而不是用于术语。我正在尝试将类重新分配给术语,以便1表示术语只出现在类1中,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))
dtmDataFrame您可以使用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))
dtmDataFrametdm$class也,cbind(tdm,data$class)
应该可以工作。很抱歉,我之前不清楚——我最初的类虚拟是用于文档的,而不是用于术语。我正在尝试将类重新分配给术语,以便1表示术语只出现在类1中,0表示它也只出现在类0tdm$class,cbind(tdm,data$class)
应该可以工作。很抱歉,我之前不清楚——我最初的类虚拟是用于文档的,而不是用于术语。我正在尝试将这些类重新分配给术语,以便1表示术语只出现在类1中,0表示它只出现在类0中