def testTokenSortForceAscii(self): s1 = "ABCD\u00C1 HELP\u00C1" s2 = "ABCD HELP" score = fuzz._token_sort(s1, s2, force_ascii=True) self.assertEqual(score, 100) score = fuzz._token_sort(s1, s2, force_ascii=False) self.assertLess(score, 100)
def getNameByFuzzSearch(title): fuzz_ratios = {} for game_info in list(game_jp_collection.find()): fuzz_ratios[game_info['title']] = fuzz._token_sort(title, game_info['title'], partial=False, full_process=True) result = max(fuzz_ratios.items(), key=lambda x: x[1]) if result[1] > 70: return result[0] return False
def getTitleByGoogle(query, region): time.sleep(5) api_key = "AIzaSyBW2n_2ZD7q-anVs2UL_WA8xESG7uqokdw" service_url = 'https://kgsearch.googleapis.com/v1/entities:search' if 'ACA NEOGEO' in query: query = query.split('ACA NEOGEO ')[1] if 'Arcade Archives ' in query: query = query.split('Arcade Archives ')[1] params = { 'query': query, 'limit': 10, 'indent': True, 'key': api_key, 'languages': ['en', 'ja', 'zh'] } titles = {'en': '', 'ja': '', 'zh': ''} response = requests.get(service_url, params=params) if response.json().get('itemListElement') and response.json( )['itemListElement'][0]['result'].get('name'): name_list = response.json()['itemListElement'][0]['result']['name'] for name in name_list: if name['@language'] == 'en': titles['en'] = name['@value'] elif name['@language'] == 'ja': titles['ja'] = name['@value'] elif name['@language'] == 'zh': titles['zh'] = name['@value'] if region == 'en' and fuzz._token_sort(titles['en'].lower(), query.lower(), partial=False, full_process=True) < 70: return {} if region == 'jp' and fuzz._token_sort( titles['ja'], query, partial=False, full_process=True) < 70: return {} return titles else: return {}