libb.fuzzy_search
- fuzzy_search(search_term, items, case_sensitive=False)[source]
Search for term in a list of items using fuzzy matching.
Scores each item using Jaro-Winkler similarity and token set ratio, returning the highest score for each item tuple.
- Parameters:
- Yields:
Tuples of (items, max_score).
Example:
>>> results = fuzzy_search("OCR", [("Omnicare", "OCR",), ("Ocra", "OKK"), ("GGG",)]) >>> (_,ocr_score), (_,okk_score), (_,ggg_score) = results >>> '{:.4}'.format(ocr_score) '1.0' >>> '{:.4}'.format(okk_score) '0.9417' >>> '{:.4}'.format(ggg_score) '0.0' >>> x, y = list(zip(*fuzzy_search("Ramco-Gers", ... [("RAMCO-GERSHENSON PROPERTIES", "RPT US Equity",), ... ("Ramco Inc.", "RMM123FAKE")])))[1] >>> '{:.4}'.format(x), '{:.4}'.format(y) ('0.8741', '0.6667')