@leolee9086/string-metrics-dice
v1.0.1
Published
Sørensen-Dice 系数算法库
Maintainers
Readme
String Metrics Dice
高性能 Sørensen-Dice 系数算法库,支持多种实现变体和竞争系统。
📦 安装
npm install string-metrics-dice🚀 快速开始
基础使用
import { computeDiceCoefficient } from 'string-metrics-dice';
// 计算两个字符串的 Dice 系数
const similarity = computeDiceCoefficient('hello', 'helo');
console.log(similarity); // 0.8571428571428571
// 使用选项
const similarity2 = computeDiceCoefficient('Hello', 'helo', {
normalize: true
});
console.log(similarity2); // 0.8571428571428571WASM 高性能版本
import { computeDiceCoefficientWasm } from 'string-metrics-dice/wasm';
// 异步初始化
await computeDiceCoefficientWasm.init();
// 高性能计算
const similarity = computeDiceCoefficientWasm.compute('hello', 'helo');
console.log(similarity); // 0.8571428571428571📚 API 文档
computeDiceCoefficient(str1, str2, options?)
计算两个字符串的 Sørensen-Dice 系数。
参数:
str1(string): 第一个字符串str2(string): 第二个字符串options(object, 可选): 计算选项normalize(boolean): 是否进行 Unicode 标准化,默认falsenGramSize(number): n-gram 大小,默认2(bigram)
返回值:
number: Dice 系数,范围 [0, 1],1 表示完全相同
computeDiceDistance(str1, str2, options?)
计算两个字符串的 Dice 距离(1 - Dice 系数)。
参数: 同 computeDiceCoefficient
返回值:
number: Dice 距离,范围 [0, 1],0 表示完全相同
🏗️ 算法原理
Sørensen-Dice 系数基于字符 n-gram 的重叠度计算:
Dice = 2 * |A ∩ B| / (|A| + |B|)其中:
- A, B 是两个字符串的 n-gram 集合
- |A ∩ B| 是交集大小
- |A|, |B| 是各自集合大小
🔧 开发
安装依赖
npm install运行测试
npm test运行基准测试
npm run bench构建 WASM
npm run build:wasm许可证
AGPL=3.0 License
