From e7c94d51c8b085bfddf7327ab4d1ed62fe545256 Mon Sep 17 00:00:00 2001 From: Anson Date: Mon, 6 Apr 2020 00:05:49 -0700 Subject: [PATCH] speed and accuracy improvments to fuzzy search --- functions.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/functions.py b/functions.py index a5364d9..b39502a 100644 --- a/functions.py +++ b/functions.py @@ -33,12 +33,19 @@ class Symbol: symbols = self.symbol_list symbols["Match"] = symbols.apply( - lambda x: fuzz.partial_ratio( - search.lower(), f"{x['Symbol']} {x['Issue_Name']}".lower() - ), - axis=1, + lambda x: fuzz.ratio(search.lower(), f"{x['Symbol']}".lower()), axis=1, ) + symbols.sort_values(by="Match", ascending=False, inplace=True) + if symbols["Match"].head().sum(): + symbols["Match"] = symbols.apply( + lambda x: fuzz.partial_ratio( + search.lower(), f"{x['Symbol']} {x['Issue_Name']}".lower() + ), + axis=1, + ) + symbols.sort_values(by="Match", ascending=False, inplace=True) + print(symbols.head()) return list(zip(list(symbols["Symbol"]), list(symbols["Description"]))) def find_symbols(self, text: str):