个人简历制作免费导出,怎么制作简历电子版免费的

首页 > 经验 > 作者:YD1662024-03-25 13:04:56

需求:将PDF格式的个人简历文件,提取其中的全部有效信息,以格式化的形式存储。

实现方法:利用openai gpt model的自然语言理解与分析能力,将简历中信息提取为标准的yaml格式(自设模板),工具集采用Langchain。

语言:Python,最终输出两种格式文件,txt(yaml格式内容)和excel文件。

步骤:

pip install langchain langchain_openai pyyaml pandas

from langchain_community.document_loaders import PyPDFLoader from langchain_openai import ChatOpenAI from langchain.memory import ConversationBufferMemory from langchain import LLMChain, PromptTemplate import yaml import pandas as pd

OPENAI_API_KEY = "sk-" # 修改为自己的API model = 'gpt-3.5-turbo-0125'

template = """Format the provided resume to this YAML template(don't add any yaml mark): --- name: '' gender: '' age: '' phoneNumbers: - '' emails: - '' websites: - '' dateOfBirth: '' address: '' JobOrientations: - '' personal evaluation: '' education: - school: '' degree: '' fieldOfStudy: '' startDate_e: '' endDate_e: '' workExperience: - company: '' position: '' startDate_w: '' endDate_w: '' description: '' skills: - skill: '' certifications: - certification: '' {human_input}"""

prompt = PromptTemplate( input_variables=["human_input"], template=template ) # 不用多轮对话的话清空 memory = ConversationBufferMemory(memory_key="") llm_chain = LLMChain( llm=ChatOpenAI(model=model, openai_api_key=OPENAI_API_KEY, temperature=0.5), prompt=prompt, verbose=True, memory=memory, )

def extract_text_from_pdf(pdf_path): loader = PyPDFLoader(pdf_path) pages = loader.load() return pages

directory = '/xxx' # 替换为你的目录路径 for filename in os.listdir(directory): if filename.endswith('.pdf'): pdf_path = os.path.join(directory, filename) txt_path = os.path.join(directory, os.path.splitext(filename)[0] '_s.yaml') xls_path = os.path.join(directory, os.path.splitext(filename)[0] '.xlsx') # 从PDF提取数据并结构化 text = extract_text_from_pdf(pdf_path) text_structual = llm_chain.predict(human_input=text) # 将结构化数据写入到TXT文件 with open(txt_path, 'w') as f: f.write(text_structual) # 将YAML数据转换为Python字典 data_dict = yaml.safe_load(text_structual) # 如果项不是列表,则转换为列表 for key, value in data_dict.items(): if not isinstance(value, list): data_dict[key] = [value] #print(data_dict) # 将字典中的每个列表转换为一个DataFrame,然后将所有的DataFrame按行合并 dfs = [] for key, value in data_dict.items(): if all(isinstance(i, dict) for i in value): df = pd.DataFrame(value) else: df = pd.DataFrame({key: value}) dfs.append(df) df = pd.concat(dfs, axis=1) # 将 DataFrame 写入 Excel 文件 df.to_excel(xls_path, index=False)

个人简历制作免费导出,怎么制作简历电子版免费的(1)

添加图片注释,不超过 140 字(可选)

更严谨的方法是可以用Function Call,或者利用Langchain自身的结构化parser工具,但是配置模板时每一项内容都要标注对应的description,有点啰嗦,不再赘述。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.