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

Posted gaowenxingxing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TF-IDF算法原理及其使用详解相关的知识,希望对你有一定的参考价值。

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算法原理及其使用详解的主要内容,如果未能解决你的问题,请参考以下文章

机器学习基础——详解自然语言处理之tf-idf

TF-IDF算法及其编程实现

TF-IDF及其算法

TF-IDF及其算法

线性回归算法和逻辑斯谛回归算法详细介绍及其原理详解

机器学习之自然语言处理——中文分词jieba库详解(代码+原理)