一般计算两段文本相似度,会通过两段文本的矩阵向量的cosθ值,值越接近1就越相似,那么矩阵向量怎么合理的表示就很关键。

一般想到的是通过CountVectorizer或者TfidfVectorizer来提取向量矩阵,两者有一些不同,谁更合适呢?

1、CountVectorizer
简单的计算关键词在文本中出现的频率,也就是计算词频(Term Frequency, TF),这会带来一个问题:有些单词是在整个语料库里面很普遍的,但是他并不稀缺,CountVectorizer对常见词和罕见词一视同仁,高词频的常见词在特征向量中占有很大的权重,可能淹没真正重要的主题词。

2、TfidfVectorizer
TfidfVectorizer除了计算TF之外,还引入了IDF(Inverse Document Frequency,逆向文档频率)的概念:

云享研发中心 > (三)计算两段文本的相似度 > image2025-6-25_14-20-12.png

TF * IDF更能反应当前语料库中某个文档片段的特征

综上所述,要计算两段文本的相似度,使用TfidfVectorizer更合适。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐