Documentation
¶
Overview ¶
Package jsd provides string similarity metrics/string distance functions based on the Jaro-Winkler similarity.
This package supports unicode/multibyte strings.
Example (English) ¶
package main
import (
"fmt"
"github.com/mattn/go-jsd"
)
func main() {
for _, test := range []string{
"accomodate", "accommodate", "accommodated", "accommodates", "accommodating",
"accommodation", "ping ping",
} {
lhs := "accomodate"
rhs := test
dist := jsd.StringDistance(lhs, rhs)
sim := jsd.StringSimilarity(lhs, rhs)
fmt.Printf("%s <--> %s\n Dist: %.04f, Sim: %.04f\n", lhs, rhs, dist, sim)
}
}
Output: accomodate <--> accomodate Dist: 0.0000, Sim: 1.0000 accomodate <--> accommodate Dist: 0.0182, Sim: 0.9818 accomodate <--> accommodated Dist: 0.0333, Sim: 0.9667 accomodate <--> accommodates Dist: 0.0333, Sim: 0.9667 accomodate <--> accommodating Dist: 0.0815, Sim: 0.9185 accomodate <--> accommodation Dist: 0.0815, Sim: 0.9185 accomodate <--> ping ping Dist: 1.0000, Sim: 0.0000
Example (Japanese) ¶
package main
import (
"fmt"
"github.com/mattn/go-jsd"
)
func main() {
for _, test := range []string{
"こんにちわ世界", "こんちわ世界", "こにゃちわ世界", "こにゃにゃちわ世界",
"こんばんわ世界", "ハロー・ワールド",
} {
lhs := "こんにちわ世界"
rhs := test
dist := jsd.StringDistance(lhs, rhs)
sim := jsd.StringSimilarity(lhs, rhs)
fmt.Printf("%s <--> %s\n Dist: %.04f, Sim: %.04f\n", lhs, rhs, dist, sim)
}
}
Output: こんにちわ世界 <--> こんにちわ世界 Dist: 0.0000, Sim: 1.0000 こんにちわ世界 <--> こんちわ世界 Dist: 0.0381, Sim: 0.9619 こんにちわ世界 <--> こにゃちわ世界 Dist: 0.0762, Sim: 0.9238 こんにちわ世界 <--> こにゃにゃちわ世界 Dist: 0.1429, Sim: 0.8571 こんにちわ世界 <--> こんばんわ世界 Dist: 0.1524, Sim: 0.8476 こんにちわ世界 <--> ハロー・ワールド Dist: 1.0000, Sim: 0.0000
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Similarity ¶
Similarity is similar to StringSimilarity but takes rune slices instead of strings.
func StringDistance ¶
StringDistance returns the edit distance between two strings in the range 0 to 1. 0 means an exact match and 1 means there is no similarity.
func StringSimilarity ¶
StringSimilarity returns the similarity score between two strings in the range 1 to 0. 1 means an exact match and 0 means there is no similarity.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.