本文主要是介绍NLP 文本相似度(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一份文本,从结构上划分可以是:字、词、句、段、篇。文本比较的粒度是词,一篇文章,可以划分成N个不同的词,选取其中包含重要信息的M个词作为这片文章的特征。M个词构成了M维的向量,两个文本之间的比较就是两个M维向量之间的比较。
余弦相似度
向量之间如何比较?我们可以采用余弦相似度,其描述如下:
- 一个向量空间中两个向量夹角的余弦值可以作为衡量两个个体之间差异的大小;
- 余弦值越接近1,夹角趋于0,表明两个向量越相似。
对于N维的向量a,b,其余弦相似度为:
对于两个句子A、B之间的比较,其步骤如下:
- 对A、B进行分词;
- 列出所有词(A、B词的并集);
- 计算词频;
- 词频向量化;
- 求余弦相似度。
对于文本A、B,其处理流程是:
- 找出两篇文章的关键词;
- 每篇文章各取出若干关键词,合并成一个集合,计算每篇文章对应这个集合的词的词频;
- 生成两篇文章各自的词频向量;
- 计算两个向量的余弦相似度,值越大就表示越相似。
这篇关于NLP 文本相似度(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!