一般计算两段文本相似度,会通过两段文本的矩阵向量的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更合适。