基于稀疏矩阵的 R tm TermDocumentMatrix
R tm TermDocumentMatrix based on a sparse matrix
我有一个 txt 格式的书集,想将 tm
R 库的一些程序应用到这些书上。但是,我更喜欢在 bash 中而不是在 R 中清理文本,因为它要快得多。
假设我可以从 bash 得到一个 data.frame 例如:
book term frequency
--------------------
1 the 10
1 zoo 2
2 animal 2
2 car 3
2 the 20
我知道 TermDocumentMatrices 实际上是带有元数据的稀疏矩阵。事实上,我可以使用 TDM 的 i、j 和 v 条目从 TDM 创建一个稀疏矩阵,用于 sparseMatrix 函数的 i、j 和 x。如果您知道如何进行逆运算,或者在这种情况下,如何使用上面 data.frame 中的三列构造 TDM,请帮助我。谢谢!
你可以试试
library(tm)
library(reshape2)
txt <- readLines(n = 7)
book term frequency
--------------------
1 the 10
1 zoo 2
2 animal 2
2 car 3
2 the 20
df <- read.table(header=T, text=txt[-2])
dfwide <- dcast(data = df, book ~ term, value.var = "frequency", fill = 0)
mat <- as.matrix(dfwide[, -1])
dimnames(mat) <- setNames(dimnames(dfwide[-1]), names(df[, 1:2]))
(tdm <- as.TermDocumentMatrix(t(mat), weighting = weightTf))
# <<TermDocumentMatrix (terms: 4, documents: 2)>>
# Non-/sparse entries: 5/3
# Sparsity : 38%
# Maximal term length: 6
# Weighting : term frequency (tf)
as.matrix(tdm)
# Docs
# Terms 1 2
# animal 0 2
# car 0 3
# the 10 20
# zoo 2 0
我有一个 txt 格式的书集,想将 tm
R 库的一些程序应用到这些书上。但是,我更喜欢在 bash 中而不是在 R 中清理文本,因为它要快得多。
假设我可以从 bash 得到一个 data.frame 例如:
book term frequency
--------------------
1 the 10
1 zoo 2
2 animal 2
2 car 3
2 the 20
我知道 TermDocumentMatrices 实际上是带有元数据的稀疏矩阵。事实上,我可以使用 TDM 的 i、j 和 v 条目从 TDM 创建一个稀疏矩阵,用于 sparseMatrix 函数的 i、j 和 x。如果您知道如何进行逆运算,或者在这种情况下,如何使用上面 data.frame 中的三列构造 TDM,请帮助我。谢谢!
你可以试试
library(tm)
library(reshape2)
txt <- readLines(n = 7)
book term frequency
--------------------
1 the 10
1 zoo 2
2 animal 2
2 car 3
2 the 20
df <- read.table(header=T, text=txt[-2])
dfwide <- dcast(data = df, book ~ term, value.var = "frequency", fill = 0)
mat <- as.matrix(dfwide[, -1])
dimnames(mat) <- setNames(dimnames(dfwide[-1]), names(df[, 1:2]))
(tdm <- as.TermDocumentMatrix(t(mat), weighting = weightTf))
# <<TermDocumentMatrix (terms: 4, documents: 2)>>
# Non-/sparse entries: 5/3
# Sparsity : 38%
# Maximal term length: 6
# Weighting : term frequency (tf)
as.matrix(tdm)
# Docs
# Terms 1 2
# animal 0 2
# car 0 3
# the 10 20
# zoo 2 0