• Stars
    star
    273
  • Rank 150,780 (Top 3 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Calculate string similarity library, integrate multiple algorithms on the back end。计算字符串相似度库,后端集成多种算法[从零实现]

strsim

strsim是golang实现的字符串相识度库,后端集成多种算法,主要解决现有相似度库不能很好的处理中文

Go codecov

构架

strsim.png

使用方式

go get -u github.com/antlabs/strsim

功能

  • 可以忽略空白字符
  • 可以大小写

    多种算法支持

    • 莱文斯坦-编辑距离(Levenshtein)
    • Hamming
    • Dice's coefficient
    • Jaro
    • JaroWinkler
    • Cosine
    • Simhash

内容

比较两个字符串相识度

strsim.Compare("中国人", "中")
// -> 0.333333

从数组里找到相似度最高的字符串

strsim.FindBestMatchOne("海刘", []string{"白日依山尽", "黄河入海流", "欲穷千里目", "更上一层楼"})

从数组里找到相似度最高的字符串-带下标

strsim.FindBestMatch("海刘", []string{"白日依山尽", "黄河入海流", "欲穷千里目", "更上一层楼"})

选择不同算法

莱文斯坦-编辑距离(Levenshtein)

strsim.Compare("abc", "ab")
// -> 0.6666666666666667

选择Dice's coefficient

strsim.Compare("abc", "ab", strsim.DiceCoefficient())
//-> 0.6666666666666666

选择jaro

strsim.Compare("abc", "ab", strsim.Jaro())

选择JaroWinkler

strsim.Compare("abc", "ab", strsim.JaroWinkler())

选择Hamming

strsim.Compare("abc", "ab", strsim.Hamming())

选择Cosine

strsim.Compare("abc", "ab", strsim.Cosine())

选择Simhash

strsim.Compare("abc", "ab", strsim.Simhash())

More Repositories

1

timer

High-performance timer implementation based on 5-level time wheel. 高性能定时器(5级时间轮,最小堆)[从零实现]
Go
263
star
2

pcurl

pcurl是解析curl命令的库,弥补go生态链的一块空白[从零实现]
Go
123
star
3

quickws

高性能websocket库, Callback写法,在高频cpu上有不俗表现 https://github.com/antlabs/quickws-example
Go
96
star
4

pcopy

pcopy是深度拷贝库,相比上个版本(v0.0.10),性能提升4-10倍
Go
89
star
5

greatws

100w连接仅需500-700MB内存,针对海量连接特别优化的websocket库(kqueue, epoll),高性能,callback写法,在服务器cpu上有不俗表现 https://github.com/antlabs/greatws-example
Go
80
star
6

httparser

高性能http 1.1解析器,为你的异步io库插上http解析的翅膀, 每秒可以处理630.15MB/s流量[从零实现]
Go
41
star
7

gstl

快写完了....支持泛型的数据结构库(vec, linkedlist, skiplist, hashtable, btree, avltree, rbtree, trie, set
Go
26
star
8

tostruct

Generate struct definition according to json/yaml/query string/http header string @^^@ 根据json/yaml/query string/http header字符串生成struct[从零实现]
Go
16
star
9

cronex

高性能cron库,crontab语法默认支持到秒级
Go
9
star
10

mock

生成mock数据
Go
7
star
11

gout-middleware

gout中间件
Go
6
star
12

brouter

高性能http router库,API风格类似httprouter,比1.3.0的httprouter快50-60%的样子,比开发版本的httprouter慢一点,大约是 92-95%的性能。[从零实现]
Go
5
star
13

h2o

脚手架工具,统一的dsl,方便生成一些代码(1. 配置生成http client/server代码 2. 从json/yaml生成结构体定义 3. 生成grpc protobuf)
Go
5
star
14

cat

golang实现的cat命令(所有功能),也可以看成https://github.com/guonaihong/clop 的使用示例
Go
2
star
15

greatws-example

greatws的example
Go
1
star
16

stl

纯c风格实现的高性能数据结构
Go
1
star
17

deepcopy

存放原deepcoppy v0.0.10版本的代码
Go
1
star
18

wsutil

websocket的工具函数
Go
1
star
19

quickws-example

quickws的example代码
Go
1
star
20

easychan

对于chan使用场景,总结与收集好用的工具函数
Go
1
star