我只有一份文件(调查汇编)。我想用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
这是我的代码,我最终得到的结果是数字(0)
findAssocs(myDtm, "salary", 0.5)
numeric(0)
请帮忙。
答案 0 :(得分:1)
稀疏度测量矩阵中等于零的元素(参见单元格)的百分比。稀疏度很高时,您有很多术语只出现在一个或几个文档中。您的示例中只有一个文档,因此所有术语必须出现在该文档中。一般来说,较低程度的稀疏性对于调查文档相似性更有用(如果这就是你正在做的......从你的问题中不清楚)。
简短的回答是,您的问题有already been asked and answered:您需要在dtm中拥有多个文档才能使用findAssocs
来计算术语关联。
如果您需要findAssocs
的更具体帮助,则必须添加reproducible example。尝试使用tm
包附带的“原始”数据集并试用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)
答案 1 :(得分:0)
您可以通过以下方式添加数据来使用findAssocs
data <- data.frame(text=txt, stringsAsFactors=FALSE)
tdm <- TermDocumentMatrix(Corpus(DataframeSource(data)))
基本上 将您的数据导入“源”,将“源”导入“语料库”,然后从“语料库”中创建TDM
答案 2 :(得分:0)
我迟了几年。但我最近遇到了同样的问题。这是因为您的术语 - 文档矩阵(TDM)只包含一个文档。相反,您的tdm应该包含多个文档。如果您使用paste()
从数据框中检索文字,则在将其转换为TDM之前,不应使用paste(data$text, collapse = " ")
,而应使用paste(data$text)
。
但如果您提供可重复的示例,我们可以提供帮助。