基于R语言的TF-IDF算法(文本挖掘)

Posted 轻松学统计

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于R语言的TF-IDF算法(文本挖掘)相关的知识,希望对你有一定的参考价值。

#TF-IDF算法主要适用于文本挖掘,主要的功能是对文本关键词的提取

   #TF表示term frequency ,代表词频

     #词频的计算有很多种:

        #①单词在某篇文章中出现的次数:这种计算方式不常用,因为会偏向较长的文章

        #②单词在某篇文章中出现的次数/该篇文章词数的总和

        #③单词在某篇文章中出现的次数/该篇文章中出现次数最多的词的次数

     #词频的含义:如果某个词在文章中出现的次数很高,则该词越重要。

 

   #IDF表示inverse document frequency ,代表逆文档频率

     #逆文档频率的计算公式为:

        #log( 语料库的文档总数/(包含该词的文档总数+1) )

        #其中+1没有具体的含义,只是为了在数学计算上避免分母为0

    #逆文档频率的含义:如果一个词在所有文章中出现的次数越多,说明该词越不重要。

 

   #TF-IDF = TF * IDF

   #该式子表示TFIDF的值与某词在某篇文章中出现的次数成正比,与某词在整个语料库中出现的次数呈反比。

 

#—————————R中的代码———————————#

 

install.packages("jiebaR")

library(jiebaR)

   

wk = worker()

 

setwd("C:/Users/mac/Desktop/R")

news <- readLines("testa.txt",encoding='UTF-8')

  #我们选择的文件是之前发“R语言之FSelector包的变量选择”3个文档的合并文件。

head(news)

 

#文档的简单分词

a = wk[news]

a

#由于文章不长,因此分词结果共计分割了1505个词,下图显示前105行的词。

基于R语言的TF-IDF算法(文本挖掘)

 

  #一边来说,拿到一个文档,我们不应该直接进行分词,而是应该对文档进行数据预处理工作,

  #但由于这里主要是演示TFIDF的算法的操作,因此这一部分会在后续的分享中放出

 

a_freq = freq(a) #计算词频

a_freq #显示前20个词的词频

基于R语言的TF-IDF算法(文本挖掘)

 

##词频可视化

library(wordcloud2)

wordcloud2(a_freq,color = "random-light")

 

#关键词提取

keys = worker("keywords",topn = 10)

vector_keywords(a,keys)

  

#显示前10TFIDF得分最高的词

 

#本文本中变量,formulaclassdatasimplecutoff,算法,iris,housevotes84,选择

#10个词是该文本的关键词。其中irishousevotes84都是数据集,而本篇文章主要运用的数据集也正是这两个

#本文的主题是变量选择,我们发现此包把变量选择两个词分开了,所以在分词方面还有提升的空间,

#也是后续可以优化的所在。


以上是关于基于R语言的TF-IDF算法(文本挖掘)的主要内容,如果未能解决你的问题,请参考以下文章

python [NLTK实现TF-IDF]#TF-IDF#算法#数据挖掘#文本挖掘#文本分类

R语言文本挖掘tf-idf,主题建模,情感分析,n-gram建模研究

Text Mining一款用于文本挖掘的的软件

R语言之文本挖掘--分词

R语言 | 手把手教你做文本挖掘!

文本挖掘在电信行业的应用