0

我只有一份文件(一份调查汇编)。我想用 findAssocs 在单个文档中进行单词关联。到目前为止,我看到的所有示例都是一些文档的组合。

inspect(myDtm)
A term-document matrix (864 terms, 1 documents)

Non-/sparse entries: 864/0 (what is this for?)
Sparsity           : 0% (what is this for? what does it mean if its 0%)
Maximal term length: 20 
Weighting          : term frequency (tf)

我的数据看起来像这样

unwanted               1
upgrade                3
valid                  1

这是我的代码,我最终得到结果 = numeric (0)

findAssocs(myDtm, "salary", 0.5)
numeric(0)

请帮忙。

4

3 回答 3

1

稀疏性测量矩阵中等于零的元素(参见单元格)的百分比。当稀疏性很高时,您会有很多只出现在一个或几个文档中的术语。您的示例中只有一个文档,因此所有术语都必须出现在该文档中。一般来说,较低程度的稀疏性对于调查文档相似性更有用(如果这就是你正在做的......从你的问题中不清楚)。

简短的回答是您的问题已经被提出并回答:您需要在 dtm 中有多个文档才能使用findAssocs.

如果您需要更具体的帮助,则必须包含一个可重现的示例findAssocstm尝试使用软件包附带的“粗略”数据集并进行试验,findAssocs看看更改参数时会发生什么。查看tm[文档]( http://cran.r-project.org/web/packages/tm/vignettes/tm.pdf ) 以了解有关如何使用内置数据的更多信息。

这是一个使用内置数据的示例,您自己尝试一下:

require(tm)
data(crude)
dtm <- DocumentTermMatrix(crude)

# one doc in dtm, doesn't work...
dtm1 <- dtm[1,]
findAssocs(dtm1, "oil", 0.01)

# ten docs, does work
dtm10 <- dtm[1:10,]
findAssocs(dtm10, "oil", 0.01)
于 2013-10-17T03:17:18.273 回答
0

我晚了几年。但我最近遇到了同样的问题。这是因为您的术语文档矩阵 (TDM) 仅包含一个文档。相反,您的 tdm 应该包含多个文档。如果您使用paste()从数据框中检索文本,则不应在将其转换为 TDM 之前使用paste(data$text, collapse = " "), 但是。paste(data$text)

但是,如果您提供可重现的示例,也许我们可以提供帮助。

于 2016-11-22T15:27:02.497 回答
0

您可以通过以下方式添加数据来使用 findAssocs

data <- data.frame(text=txt, stringsAsFactors=FALSE)

tdm <- TermDocumentMatrix(Corpus(DataframeSource(data)))

基本上将您的数据导入“源”,将“源”导入“语料库”,然后从“语料库”中制作 TDM

于 2016-03-13T16:59:36.277 回答