strsim

package module
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2022 License: Apache-2.0 Imports: 2 Imported by: 29

README

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())

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Compare

func Compare(s1, s2 string, opts ...Option) float64

比较两个字符串相似度

func FindBestMatch added in v0.0.2

func FindBestMatch(s string, targets []string, opts ...Option) *similarity.MatchResult

返回相似度最高的那个字符串, 以及索引位置

func FindBestMatchOne

func FindBestMatchOne(s string, targets []string, opts ...Option) *similarity.Match

返回相似度最高的那个字符串

Types

type Option

type Option interface {
	Apply(*option)
}

type OptionFunc

type OptionFunc func(*option)

func Cosine added in v0.0.3

func Cosine() OptionFunc

func Default

func Default() OptionFunc

func DiceCoefficient

func DiceCoefficient(ngram ...int) OptionFunc

ngram 是筛子系数需要用的一个值

func Hamming

func Hamming() OptionFunc

func IgnoreCase

func IgnoreCase() OptionFunc

忽略大小写

func IgnoreSpace

func IgnoreSpace() OptionFunc

忽略空白字符

func Jaro

func Jaro(matchWindow ...int) OptionFunc

ngram 是筛子系数需要用的一个值

func JaroWinkler added in v0.0.3

func JaroWinkler(matchWindow ...int) OptionFunc

JaroWinkler ngram 是筛子系数需要用的一个值

func Simhash added in v0.0.3

func Simhash() OptionFunc

func UseASCII

func UseASCII() OptionFunc

使用ascii编码

func UseBase64 added in v0.0.3

func UseBase64() OptionFunc

UseBase64 使用base64编码

func (OptionFunc) Apply

func (o OptionFunc) Apply(opt *option)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL