gpt4 book ai didi

r - 将文档术语矩阵 (DTM) 转换为数据帧(R 编程)

转载 作者:行者123 更新时间:2023-12-02 00:28:17 25 4
gpt4 key购买 nike

我是 R 编程语言的初学者,目前正在尝试从事一个项目。有一个巨大的文档术语矩阵(DTM),我想将其转换为数据框。但由于功能的限制,我无法这样做。

我一直使用的方法是先将其转换为矩阵,然后将其转换为数据框。

DF <- data.frame(as.matrix(DTM), stringsAsFactors=FALSE)

它与较小尺寸的 DTM 完美配合。但是,当 DTM 太大时,我无法将其转换为矩阵,从而产生如下错误:

Error: cannot allocate vector of size 2409.3 Gb

尝试在网上查找几天,但我无法找到解决方案。如果有人能够提出将 DTM 转换为 DF 的最佳方法(特别是在处理大型 DTM 时),我将非常感激。

最佳答案

tidytext package实际上有一个函数可以做到这一点。尝试使用 tidy 函数,它将返回一个 tibble(基本上是一个可以很好打印的精美数据框)。 tidy 函数的好处是,它可以通过不将字符串转换为因子来解决烦人的 StringsAsFactors=FALSE 问题,并且可以很好地处理 DTM 的稀疏性。

as.matrix 正在尝试将您的 DTM 转换为非稀疏矩阵,其中每个文档和术语都有一个条目,即使该术语在该文档中出现 0 次,这会导致您的内存使用气球。 tidy` 会将其转换为数据帧,其中每个文档仅包含其中找到的术语的计数。

在您的示例中,您将运行

library(tidytext)
DF <- tidy(DTM)

甚至还有一个关于如何使用 tidytext 包的小插图(旨在在 tidyverse 中工作)here .

关于r - 将文档术语矩阵 (DTM) 转换为数据帧(R 编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44014097/

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