def extract_DOB()

in functions/source/publish-call-metadata/lambda_function.py [0:0]


def extract_DOB(transcript):
    punc = '''!()-[]{};:'"\,<>.?@#$%^&*_~'''
    for ele in punc:
        if ele in punc:
            transcript = transcript.replace(ele, '')
    transcript = transcript.lower() 
    context = [i.lower() for i in ['date of birth', 'DOB', 'birthdate', 'birth date']]
    b = list(filter(lambda k: transcript.find(k) != -1, context))
    if b != []:
        c = transcript.find(b[0])
        text = transcript[np.clip(c - 50, 0, len(transcript)):np.clip(c + 100, 0, len(transcript))]
        text = text.replace('of', '').replace('  ', ' ')
        try: 
            r1 = re.findall(r"\s[0-9]{1,2}[a-z]{2}\s", text)[0].strip()
            r = re.findall(r"[0-9]{1,2}", r1)[0]
            text = text.replace(r1, r)
            dob = extract_dates(text)
        except:
            dob = extract_dates(text)
        
        if len(dob) != 0:
            return str(dob[0].month).zfill(2) + '-' + str(dob[0].day).zfill(2) + '-' + str(dob[0].year)
        else:
            return ''
    else:
        return ''