2020-大数据分析-Tec1-TF-IDF算法
Tec1-TF-IDF
1. TF-IDF算法
- TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率)是一种用于信息检索(information retrieval)与文本挖掘(text mining)的常用加权技术。
- TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
- TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
1.1. TF是词频(Term Frequency)
- 词频(TF)表示词条(关键字)在文本中出现的频率。
- 这个数字通常会被归一化(一般是词频除以文章总词数), 以防止它偏向长的文件。
- 公式:或
- 是该词在中出现的次数,分母则是文件中所有词汇出现的次数总和。
1.2. IDF是逆向文件频率(Inverse Document Frequency)
- 逆向文件频率 (IDF):某一特定词语的IDF,可以由总文件数目除以包含该词语的文件的数目,再将得到的商取对数得到。
- 如果包含词条t的文档越少, IDF越大,则说明词条具有很好的类别区分能力。
- 公式:
- 其中|D|是语料库中的文件总数,|{j:t_{i}\in d_{j}|表示包含词语的文件综述,但是如果词语不在语料库中,会导致分母为0,因此一般情况下使用1 + |{j:t_{i}\in d_{j}|
- 所以公式是
1.3. TF-IDF的计算
2. TF-IDF应用
- 搜索引擎
- 关键词抽取
- 文本相似度
- 文本摘要
3. TF-IDF的实现
3.1. NLTK的实现
1 |
|
3.2. Sklearn实现TF-IDF
1 |
|
3.3. jieba实现TF-IDF算法
1 |
|
4. TF-IDF算法的不足
- TF-IDF的简单结构不能有效反映单词的重要程度和特征词的分布情况,无法进行权值调整。
- 在文本已经分类的情况下,精度不高,因为可能很多重合的关键词都被覆盖。
- 没有考虑特征词位置因素对文本的区分度
- 对于文档中出现次数较少的重要人名和地名信息提取效果不佳。
5. 参考
2020-大数据分析-Tec1-TF-IDF算法
https://spricoder.github.io/2020/11/01/2020-Big-data-analysis/2020-Big-data-analysis-Tec1-TF-IDF%E7%AE%97%E6%B3%95/