R中两个词频向量的余弦相似度
Cosine Similarity with two Term Frequency vectors in R
我在 R
中使用 tm
制作了一个 DocumentTermMatrix (dtm)。如果我理解正确的话,这个矩阵会为每个文档显示每个可能的术语出现的频率。现在我可以检查这个矩阵并得到
Terms
Docs can design door easy finish include light provide use water
176004 1 2 11 8 0 3 3 4 4 4
181288 1 2 11 8 0 2 3 4 4 4
182465 4 4 0 2 0 0 42 13 6 0
etc.
我现在如何检索(例如)文档 181288 的向量?所以我会得到类似
的东西
1 2 11 8 0 2 3 4 4 4 ………
此外,它说我的 dtm 的稀疏度是 100%,它(通过近似)是 100% 空的吗?
要检索矢量,您可以通过多种方式进行。
简单,但不推荐,除非进行快速测试:
my_doc <- inspect(dtm[dtm$dimnames$Docs == "181288",])
这样做会限制您对 inspect
的操作,并且最多只能显示 10 个文档。
更好的方法是,如果需要,请创建一个选择列表并过滤 dtm。这保留了稀疏矩阵格式,然后将您需要的内容转换为 data.frame,以便在需要时进行进一步操作。
my_selection <- c("181288", "182465")
# selection in case of dtm
my_dtm_selection <- dtm[dtm$dimnames$Docs %in% my_selection, ]
# selection in case of tdm
my_tdm_selection <- tdm[, tdm$dimnames$Docs %in% my_selection]
# create data.frame with document names as first column, followed by the terms
my_df_selection <- data.frame(docs = Docs(my_dtm_selection), as.matrix(my_dtm_selection))
第二个问题的答案:是的,几乎是空的。或者更好的框架,很多空单元格。但是如果您有很多文档和术语,您可能拥有比您想象的更多的数据。
我在 R
中使用 tm
制作了一个 DocumentTermMatrix (dtm)。如果我理解正确的话,这个矩阵会为每个文档显示每个可能的术语出现的频率。现在我可以检查这个矩阵并得到
Terms
Docs can design door easy finish include light provide use water
176004 1 2 11 8 0 3 3 4 4 4
181288 1 2 11 8 0 2 3 4 4 4
182465 4 4 0 2 0 0 42 13 6 0
etc.
我现在如何检索(例如)文档 181288 的向量?所以我会得到类似
的东西1 2 11 8 0 2 3 4 4 4 ………
此外,它说我的 dtm 的稀疏度是 100%,它(通过近似)是 100% 空的吗?
要检索矢量,您可以通过多种方式进行。
简单,但不推荐,除非进行快速测试:
my_doc <- inspect(dtm[dtm$dimnames$Docs == "181288",])
这样做会限制您对 inspect
的操作,并且最多只能显示 10 个文档。
更好的方法是,如果需要,请创建一个选择列表并过滤 dtm。这保留了稀疏矩阵格式,然后将您需要的内容转换为 data.frame,以便在需要时进行进一步操作。
my_selection <- c("181288", "182465")
# selection in case of dtm
my_dtm_selection <- dtm[dtm$dimnames$Docs %in% my_selection, ]
# selection in case of tdm
my_tdm_selection <- tdm[, tdm$dimnames$Docs %in% my_selection]
# create data.frame with document names as first column, followed by the terms
my_df_selection <- data.frame(docs = Docs(my_dtm_selection), as.matrix(my_dtm_selection))
第二个问题的答案:是的,几乎是空的。或者更好的框架,很多空单元格。但是如果您有很多文档和术语,您可能拥有比您想象的更多的数据。