使用TFIDF的Ngrams词 - 使用R检测短语

时间:2015-09-23 21:00:19

标签: r tf-idf n-gram text-classification word-frequency

TrigramTokenizer <-function(x) NGramTokenizer(x, 
                                            Weka_control(min = 1, max = 3))
Text = c( "Ab Hello world","Hello ab",  "ab" )
tt = Corpus(VectorSource(Text))
tdm <- TermDocumentMatrix( tt, 
                       control = list(wordLengths=c(1,Inf), tokenize = TrigramTokenizer))
inspect(tdm)


Output

<<TermDocumentMatrix (terms: 7, documents: 3)>>
Non-/sparse entries: 10/11
Sparsity           : 52%
Maximal term length: 14
Weighting          : term frequency (tf)

            Docs
Terms            1 2 3
  ab             1 1 1
  ab hello       1 0 0
  ab hello world 1 0 0
  hello          1 1 0
  hello ab       0 1 0
  hello world    1 0 0
  world          1 0 0

这给了我一个术语频率但是,我希望代码基础tfidf如下面的代码。虽然我在第一个中使用了dtm而在第二个中使用了tdm,但想象两者都是tdm和TermDocumentMatrix

dtm <- DocumentTermMatrix(tt, control = list(weighting = weightTfIdf))
tdm <- TermDocumentMatrix( tt, 
                       control = list(wordLengths=c(1,Inf), tokenize = TrigramTokenizer))

我的问题是如何合并这些代码。我有很长的客户列表,并且通过使用第一个代码,我只能获得第一个表中显示的输出,但它有很多垃圾。正在考虑做它的基础tfidf会解决这个问题。请帮我解决一下这个。另外一种方法也是受欢迎的。

提前致谢

0 个答案:

没有答案