TF-IDF

简介: TF为"词频",IDF为"逆文档频率",将这两个值相乘,就得到了一个词的TF-IDF值。某个词对文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的几个词,就是这篇文章的关键词。

TF为"词频",IDF为"逆文档频率",将这两个值相乘,就得到了一个词的TF-IDF值。某个词对文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的几个词,就是这篇文章的关键词。
算法的细节如下:

第一步,计算词频。

img_3f5b4c6a64690051f3b1c73df0bd968f.png

考虑到文章有长短之分,为了便于不同文章的比较,进行"词频"标准化。


img_a368e64ffaff669d968260dd987df25e.png

或者


img_8b64d770a386ce20150defb6ca78491e.png

第二步,计算逆文档频率。

这时,需要一个语料库(corpus),用来模拟语言的使用环境。


img_117549b2719e364e299fd285c0f303b1.png

如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。分母之所以要加1,是为了避免分母为0(即所有文档都不包含该词)。log表示对得到的值取对数。

第三步,计算TF-IDF。


img_3905fe940e951d0dbe9b81e19717aeb9.png

可以看到,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。所以,自动提取关键词的算法就很清楚了,就是计算出文档的每个词的TF-IDF值,然后按降序排列,取排在最前面的几个词。

需要注意的是,TF-IDF算法只是用来提取关键词的,后面我们需要根据余弦相似度来使用它。

算法如下,然后我知道我该咋做了:
(1)使用TF-IDF算法,找出两篇文章的关键词;

(2)每篇文章各取出若干个关键词(比如20个),合并成一个集合,计算每篇文章对于这个集合中的词的词频(为了避免文章长度的差异,可以使用相对词频);

(3)生成两篇文章各自的词频向量;

(4)计算两个向量的余弦相似度,值越大就表示越相似。

以上内容整理自### 阮一峰的博客

目录
相关文章
|
3月前
|
机器学习/深度学习 Python
tf.keras.layers.LSTM/tf.keras.layers.LSTMCell
【8月更文挑战第20天】tf.keras.layers.LSTM/tf.keras.layers.LSTMCell。
38 1
|
3月前
tf.keras.layers.Dense
【8月更文挑战第20天】tf.keras.layers.Dense。
63 2
|
3月前
tf.keras.layers.MaxPooling2D/AveragePooling2D
【8月更文挑战第19天】tf.keras.layers.MaxPooling2D/AveragePooling2D。
45 0
|
3月前
|
算法框架/工具 数据格式
tf.keras.layers.Conv2D
【8月更文挑战第20天】tf.keras.layers.Conv2D。
39 2
|
3月前
tf.zeros(), tf.zeros_like(), tf.ones(),tf.ones_like()
【8月更文挑战第11天】tf.zeros(), tf.zeros_like(), tf.ones(),tf.ones_like()。
35 5
|
6月前
|
算法
TF-IDF算法是什么呢?
TF-IDF(Term Frequency-Inverse Document Frequency)是一种常用于信息检索和文本挖掘的统计方法,用于评估一个词在文档集或一个语料库中的重要程度。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
|
4月前
|
自然语言处理 算法 搜索推荐
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【PyTorch】-了解张量(Tensor)
【PyTorch】-了解张量(Tensor)
TF-IDF及相似度计算
TF-IDF:衡量某个词对文章的重要性由TF和IDF组成 TF:词频(因素:某词在同一文章中出现次数) IDF:反文档频率(因素:某词是否在不同文章中出现) TF-IDF = TF*IDF TF :一个单词在一篇文章出现次数越多越重要 IDF: 每篇文章都出现的单词(如的,你,我,他) ,越不重要
411 0
TF-IDF及相似度计算
|
数据采集 机器学习/深度学习
tebsorflow2.0 tf.keras序列问题
本节是主要介绍的是序列问题的处理,采用的数据集为电影评论数据集,我们通过keras.datasets.imdb直接导入,之后我们建立模型,对其进行分类,并处理过拟合问题。
129 0
tebsorflow2.0 tf.keras序列问题