| import re | |
| def extract_deadline(text): | |
| pattern = r"\b\d{1,2}\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|January|February|March|April|May|June|July|August|September|October|November|December)\s\d{4}\b" | |
| matches = re.findall( | |
| pattern, | |
| text, | |
| re.IGNORECASE | |
| ) | |
| return matches[0] if matches else "Not Found" | |
| def extract_documents(text): | |
| common_docs = [ | |
| "aadhaar", | |
| "income certificate", | |
| "marksheet", | |
| "passport photo", | |
| "domicile certificate", | |
| "caste certificate", | |
| "bank passbook" | |
| ] | |
| found = [] | |
| lower_text = text.lower() | |
| for doc in common_docs: | |
| if doc in lower_text: | |
| found.append(doc.title()) | |
| return found | |
| def extract_form_name(text): | |
| lines = text.split("\n") | |
| for line in lines: | |
| if len(line.strip()) > 5: | |
| return line.strip() | |
| return "Unknown Form" | |
| def extract_eligibility(text): | |
| eligibility_keywords = [ | |
| "eligibility", | |
| "eligible", | |
| "income" | |
| ] | |
| lines = text.split("\n") | |
| for line in lines: | |
| lower = line.lower() | |
| if any( | |
| keyword in lower | |
| for keyword in eligibility_keywords | |
| ): | |
| return line.strip() | |
| return "Not Found" | |
| def build_master_json(text): | |
| return { | |
| "form_name": extract_form_name(text), | |
| "deadline": extract_deadline(text), | |
| "eligibility": extract_eligibility(text), | |
| "documents": extract_documents(text), | |
| "contact_info": "" | |
| } |