无需登录 数据私有 本地保存

文本相似度计算器 - 余弦相似度

33
1
0
1

文本相似度计算器 - 余弦相似度

基于余弦相似度算法,精准量化两段文本的相似程度,支持中英文混合文本对比

快速示例:
0 字符
0 字符
余弦相似度

衡量两个向量方向的一致程度,值越接近1表示越相似,0表示正交(无关),常用于文本比对、推荐系统等。

中英文混合支持

中文采用字符级1-gram+2-gram分词,英文采用单词级分词,精准处理混合文本的语义相似度计算。

即时计算

纯前端计算,数据不上传服务器,保障隐私安全。毫秒级响应,即时获得相似度分析结果。

常见问题与知识点

余弦相似度(Cosine Similarity)是通过计算两个向量之间夹角的余弦值来衡量它们相似程度的方法。在文本分析中,首先将文本转化为词频向量(每个词在文本中出现的次数),然后计算两个向量的余弦值。

计算公式:cos(θ) = (A·B) / (|A| × |B|)
其中 A·B 是向量点积,|A| 和 |B| 分别是两个向量的模长。结果范围在 -1 到 1 之间,对于文本词频向量(非负值),结果在 0 到 1 之间,0 表示完全不同,1 表示完全一致。

对于文本词频向量(所有值非负),余弦相似度的取值范围为 0 到 1(即 0% 到 100%)
0% - 20%:极低相似度,两段文本主题或内容几乎完全不同
20% - 40%:低相似度,存在少量共同词汇但整体差异较大
40% - 60%:中等相似度,有一定共同内容但表述差异明显
60% - 80%:高相似度,内容较为接近,共享较多关键词
80% - 100%:极高相似度,文本高度一致,可能为同一来源或抄袭

英文文本:天然以空格分隔单词,分词较为简单直接,按空格和标点分割即可获得有意义的词汇单元。

中文文本:词语之间没有天然分隔符,需要特殊处理。本工具采用 字符级1-gram(单字)+ 2-gram(相邻双字组合) 的方式进行分词。这种方法能有效捕捉中文的语义特征,虽然不如专业分词工具精确,但在相似度计算中表现良好。

混合文本:工具会自动识别并同时处理中英文部分,确保混合文本的相似度计算准确性。

余弦相似度广泛应用于以下场景:
查重检测:检测论文、文章是否存在抄袭或高度相似内容
搜索引擎:计算查询词与文档的相关性排序
推荐系统:基于用户行为或内容特征计算相似用户/物品
文档聚类:将相似文档自动归类分组
客服系统:匹配用户问题与知识库中最相似的回答
版权保护:检测内容是否被未经授权转载

即使两段文本主题完全不同,它们仍然可能共享一些常见词汇,如"的"、"是"、"在"、"the"、"is"、"a"等高频词。这些词在任何文本中出现的频率都很高,会导致余弦相似度产生一个基础值。

要获得更准确的语义相似度,通常需要配合停用词过滤(移除常见无意义词汇)或使用 TF-IDF加权(降低高频词的权重)。本工具提供基础词频向量计算,用户可以直观看到共同词列表,理解相似度的来源。

余弦相似度关注的是文本的语义和词汇层面,通过词频向量衡量整体内容的相似性,即使语序不同、表述方式不同,只要用词接近就能获得较高相似度。

编辑距离(又称Levenshtein距离)关注的是文本的字符序列层面,计算将一个字符串转换为另一个所需的最少编辑操作次数(插入、删除、替换)。它更适用于拼写纠错、模糊匹配等场景。

简单来说:余弦相似度回答"内容有多像",编辑距离回答"字面有多像"。

提高文本相似度计算准确性的常用方法:
去除停用词:过滤"的"、"是"、"在"等高频无意义词汇
使用TF-IDF加权:降低常见词权重,提升关键词影响力
词干提取/词形还原:将不同形态的词归并为同一词根(如running→run)
使用更精准的分词工具:如jieba分词(中文)、NLTK(英文)
引入词向量/语义嵌入:使用Word2Vec、BERT等深度学习模型捕捉语义相似性
增加n-gram范围:结合1-gram、2-gram、3-gram提高短语匹配能力

本工具基于标准余弦相似度算法,计算结果在数学上是准确的。但存在以下局限性:
分词精度:中文使用简单的n-gram分词,未使用专业分词库,对复杂语义的捕捉有限
无停用词过滤:高频无意义词会影响相似度得分
无词义理解:无法识别同义词(如"开心"和"高兴"被视为不同词)
语序不敏感:词袋模型忽略了词的顺序信息

对于一般的文本相似度比对需求,本工具已足够实用。如需更精确的语义分析,建议使用专业NLP工具。