code: def fuzzily_get_email_full_name(self, email: str) -> FullName:
      email = email.lower()
      email_prefix = email.split(sep="@", maxsplit=1)[0]
      cleaned = re.sub(r"(?:^[\d]+)|(?:[+.\-_\d]+$)", "", email_prefix)
      lemmatizer = nltk.stem.WordNetLemmatizer()
      lemma = lemmatizer.lemmatize(cleaned)
      if lemma in self.words_set:
          return FullName("", "")
      for func in self.emails_full_names_functions:
          full_name = func(cleaned)
          if full_name is not None and not full_name.is_empty():
              return full_name
      return FullName("", "")
  
file_path: bias-detector/bias_detector/fuzzy_names_from_emails/FuzzyEmailFullNameExtractor.py
imports: import re
  from bias_detector.common import *
  from bias_detector.fuzzy_names_from_emails.FullName import FullName
  import nltk
label_desc: Use image node_id 2 for calling the FuzzyEmailFullNameExtractor obj's underlying member method code with example usage: obj.fuzzily_get_email_full_name(email) and returns: FullName, FullName, full_name