2 个版本
0.1.1 | 2019年1月10日 |
---|---|
0.1.0 | 2019年1月9日 |
#20 in #string-similarity
11KB
172 行
关于
Rust 实现的三集合比较算法,该算法对单词排序和拼写错误稳定。最佳使用案例是比较新闻标题,例如。不要用于超过255个字符的数据。
主要思想是找到属于两个单词都有的字母集合中的字符。
A = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}
S1 = {s1, s2, s3 ... sn}
S2 = {s1, s2, s3 ... sm}
S1 ⊆ A, S2 ⊆ A
Sim(S1, S2) = ||S1 ∩ A| - |S2 ∩ A||/|S1| + |S2|
目前尚未优化,但未来应该非常便宜。
基准测试
MacBook Pro (15英寸,2017),2.9 GHz Intel Core i7
test tests::bench_similarity ... bench: 30,278 ns/iter (+/- 2,312)
用法
use three_set_compare::ThreeSetCompare;
let comparator = ThreeSetCompare::new();
// 1.0
let similarity = comparator.similarity("First phrase here!", "Here firts phrase");
许可证
MIT
依赖
~3MB
~78K SLoC