R 向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

这是我如何得到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       
   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))

dtmDataFrame
tdm$class也,
cbind(tdm,data$class)
应该可以工作。很抱歉,我之前不清楚——我最初的类虚拟是用于文档的,而不是用于术语。我正在尝试将类重新分配给术语,以便1表示术语只出现在类1中,0表示它也只出现在类0
tdm$class,
cbind(tdm,data$class)
应该可以工作。很抱歉,我之前不清楚——我最初的类虚拟是用于文档的,而不是用于术语。我正在尝试将这些类重新分配给术语,以便1表示术语只出现在类1中,0表示它只出现在类0中