英文关键词计算tf-idf 余弦相似度_如何计算两篇文章的相似度?

本文介绍了TF-IDF算法和余弦相似度在计算文章相似度中的作用。TF-IDF通过词频和逆文档频率确定关键词,余弦相似度则衡量向量间角度的相似性。通过将文章转换为TF-IDF向量并计算夹角余弦值,可以评估文章之间的相似程度。
摘要由CSDN通过智能技术生成

基础知识预备:

1.什么是空间向量:

空间中具有大小和方向的量叫做空间向量。向量的大小叫做向量的长度或模(modulus)

空间向量的坐标表示:A(x,y ,z)

cbfcc8b58916e80c1a19d2ed6ca19b62.png

2.空间向量的运算:

空间向量的坐标运算:设a=(x1,y1,z1),b=(x2,y2,z2)

|a|=

4994930f206c35cf0269e4836e7e94bb.png

(根据勾股定理)

a+b=(x1+x2,y1+y2,z1+z2)

a-b=(x1-x2,y1-y2,z1-z2)

ka=k(x1,y1,z1)=(kx1,ky1,kz1)

a·b=x1x2+y1y2+z1z2

ab<=> a=kb(b≠0,

)

ab<=> a·b=0<=>x1x2+y1y2+z1z2=0

e5c640f39c8af7773b7a04ef3cb7f566.png

3. TF-IDF算法--用于筛选关键词

TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF是词频(Term Frequency),IDF是逆文本频率指数(Inverse Document Frequency)。

TF表示词条在文档d中出现的频率。

当然,并不是说一个词出现的次数多,那么就可以使用这个词当做文章的关键词。比如说一篇文章中出现女性,果酸,激光的频率是一样的,但是明显果酸和激光的重要程度要大于女性,因为女性是一个很常见的词,所以我们就需要引入一个“权重的概念”来给特征词做一个排序。

IDF就是这个权重

词频乘以权重,就是这个词的TF-IDF。TF-ID越大,那么表示这个词就很可能是文章的关键词。

简单来说,如果一个词很少见,但是在这篇文章里出现的频率很大,那么就可以算作是我们我们想要的关键词。

假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,那么“母牛”一词在该文件中的词频就是3/100=0.03。一个计算文件频率 (IDF) 的方法是文件集里包含的文件总数除以测定有多少份文件出现过“母牛”一词。所以,如果“母牛”一词在1,000份文件出现过,而文件总数是10,000,000份的话,其逆向文件频率就是 lg(10,000,000 / 1,000)=4。最后的TF-IDF的分数为0.03 * 4=0.12。

Gensim and scikit-learn已经实现了TFIDF算法,可以直接在python里调用,就能帮我们提取关键词。

4.余弦相似度

Cosine similarity is a measure of similarity between two vectors of an inner product space that measures the cosine of the angle between them. The cosine of 0° is 1, and it is less than 1 for any other angle.

915222d7aa6f4488b274a7e265173c8e.png

https://en.wikipedia.org/wiki/Cosine_similarity

简单来说,对于给定的词或者短语或者文章,计算转换成TF-IDF vectors,然后计算他们的夹角余弦值。

为什么余弦相似度可以用来判断文章相似度?

设想一下,二维平面的有两条有方向的线段,如果他们的夹角是0,那么意味着他们方向一致,重合,如果是90度,意味着他们的方向不一致;如果是180度,则意味着他们的方向相反。因此,我们可以通过向量的夹角,来判断向量的相似程度。使用余弦来表示就是,如果靠近1,就说明相似度大,如果靠近0,意味着相似度很小。

举个例子,判断以下两个句子的相似度?

a:我今天在食堂吃早饭

b:我今天也在食堂喝粥。

a 取关键词:我,今天,食堂,吃,早饭

b 取关键词:我,今天, 麦当劳,吃,早饭

我们的特征词就是 我,今天, 食堂,吃,早饭,喝粥。

分别给a和b两个句子,转换成相应的向量,向量纬数就是关键词的数量,各个维数的值是哥证词的频率。所以a的向量是{1,1,1,1,1,0},b的向量是{1,1,1,0,0,1}

(为什么拿到词频数之后,就需要转换成向量运算?比如我们如果需要比较两条线段,只需要一个纬度(长度),比较正方形,需要两个纬度,宽和高。同理,每个句子或者每篇文章都可以当作是关键词的组成。当我们拿到所有的特征词之后,就需要转换成统一的n纬向量进行比较。)

计算着两个6纬的空间向量的夹角的cos值(参考前面的公式)0.707

总结以下,计算两篇文章的相似度的思路是:

1。根据TF-IDF算法提取两片文章相同数量的特征词(比如每篇文章10个)

2。汇总提取出来的关键词,生成一个新的特征词集合(比如最终15个特征词)

3。根据第二步提取出来的特征词集合,分别计算两篇文章的特征值向量

4。计算两个向量的夹角的余弦值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值