Skip to content

similarity

使用莱文斯坦距离算法计算两个字符串之间的相似度

455 bytes
since v12.2.0

用法说明

similarity 函数通过计算两个输入字符串之间的莱文斯坦距离来评估相似度。该距离表示将一个字符串转换为另一个字符串所需的最少单字符编辑操作次数(插入、删除或替换)。

此函数适用于多种场景,包括:

  • 拼写检查与自动纠错功能
  • 模糊字符串匹配
  • DNA序列分析
  • 抄袭检测

该函数区分大小写并将空格视为有效字符。由于莱文斯坦距离具有对称性,输入字符串的顺序不会影响计算结果。

import * as _ from 'radashi'
// 完全相同的字符串
_.similarity('hello', 'hello') // => 0
// 单个字符差异
_.similarity('kitten', 'mitten') // => 1
// 多个字符差异
_.similarity('saturday', 'sunday') // => 3
// 大小写敏感特性
_.similarity('foo', 'FOO') // => 3
// 空格敏感特性
_.similarity('bar ', 'bar') // => 1
// 参数顺序不影响结果
_.similarity('abc', 'cba') // => 2
_.similarity('cba', 'abc') // => 2

函数返回表示两个输入字符串间莱文斯坦距离的 number 类型值。数值越小表示相似度越高,0值表示字符串完全一致。