findAssocs在一个文档中

时间:2013-10-12 08:11:43

标签: r text-mining

我只有一份文件(调查汇编)。我想用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)

请帮忙。

3 个答案:

答案 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)

但如果您提供可重复的示例,我们可以提供帮助。