其他分享
首页 > 其他分享> > 针对新冠肺炎微博热搜话题使用R语言进行文本特征提取的四种方法(一) —— 基于TF-IDF的特征提取

针对新冠肺炎微博热搜话题使用R语言进行文本特征提取的四种方法(一) —— 基于TF-IDF的特征提取

作者:互联网

       在对一段文本进行分词之后,有的词出现的次数会比较多,因此往往对其出现的频次进行统计,作为该词重要程度的度量。基于这个思想,词频(Term Frequency,TF)被广泛应用于基本的文本数据挖掘。在实际应用中,分词过后经常出现的词包含一些常用而又不带有信息量的词,例如中文里面的“的”“了”“呢”,英文中的“the”“it”“is”。

       为了在评估的时候降低这种词的重要性比重,产生了逆文档频率(Inverse Document Frequency,IDF)这一概 念。它的计算公式为:

IDF_{term} = ln\frac{N}{df_{term}}

      其中,N表示语料库中文档的总数,df_{term}表示语料库中出现了 term这个词的文档数量。可以看出,如果一个词在多个文档中都出现 df_{term}会上升,那么这个term的IDF就会下降。而我们常提到的TF-IDF 的计算公式为:

 TF-IDF = TF\times IDF

      TF-IDF就是词频TF与逆文档频率IDF的乘积,它背后的思想是:词语的重要性与它在文件中出现的次数成正比,但同时会随着它在语料库中出现的频率成反比。要在R中计算TF-IDF是非常便捷的,可以使用tidytext包的bind_tf_idf函数进行实现。下面以新冠肺炎微博热搜话题为例进行说明:

library(tidyverse)
library(tidytext)
order <- read_excel("E:/code/data/data mining/Weibo_2020Coron.xlsx") %>%      #导入数据
  select("id","title") 
order
#分词与计数
order %>% 
  unnest_tokens(title,title) %>% 
  count(id,title) -> count_table
#计算IF-IDF
count_table %>% 
  bind_tf_idf(title,id,n)

     结果如下图所示:

 

标签:count,title,语料库,IDF,TF,文档,特征提取
来源: https://blog.csdn.net/weixin_44923423/article/details/121281109