strsim
strsim 是 golang 实现的字符串相识度库,后端集成多种算法,主要解决现有相似度库不能很好的处理中文
项目地址
https://github.com/antlabs/strsim
构架

功能
- 可以忽略空白字符
- 可以大小写
多种算法支持
- 莱文斯坦-编辑距离(Levenshtein)
- Hamming
- Dice's coefficient
- Jaro
内容
- 比较两个字符串相识度
- 从字符串数组里面找到相似度最高的字符串
- 选择不同算法
- 莱文斯坦-编辑距离(Levenshtein)
- [选择 Dice's coefficient](#选择 Dice's-coefficient)
- [选择 jaro](#选择 jaro)
- [选择 Hamming](#选择 Hamming)
比较两个字符串相识度
strsim.Compare("中国人", "中")
// -> 0.333333
从数组里找到相似度最高的字符串
strsim.FindBestMatchOne("海刘", []string{"白日依山尽", "黄河入海流", "欲穷千里目", "更上一层楼"})
选择不同算法
莱文斯坦-编辑距离(Levenshtein)
strsim.Compare("abc", "ab")
// -> 0.6666666666666667
选择 Dice's coefficient
strsim.Compare("abc", "ab", strsim.DiceCoefficient(1))
//-> 0.6666666666666666
选择 jaro
strsim.Compare("abc", "ab", strsim.Jaro())
选择 Hamming
strsim.Compare("abc", "ab", strsim.Hamming())