strsim

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2022 License: Apache-2.0 Imports: 2 Imported by: 0

README

strsim

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

from !(https://github.com/antlabs/strsim)

构架

strsim.png

使用方式

go get -u github.com/shijiaoliang/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

Compare 比较两个字符串相似度

func FindBestMatch

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

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

func FindBestMatchOne

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

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

func IsMatch

func IsMatch(s string, targets []string, score float64, opts ...Option) (bool, string, float64)

IsMatch 是否存在相似度大于等于score的文本

Types

type Option

type Option interface {
	Apply(*option)
}

type OptionFunc

type OptionFunc func(*option)

func Cosine

func Cosine() OptionFunc

Cosine CosineConf is a configuration struct for Cosine similarity.

func Default

func Default() OptionFunc

func DiceCoefficient

func DiceCoefficient(ngram ...int) OptionFunc

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

func Hamming

func Hamming() OptionFunc

func IgnoreCase

func IgnoreCase() OptionFunc

忽略大小写

func IgnoreSpace

func IgnoreSpace() OptionFunc

忽略空白字符

func Jaro

func Jaro(matchWindow ...int) OptionFunc

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

func JaroWinkler

func JaroWinkler(matchWindow ...int) OptionFunc

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

func Simhash

func Simhash() OptionFunc

func UseASCII

func UseASCII() OptionFunc

使用ascii编码

func UseBase64

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