根据文本内容的相似度进行归类。

工具链接:数据归类工具

使用方法

放入对应工作表的链接,设置「文本内容列」和「归类列」。设置完成点击「开始归类」。

程序会根据链接从指定的表格的文本内容列获取原始数据,然后计算文本的相似度,最后将归类好的编号填入表格的「归类列」。

最后根据设置的「归类列」在表格里排序,就可以将所有类似的文本都归类到一起了,数据看起来会更加清晰。

算法介绍

编辑距离(Levenshtein Distance)

优点:
• 能够准确计算两个字符串之间的最小编辑操作(插入、删除、替换)次数,因此对于拼写错误的检测和字符串纠正很有效。
• 适用于短文本,尤其是单词或短语级别的相似度计算。

缺点:
• 计算成本较高,尤其是长文本,计算复杂度为 O(m × n)(m 和 n 是字符串长度)。
• 不能考虑单词顺序和语义,只基于字符操作。
• 对于同义词、拼写错误不同但语义相近的词无能为力。

Jaccard 相似度

优点:
• 计算两个字符串的字符集合(或单词集合)交集和并集的比值,简单直观。
• 计算速度快,适用于集合匹配(如标签、关键词匹配)。
• 可以用于长文本,只需基于单词(n-gram)集合计算,而不是逐字符计算。

缺点:
• 忽略了字符串的顺序,比如 “apple banana” 和 “banana apple” 的相似度是 1,但它们的语义可能不同。
• 只考虑集合匹配,不适用于细粒度的文本匹配,比如短字符串或句子级别的匹配。

余弦相似度(Cosine Similarity)

优点:
• 考虑了单词频率,通过计算两个文本向量的余弦夹角来衡量相似度,适用于长文本分析。
• 不受文本长度影响,即使文本长度不同也可以计算相似度。
• 在 NLP(自然语言处理)领域广泛使用,比如文档分类、新闻推荐等。

缺点:
• 需要先将文本转换成向量(如词袋模型),计算过程比 Jaccard 相似度复杂。
• 无法直接处理同义词,如“car”和“automobile”仍被视为不同的词。
• 适用于长文本,对短文本或单词级别的匹配效果较差。

Jaro-Winkler 相似度

优点:
• 主要用于字符串匹配,特别适合人名、地址、产品名称等短文本的匹配。
• 计算比 Levenshtein 更快,尤其适用于拼写不同但读音相近的文本匹配。
• 与 Levenshtein 编辑距离算法相比,某个算法在处理拼写错误时更稳定、适应性更强,不容易受到小的拼写错误影响,从而能更准确地识别相似的单词或短语。

缺点:
• 适用于短文本,对长文本的效果较差。
• 主要基于字符匹配,对语义匹配能力有限。

需求 推荐算法 适用场景
处理短文本、拼写错误 Levenshtein 用户名匹配、拼写检查
关键词匹配、标签分类 Jaccard 文章分类、社交媒体话题分析
文档相似度计算 余弦相似度 文档推荐、新闻分类
处理人名、地址匹配 Jaro-Winkler 客户信息匹配、企业数据清理
查找部分匹配 Smith-Waterman 语句相似度匹配、生物信息分析

如果文本较短且关注拼写错误,选择 Levenshtein。
如果关注单词集合匹配,选择 Jaccard。
如果文本较长并希望计算基于词频的相似度,选择 余弦相似度。
如果是人名或地址匹配,选择 Jaro-Winkler。
如果要查找局部相似度(如子句匹配),选择 Smith-Waterman。