gpt4 book ai didi

r - 向 tdm 矩阵添加虚拟变量

转载 作者:行者123 更新时间:2023-11-30 09:21:08 29 4
gpt4 key购买 nike

这就是我得到 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 类中。
我在原始数据中定义了这个类虚拟,由 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))

您在这里提到的另一件事“将类别重新分配给术语,以便 1 表示术语仅出现在类别 1 中,而 0 表示它仅出现在类别 0 中”对我来说没有多大意义,什么会您处理的术语不属于 1 类和 0 类吗?将它们过滤掉?你的意图是什么?

关于r - 向 tdm 矩阵添加虚拟变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38342856/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com