替换 dfm 稀疏矩阵中的值
Replace values in a dfm sparse matrix
我正在使用 quanteda 包来生成词频计数的稀疏矩阵。我想进行更改,以便输出是简单的 1 或 0,这个词是否存在,但我不确定如何使用稀疏矩阵执行此操作。
install.packages(quanteda)
示例矩阵
trainingset <- as.dfm(matrix(c(1, 2, 0, 0, 0, 0,
0, 2, 0, 0, 1, 0,
0, 1, 0, 1, 0, 0,
0, 1, 1, 0, 0, 1,
0, 3, 1, 0, 0, 1),
ncol=6, nrow=5, byrow=TRUE,
dimnames = list(docs = paste("d", 1:5, sep = ""),
features = c("Beijing", "Chinese", "Japan", "Macao",
"Shanghai", "Tokyo"))))
如果你看一下 str(trainingset)
,你可以看到矩阵的槽。与稀疏矩阵一样,x
槽保存数据,因此您可以使用
将其更改为二进制
trainingset@x <- as.numeric(trainingset@x > 0)
Document-feature matrix of: 5 documents, 6 features (60% sparse).
5 x 6 sparse Matrix of class "dfmSparse"
features
docs Beijing Chinese Japan Macao Shanghai Tokyo
d1 1 1 0 0 0 0
d2 0 1 0 0 1 0
d3 0 1 0 1 0 0
d4 0 1 1 0 0 1
d5 0 1 1 0 0 1
我正在使用 quanteda 包来生成词频计数的稀疏矩阵。我想进行更改,以便输出是简单的 1 或 0,这个词是否存在,但我不确定如何使用稀疏矩阵执行此操作。
install.packages(quanteda)
示例矩阵
trainingset <- as.dfm(matrix(c(1, 2, 0, 0, 0, 0,
0, 2, 0, 0, 1, 0,
0, 1, 0, 1, 0, 0,
0, 1, 1, 0, 0, 1,
0, 3, 1, 0, 0, 1),
ncol=6, nrow=5, byrow=TRUE,
dimnames = list(docs = paste("d", 1:5, sep = ""),
features = c("Beijing", "Chinese", "Japan", "Macao",
"Shanghai", "Tokyo"))))
如果你看一下 str(trainingset)
,你可以看到矩阵的槽。与稀疏矩阵一样,x
槽保存数据,因此您可以使用
trainingset@x <- as.numeric(trainingset@x > 0)
Document-feature matrix of: 5 documents, 6 features (60% sparse).
5 x 6 sparse Matrix of class "dfmSparse"
features
docs Beijing Chinese Japan Macao Shanghai Tokyo
d1 1 1 0 0 0 0
d2 0 1 0 0 1 0
d3 0 1 0 1 0 0
d4 0 1 1 0 0 1
d5 0 1 1 0 0 1