码迷,mamicode.com
首页 > 编程语言 > 详细

TF-IDF算法原理及其使用详解

时间:2020-06-13 12:35:30      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:精确   方式   cto   使用   linear   一个   区分   tor   doc   

TF-IDF算法原理及其使用详解

感觉之前学的不是很清晰,最主要理论和实践没有结合,这回结合一下~

TF-IDF(Term Frequency-inverse Document Frequency)是一种针对关键词的统计分析方法,用于评估一个词对一个文件集或者一个语料库的重要程度。一个词的重要程度跟它在文章中出现的次数成正比,跟它在语料库出现的次数成反比。这种计算方式能有效避免常用词对关键词的影响,提高了关键词与文章之间的相关性。

其中TF指的是某词在文章中出现的总次数,该指标通常会被归一化定义为TF=(某词在文档中出现的次数/文档的总词量),这样可以防止结果偏向过长的文档(同一个词语在长文档里通常会具有比短文档更高的词频)。IDF逆向文档频率,包含某词语的文档越少,IDF值越大,说明该词语具有很强的区分能力,IDF=loge(语料库中文档总数/包含该词的文档数+1),+1的原因是避免分母为0。TFIDF=TFxIDF,TFIDF值越大表示该特征词对这个文本的重要性越大。

可以在Sklearn中调用TFIDFVectorizer库实现TF-IDF算法,并且可以通过stopwords参数来设置文档中的停用词(没有具体意义的词,如助词,语气词等),使得停用词不纳入计算范围,提高算法的精确性。参考

简单实现

vectorizer1 = TfidfVectorizer(ngram_range=(1,2), min_df=3, max_df=0.9, sublinear_tf=True)
tra1 = df[‘f1‘]
features1 = vectorizer1.fit_transform(tra1) #得到tf-idf矩阵,稀疏矩阵表示
features1 = features1.todense()  #tf-idf矩阵的稠密表示
print(features1.shape, features1[0, :100])

(10341, 145) [[0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.4562324  0.         0.         0.45131381 0.         0.
  0.         0.         0.         0.2824933  0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.1268134  0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.13331896 0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.         0.         0.         0.         0.         0.
  0.29285283 0.         0.         0.27820729]]

TF-IDF算法原理及其使用详解

标签:精确   方式   cto   使用   linear   一个   区分   tor   doc   

原文地址:https://www.cnblogs.com/gaowenxingxing/p/13112149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!