Нет прямого пакета, но это может решить вашу проблему:
Создание идентификатора электронной почты в списке
a = 'Abd_tml_1132@gmail.com'
rest = a.split('@', 1)[0] # Removing @
result = ''.join([i for i in rest if not i.isdigit()]) ## Removing digits as no names contains digits in them
list_of_email_words =result.split('_') # making a list of all the words. The separator can be changed from _ or . w.r.t to email id
list_of_email_words = list(filter(None, list_of_email_words )) # remove any blank values
Создание имени в список:
b = 'Abdullah temel'
list_of_name_words =b.split(' ')
Применить нечеткое совпадение к обоим спискам:
score =[]
for i in range(len(list_of_email_words)):
for j in range(len(list_of_name_words)):
d = fuzz.partial_ratio(list_of_email_words[i],list_of_name_words[j])
score.append(d)
Теперь вам просто нужно проверить, больше ли какой-либо из элементов score
превышает пороговое значение, которое вы можете определить. Например:
threshold = 70
if any(x>threshold for x in score):
print ("matched")