中文文本特征提取–TFIDF算法实现

  • Post author:
  • Post category:其他



TF-IDF (term frequency–inverse document frequency

,词频-反向文档)频率是应用于文本特征提取的一种特征提取技术,它也是常用于数据挖掘的加权技术。

TF-IDF是一种基于词频统计的方法,用于计算数据集中的某个文档的重要程度。某个单词的重要程度与两个因素有关:(1)与其在文档中出现的次数有关,和单词重要程度成比例关系,(2)与数据集中文档使用这个词的频率有关,和单词重要程度呈反比例关系。

TF-IDF的主要思想是:某个词在某篇文档中使用频率较高,但是却在其它的文章中很被使用,那么,这个词可以被看作是一个很好的分类方法。

TF是某个词在文档中使用的频率,用来代表这个词在文本中出现的次数,通常会被标准化(单词的频率除以文章的总单词数量)来避免其倾向于一个较长的文档。如公式4-2所示

公式:

tf_{ij}=\frac{n_{i,j}}{\sum_{k}n_{k,j} }

(4-2)

即:

TF_{w}=\frac{count_{w}}{sum}

(4-3)

其中,
count_{w}
表示在某一类中词条w出现的次数;
sum
表示该类中所有的词条数目

IDF是逆向文件频率(Inverse Document Frequency),表示文本中某个特别的词的IDF,它的计算方式由数据集中总的文本数目除以包含该词语的文本数目得到商,并对其进行以10为底对数运算,得到IDF值,如公式4-4所示。如果包含词条t的文档越少,则IDF越大,则说明该词语具有代表该类文本的能力越大。

公式:

idf_{i}=log\frac{\left | D \right |}{\left | \left \{ j:t_{i}\epsilon d_{j} \right \} \right |}

(4-4)

其中,|D|是某个数据集中的文本总数量,正在上传…重新上传取消 表示包含词语 的文件数目(即 i,j≠0 的文件数目)。如果该词语不在处理后的数据集中,就会导致分母为零,因此我们需要对分母进行处理,给分母加上1, ,即:

IDF=log\left ( \frac{S}{s_{w}+1} \right )

(4-5)

其中,S代表语料库的文档总数,
s_{w}+1
代表包含词条w的文档数+1,之所以加1,为了防止出现0

TF-IDF实际上是:TF * IDF,使用某个文本中的含有词语频率高的频率,以及该词语在整个文件集合中的低文件频率,通过计算产生出高权重的TF-IDF。因此,TF-IDF算法就是把常见的、以及文本普遍存在的一些词语给剔除,保留一些可以代表该类文本的词语。

公式:

TF-IDF=TF*IDF

(4-6)

缺点:

(1)未将区分度的影响因素纳入到文字中;

(2)TF-IDF算法在计算过程中,会给一些生词分配很高的权值,导致计算出来的 IDF值(反向文件的使用频率)会更高,所以这些生字很容易被误认为是文本中的关键字;

(3)TF-IDF中的IDF部分仅考虑了特征字和其所产生的文字数量的相关性,而忽视了一类中各属性项的分布。



版权声明:本文为weixin_45948508原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。