Skip to content

An approximate string matching algorithm written in Go based on fuzzywuzzy

License

Notifications You must be signed in to change notification settings

charlesvdv/fuzmatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FuzMatch, an approximate string matching library in golang

Build Status

About

fuzmatch is a library inspired by the fuzzywuzzy python library. I've used the same function name so if you want to know more about how the function works, go see the SeatGeek blog post about fuzzywuzzy.

WARNING

The algorithm used in this library is the levenshtein distance but the fuzzywuzzy package use the python-Levenshtein who has a special function for the ratio where the replace operation costs 2 (in my algorithm it costs 1). So if you compare fuzzywuzzy and fuzmatch there mays be a few differences.

Installation

go get github.com/charlesvdv/fuzmatch

You need of course to set your GOPATH, otherwise you will have an error.

Usage

A simple ratio.

fuzmatch.Ratio("book", "back")
"75"

A partial ratio.

fuzmatch.PartialRatio("hello world!","hello")
"100"

A token sort ratio.

fuzmatch.TokenSortRatio("Rust vs Golang", "Golang vs Rust")
"100"

A token set ratio.

fuzmatch.TokenSetRatio("Rust from Mozilla vs Go from Google's employees", "Rust vs Go")
"100"

If you want more informations on how the function works, go see the SeatGeek blog.

To-Do

  • Benchmarks
  • More unit tests

Contribute

Pull requests, commits are welcome !

About

An approximate string matching algorithm written in Go based on fuzzywuzzy

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages