Releases: TigreGotico/phonetic_matcher
Releases · TigreGotico/phonetic_matcher
v0.1.2 Double Metaphone
v0.1.0
the api can now be considered stable
this release moved some modules around, renamed some methods and picks better default values
import phonetic_matcher
# match scores
score = phonetic_matcher.fuzzy_match("mycroft", "microsoft") # 0.7571428571428571
score = phonetic_matcher.fuzzy_match("cat", "dog") # 0.4999999999999999
# best match selection
query = "mycroft"
choices = ["microsoft", "minecraft", "mike roft", "mein kampf", "my raft"]
best, score = phonetic_matcher.best_match(query, choices) # mike roft 0.9047095761381476
# all matches
matches = phonetic_matcher.match(query, choices)
# [('mike roft', 0.9047095761381476),
# ('minecraft', 0.7416326530612245),
# ('microsoft', 0.7387755102040816),
# ('my raft', 0.7083333333333333),
# ('mein kampf', 0.48752834467120176)]
v0.0.2 - rapidfuzz match strategies
adds configurable match strategy
from phonetic_matcher import *
# Match strategies powered by rapidfuzz
s = phonetic_fuzzymatch("hey mycroft", "hey microsoft", strategy=MatchStrategy.RATIO)
print(s) # 0.8874643874643875
s = phonetic_fuzzymatch("hey mycroft", "hey microsoft", strategy=MatchStrategy.PARTIAL_RATIO)
print(s) # 0.8541666666666666
s = phonetic_fuzzymatch("hey mycroft", "hey microsoft", strategy=MatchStrategy.TOKEN_SORT_RATIO)
print(s) # 0.8615384615384616
s = phonetic_fuzzymatch("hey mycroft", "hey microsoft", strategy=MatchStrategy.TOKEN_SET_RATIO)
print(s) # 0.9615384615384615
s = phonetic_fuzzymatch("hey mycroft", "hey microsoft", strategy=MatchStrategy.PARTIAL_TOKEN_RATIO)
print(s) # 0.9166666666666666
s = phonetic_fuzzymatch("hey mycroft", "hey microsoft", strategy=MatchStrategy.PARTIAL_TOKEN_SET_RATIO)
print(s) # 0.9166666666666666
s = phonetic_fuzzymatch("hey mycroft", "hey microsoft", strategy=MatchStrategy.PARTIAL_TOKEN_SORT_RATIO)
print(s) # 0.7803030303030303
s = phonetic_fuzzymatch("hey mycroft", "hey microsoft", strategy=MatchStrategy.QUICK_LEV_RATIO)
print(s) # 0.8874643874643875
0.0.1 - phonetic matcher
from phonetic_matcher import phonetic_bestmatch, phonetic_fuzzymatch
# match scores
score = phonetic_fuzzymatch("mycroft", "microsoft") # 0.8368983957219251
score = phonetic_fuzzymatch("hey", "gay") # 0.3076923076923077
# best match selection
query = "mycroft"
choices = ["microsoft", "minecraft", "mike roft", "mein kampf", "my raft"]
best, score = phonetic_bestmatch(query, choices) # mike roft 0.8823529411764706