Amazing-Python-Scripts
73 строки · 2.4 Кб
1import re2import csv3from pdfminer.pdfpage import PDFPage4from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter5from pdfminer.converter import TextConverter6from pdfminer.layout import LAParams7import io8
9
10def extract_education(resume_text):11education_pattern = r"((?:Bachelor|Master|Ph\.?D|Diploma)[^.,]*\b(?:\.\b)?(?:[^.,\n]*\b(?:University|College|School|Institute)\b[^.,\n]*)?)"12education_matches = re.findall(13education_pattern, resume_text, re.IGNORECASE)14return education_matches15
16
17def extract_experience(resume_text):18experience_pattern = r"(?:(?:[A-Z][a-z]+\s+){1,3})?(?:(?:\d{4}\s?-\s?\d{4}|\d{4})\s)?(?:(?:Present|Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)[A-Za-z\s]+\d{4})"19experience_matches = re.findall(20experience_pattern, resume_text, re.IGNORECASE)21return experience_matches22
23
24def extract_skills(resume_text, skills_list):25skills_found = []26for skill in skills_list:27escaped_skill = re.escape(skill)28if re.search(r'\b{}\b'.format(escaped_skill), resume_text, re.IGNORECASE):29skills_found.append(skill)30return skills_found31
32
33file_name = "resumes\Resume_12.pdf"34skills_file = "skills_list.csv" # Path to the CSV file containing skills35i_f = open(file_name, 'rb')36res_mgr = PDFResourceManager()37ret_data = io.StringIO()38txt_converter = TextConverter(res_mgr, ret_data, laparams=LAParams())39interpreter = PDFPageInterpreter(res_mgr, txt_converter)40for page in PDFPage.get_pages(i_f):41interpreter.process_page(page)42resume_text = ret_data.getvalue()43
44# Extract educational and work experience
45education = extract_education(resume_text)46experience = extract_experience(resume_text)47
48# Extract skills from CSV file
49skills_list = []50with open(skills_file, 'r') as csv_file:51reader = csv.reader(csv_file)52for row in reader:53skills_list.extend(row)54
55# Extract skills
56skills = extract_skills(resume_text, skills_list)57
58# Print the extracted information
59print("Educational Background:")60for edu in education:61print(edu)62
63print("\nWork Experience:")64for exp in experience:65print(exp)66
67print("\nSkills:")68for skill in skills:69print(skill)70
71# Close the file and converter
72i_f.close()73txt_converter.close()74