R:在语料库中找到最常见的单词组

时间:2014-05-14 13:08:36

标签: tm corpus word-frequency

在R中的文本语料库中,是否有一种简单的方法可以找到最常用的术语,还有表达式(因此不止一个单词,单词组)?

使用tm包,我可以找到最常见的术语:

tdm <- TermDocumentMatrix(corpus)
findFreqTerms(tdm, lowfreq=3, highfreq=Inf)

我可以使用findAssocs()函数找到最常用单词的相关单词,因此我可以手动对这些单词进行分组。但是如何在语料库中找到这些单词组的出现次数?

THX

1 个答案:

答案 0 :(得分:4)

如果我没记错的话,你可以使用weka构建一个Bigrams的TermDocumentMatrix(总共出现两个单词),然后根据需要处理它们

library("tm") #text mining
library("RWeka") # for tokenization algorithms more complicated than single-word


BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))

tdm <- TermDocumentMatrix(corpus, control = list(tokenize = BigramTokenizer))

# process tdm 
# findFreqTerms(tdm, lowfreq=3, highfreq=Inf)
# ...

tdm <- removeSparseTerms(tdm, 0.99)
print("----")
print("tdm properties")
str(tdm)
tdm_top_N_percent = tdm$nrow / 100 * topN_percentage_wanted

可替换地,

#words combinations that occur at least once together an at most 5 times
wmin=1
wmax = 5

BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = wmin, max = wmax))

有时候首先执行单词干预有助于获得更好的&#34;单词组。