Skip to content

Releases: TigreGotico/phonetic_matcher

v0.1.2 Double Metaphone

25 Dec 18:51
Compare
Choose a tag to compare

this release adds the double metaphone algorithm

v0.1.0

25 Dec 18:01
Compare
Choose a tag to compare

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

25 Dec 16:04
Compare
Choose a tag to compare

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

25 Dec 15:12
Compare
Choose a tag to compare
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