在R中使用findAssocs后我不明白我的结果

时间:2014-04-12 00:36:22

标签: r twitter tm

我有一个推文数据集。我正在搜索荷兰语'verhuizen'。当我运行以下代码时,我从包含单词的数据集中得到两条推文。

Aah_verhuizen=Aa_en_Hunze[grepl('verhuizen', Aa_en_Hunze$twt_txt),]

[1] @ Isaa_0592 verhuizen? Waarheen丹?

[2]是的学校blijft hier in het dorp,nu gaan we niet meer verhuizen dit jaar! ??

然后我运行代码,使用包tm的findAssocs找到与'verhuizen'关联最多的单词。

verhuizen <- c('verhuizen')
Aah.corpus <- Corpus(VectorSource(Aa_en_Hunze$twt_txt))
Aah.corpus <- tm_map(Aah.corpus, tolower) 
Aah.corpus <- tm_map(Aah.corpus, removePunctuation)
Aah.dtm <- TermDocumentMatrix(Aah.corpus)
Aah_ass_verhuizen <- findAssocs(Aah.dtm, verhuizen, 0.10)

我的代码结果是:

waarheen 0.58

dorp 0.24

isaa0592 0.24

gebeuren 0.22

blijft 0.15

我不知道findAssocs如何计算分数。例如:为什么“waarheen”这个词得分如此之高。在两条推文中只提到了一次。我不明白findAssocs如何计算相关单词的分数。我搜索了帮助功能,谷歌和stackoverflow但没有找到满意的答案。有谁知道吗?

我认为我正在搜索的答案在以下代码行中。我从以下问题得到了。

Math of tm::findAssocs how does this function work?

function (x, term, corlimit) 
sort(round(x[term, which(x[term, ] > corlimit)], 2), decreasing = TRUE)
<environment: namespace:tm>

它做什么?我会尝试通过运行部分句子来弄清楚自己。

test <- Aah.dtm['verhuizen', which(Aah.dtm['verhuizen', ]> 0.10)],2

为什么这会给我以下错误?

错误:在'test&lt; - Aah.dtm ['verhuizen'中出现意外',',(Aah.dtm ['verhuizen',]&gt; 0.10)],“

1 个答案:

答案 0 :(得分:1)

如果您想知道该功能的工作原理,最简单的方法是查看文档。主页面为here,其中包含一个函数引用here和一个漂亮的小插图here

如果这些内容没有给你足够的细节,你可以随时查阅source code,这恰好在GPL下可用。