字符串相似度
使用 Levenshtein、Jaro-Winkler、余弦、杰卡德、汉明和 Dice 等多种算法对比两段文本的相似度,即时出结果,100% 隐私保护。
什么是字符串相似度?
字符串相似度衡量两段文本的匹配程度,广泛应用于拼写检查、DNA 分析、抄袭检测和数据纠错等领域。
什么是 Levenshtein 距离?
Levenshtein 距离(编辑距离)衡量将一个字符串变为另一个字符串所需的最少单字符编辑次数(插入、删除或替换)。例如 "cat" 和 "bat" 的距离为 1。
什么是 Jaro-Winkler 相似度?
Jaro-Winkler 对具有相同前缀的字符串给予更高分数,常用于数据库中的姓名、地址匹配,能有效处理拼写错误。
余弦相似度是如何工作的?
余弦相似度将字符串拆分为字符 n-gram,转换为向量后计算两向量间夹角的余弦值。适用于较长文本,常用于信息检索。
余弦相似度和杰卡德相似度有什么区别?
余弦相似度使用 n-gram 频率向量并计算夹角,杰卡德相似度则使用 n-gram 集合的交集与并集之比。杰卡德忽略重复项,余弦不忽略。
什么是汉明距离?
汉明距离统计两个等长字符串在相同位置上不同字符的个数,仅适用于等长字符串,常见于纠错编码。
什么是 Sørensen-Dice 系数?
Sørensen-Dice 系数基于两个字符串共有的 bigram 数量与总 bigram 数量的比例来衡量相似度,对共有元素赋予更高权重。
应该选择哪种算法?
短文本(姓名、编码)有拼写错误时选 Levenshtein 或 Jaro-Winkler;长文本选余弦相似度;快速集合比较选杰卡德;等长字符串选汉明距离。
什么是 n-gram 分析?
n-gram 是字符串中连续 n 个字符的序列。例如 "hello" 的 bigram 为 "he"、"el"、"ll"、"lo"。n-gram 是许多相似度算法的基础。
什么是模糊匹配?
模糊匹配查找与目标模式近似(而非完全)匹配的字符串,常用于搜索引擎、拼写检查和数据清洗中处理拼写错误和变体。
我的数据会发送到服务器吗?
不会,所有计算都在您的浏览器本地完成,文本不会离开您的设备,没有服务器端处理或数据存储。
可以比较不同语言的文本吗?
可以,算法支持任意 Unicode 字符。但由于不同语言的字符结构和分词方式不同,结果可能会有差异。
如何使用字符串相似度
对比两个字符串并用 Levenshtein、Jaro-Winkler、Jaccard、Dice 等算法给出相似度评分,全部在浏览器本地计算,数据不上传。
- 把第一个字符串粘贴到上方输入框,第二个粘贴到下方输入框。
- 编辑任意一侧文本时,相似度评分会即时更新,范围从 0(完全不同)到 1(完全相同)。
- 看 Levenshtein 了解两串之间需要的单字符编辑次数,比较姓名等前缀敏感场景可用 Jaro-Winkler。
- 用 Jaccard 或 Dice 衡量共享字符集合,用 Cosine 看向量式重叠,Hamming 只适用于等长字符串。
各算法的口径本就不同:建议同时对比两三个,Levenshtein 数的是编辑次数,Jaccard 数的是共同片段。
相关工具
- 行排序 按字母、数字或长度对文本行排序。一键去重和反转顺序。
- 数字转大写 将数字转换为英文单词、中文大写、罗马数字和科学计数法。
- 大小写转换器 在大写、小写、标题格式、驼峰格式、蛇形格式、短横线格式等之间即时转换文本
- 随机大小写转换器 将文本字母随机转换为大写或小写。在浏览器中即时创建海绵宝宝大小写文本。
- 创建回文 通过追加反转字符串从任意文本创建回文。免费在线工具,浏览器即时运行,支持多行模式。
- 回文检测 即时检测任意文本、单词或句子是否为回文。免费在线工具,100% 在浏览器中运行,数据不会发送到任何服务器。
- 字符串旋转 在线字符串旋转工具,支持向左或向右循环移位字符,实时预览,无需安装。
- 文本重复工具 按指定次数重复文本,支持自定义分隔符。免费、快速,完全在浏览器中运行。