0

0

利用Python和AI轻松创建简历分析器:教程与代码分享

花韻仙語

花韻仙語

发布时间:2025-12-20 08:26:19

|

394人浏览过

|

来源于php中文网

原创

在当今竞争激烈的就业市场中,一份精心制作的简历至关重要。如何确保你的简历在众多应聘者中脱颖而出?答案是利用人工智能 (AI) 技术来分析和优化你的简历。本文将向你展示如何使用 Python 编程语言和 Google 的 Gemini AI 模型构建一个强大的简历分析器。这款分析器能够根据职位描述,评估简历的匹配度,并提供改进建议,帮助你提升求职成功率。无论你是求职者还是招聘人员,本文都将为你带来极大的价值。

关键要点

使用 Python 编程语言构建 AI 驱动的简历分析器。

利用 Google 的 Gemini AI 模型进行简历分析和职位匹配。

通过上传简历和职位描述,获取简历匹配度评分和改进建议。

理解关键步骤:文本提取、提示工程和结果分析。

学习如何构建具有用户友好界面的 Flask Web 应用程序。

掌握使用 Markdown 格式化输出结果的方法。

根据实际需求自定义和扩展简历分析器功能。

AI 简历分析器:Python 实现指南

项目概述与功能演示

简历分析器旨在帮助用户评估其简历与特定职位描述的匹配程度,并提供改进建议。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

利用Python和AI轻松创建简历分析器:教程与代码分享

工具通过上传简历(仅支持 PDF 格式)和粘贴职位描述来实现。分析结果将包括匹配度评分、缺失技能列表以及改进建议。

项目功能:

  • 简历上传: 用户可以上传 PDF 格式的简历文件。
  • 职位描述输入: 用户可以粘贴职位描述文本。
  • AI 驱动分析: 系统利用 AI 技术分析简历内容。
  • 匹配度评分: 生成简历与职位描述的匹配度评分(百分制)。
  • 缺失技能识别: 识别简历中未提及但职位描述中要求的关键技能。
  • 改进建议: 提供针对性的简历优化建议,例如量化成就、突出相关技能等。

功能演示:

立即学习Python免费学习笔记(深入)”;

首先,展示了用户界面的基本操作。用户可以点击“选择文件”按钮上传简历,并在文本框中粘贴职位描述。然后,点击“分析简历”按钮,系统将开始分析。分析完成后,用户将看到匹配度评分、缺失技能列表和改进建议。

代码准备与环境配置

要构建一个AI简历分析器,首先需要准备合适的开发环境和必要的Python库。这将确保你能顺利运行代码,并与Gemini AI模型进行交互。

1. 开发环境:

  • Python 3.6+:确保你的系统安装了 Python 3.6 或更高版本。你可以从 Python 官网下载并安装:https://www.python.org/downloads/
  • pip: Python 的包管理工具,用于安装和管理项目依赖。
  • 代码编辑器: 选择你喜欢的代码编辑器,例如 VS Code、PyCharm 等。

2. 安装必要的 Python 库:

打开命令行终端,使用 pip 安装以下库:

pip install google-generativeai pymupdf python-dotenv
  • google-generativeai: 用于与 Google 的 Gemini AI 模型进行交互。

    利用Python和AI轻松创建简历分析器:教程与代码分享

  • pymupdf: 用于从 PDF 文件中提取文本。

  • python-dotenv: 用于加载和管理环境变量。

3. Gemini API 密钥:

你需要一个 Google Cloud 项目并启用 Gemini API 才能获取 API 密钥。访问 Google AI Studio 网站:https://aistudio.google.com/,创建一个新的项目并获取 API 密钥。

4. 环境变量设置:

为了安全地存储 API 密钥,建议将其设置为环境变量。创建一个名为 .env 的文件,并在其中添加以下内容:

GEMINI_API_KEY=你的API密钥

然后,使用 python-dotenv 库加载环境变量。

从 PDF 简历中提取文本

在分析简历之前,我们需要从 PDF 文件中提取文本内容。这可以通过 pymupdf 库来实现。

利用Python和AI轻松创建简历分析器:教程与代码分享

以下代码展示了如何定义一个函数,用于提取 PDF 文件中的文本:

import fitz  https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b pymupdf

def extract_text_from_resume(pdf_path):
    """从 PDF 文件中提取文本。"""
    doc = fitz.open(pdf_path)
    text = ""
    for page in doc:
        text += page.get_text()
    return text

代码解释:

  • import fitz:导入 pymupdf 库,并使用别名 fitz
  • extract_text_from_resume(pdf_path):定义一个名为 extract_text_from_resume 的函数,接受 PDF 文件路径作为参数。
  • doc = fitz.open(pdf_path):使用 fitz.open() 函数打开 PDF 文件。
  • text = "":创建一个空字符串,用于存储提取的文本。
  • for page in doc:遍历 PDF 文件中的每一页。
  • text += page.get_text():使用 page.get_text() 方法提取当前页面的文本,并将其添加到 text 字符串中。
  • return text:返回提取的文本。

使用示例:

pdf_path = "kumareshan-Resume.pdf"  https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b 你的简历 PDF 文件路径
resume_text = extract_text_from_resume(pdf_path)
print(resume_text)

这段代码将从 kumareshan-resume.pdf 文件中提取文本,并将其打印到控制台。

提示工程:构建 AI 交互指令

提示工程是与 AI 模型进行有效沟通的关键。一个精心设计的提示 (Prompt) 能够引导 AI 模型生成高质量、符合要求的输出。

跃问视频
跃问视频

阶跃星辰推出的AI视频生成工具

下载

利用Python和AI轻松创建简历分析器:教程与代码分享

以下代码展示了一个用于简历分析的提示:

prompt = f"""
你是一位专业的简历分析师。
请分析以下简历,并根据提供的职位描述给出建议:

简历:
{resume_text}

职位描述:
{job_description}

请执行以下任务:
1.  分析简历与职位描述的匹配度。
2.  给出百分制匹配度评分。
3.  突出显示缺失的技能或经验。
4.  提供改进建议。

请以结构化的格式返回结果:
匹配度评分:XX/100
缺失技能:...
建议:...
总结:...
"""

代码解释:

  • 该提示首先定义了 AI 模型的角色:专业的简历分析师。
  • 然后,它指示 AI 模型分析简历,并根据提供的职位描述给出建议。
  • 提示中包含了简历内容 {resume_text} 和职位描述 {job_description} 的占位符,将在后续步骤中被实际内容替换。
  • 提示明确了 AI 模型需要执行的任务:匹配度分析、缺失技能识别和改进建议。
  • 最后,提示要求 AI 模型以结构化的格式返回结果,方便用户阅读和理解。

使用示例:

在后续步骤中,你需要将提取的简历文本和职位描述文本分别赋值给 {resume_text}{job_description} 占位符,然后将整个提示发送给 AI 模型。

配置Gemini Pro模型

为了使用 Gemini Pro 模型,需要进行一些配置。

利用Python和AI轻松创建简历分析器:教程与代码分享

以下代码展示了如何配置 API 密钥和模型参数:

import os
import google.generativeai as genai
from dotenv import load_dotenv

load_dotenv()

genai.configure(api_key=os.getenv('GEMINI_API_KEY'))

model = genai.GenerativeModel('gemini-pro')

代码解释:

  • import os:导入 os 库,用于访问环境变量。
  • import google.generativeai as genai:导入 google-generativeai 库,并使用别名 genai
  • from dotenv import load_dotenv:从 python-dotenv 库中导入 load_dotenv 函数。
  • load_dotenv():加载 .env 文件中的环境变量。
  • genai.configure(api_key=os.getenv('GEMINI_API_KEY')):配置 Gemini API 密钥。os.getenv('GEMINI_API_KEY') 用于从环境变量中获取 API 密钥。
  • model = genai.GenerativeModel('gemini-pro'):创建一个 Gemini Pro 模型实例。gemini-pro 是 Gemini Pro 模型的名称。

模型参数配置:

Gemini Pro 模型提供了一些参数,可以用于控制生成文本的质量和多样性。以下代码展示了如何配置模型参数:

configuration = {
    "temperature": 1,
    "top_p": 0.95,
    "top_k": 40,
    "max_output_tokens": 8192
}

model = genai.GenerativeModel(model_name='gemini-pro', generation_config=configuration)

参数解释:

  • temperature:控制生成文本的随机性。值越高,文本越随机。范围:0.0 - 1.0。
  • top_p:控制生成文本的多样性。值越高,文本越多样。范围:0.0 - 1.0。
  • top_k:控制生成文本的候选词数量。值越高,候选词越多。范围:1 - 100。
  • max_output_tokens:限制生成文本的最大 token 数量。范围:1 - 8192。

你可以根据实际需求调整这些参数,以获得最佳的分析效果。

使用 Gemini AI 分析简历

配置好 Gemini Pro 模型后,就可以使用它来分析简历了。

利用Python和AI轻松创建简历分析器:教程与代码分享

以下代码展示了如何将简历文本和职位描述文本传递给模型,并获取分析结果:

def analyse_resume_gemini(resume_content, job_description):
    """使用 Gemini AI 分析简历。"""
    prompt = f"""
    你是一位专业的简历分析师。
    请分析以下简历,并根据提供的职位描述给出建议:

    简历:
    {resume_content}

    职位描述:
    {job_description}

    请执行以下任务:
    1.  分析简历与职位描述的匹配度。
    2.  给出百分制匹配度评分。
    3.  突出显示缺失的技能或经验。
    4.  提供改进建议。

    请以结构化的格式返回结果:
    匹配度评分:XX/100
    缺失技能:...
    建议:...
    总结:...
    """
    response = model.generate_content(prompt)
    return response.text

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b 获取简历文本和职位描述
resume_text = extract_text_from_resume(pdf_path)
job_description = "We are hiring a front end developer"

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b 分析简历
result = analyse_resume_gemini(resume_text, job_description)

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b 打印分析结果
print(result)

代码解释:

  • def analyse_resume_gemini(resume_content, job_description):定义一个名为 analyse_resume_gemini 的函数,接受简历文本和职位描述文本作为参数。
  • prompt = f"""...""":创建包含简历文本和职位描述文本的提示。
  • response = model.generate_content(prompt):使用 Gemini Pro 模型生成内容。prompt 是传递给模型的提示。
  • return response.text:返回生成的文本结果。

运行这段代码,你将会看到 Gemini Pro 模型生成的简历分析结果,包括匹配度评分、缺失技能和改进建议。

构建 Flask Web 应用程序界面

为了方便用户使用简历分析器,我们可以构建一个简单的 Flask Web 应用程序界面。

利用Python和AI轻松创建简历分析器:教程与代码分享

以下代码展示了如何创建一个基本的 Flask 应用程序:

from flask import Flask, request, render_template
from analyse_pdf import analyse_resume_gemini, extract_text_from_resume

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'uploads'
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        resume_file = request.files['resume']
        job_description = request.form['job_description']

        pdf_path = os.path.join(app.config['UPLOAD_FOLDER'], resume_file.filename)
        resume_file.save(pdf_path)

        resume_content = extract_text_from_resume(pdf_path)
        result = analyse_resume_gemini(resume_content, job_description)

        return render_template('index.html', result=result)

    return render_template('index.html', result=None)

代码解释:

  • from flask import Flask, request, render_template:从 flask 库中导入必要的模块。
  • app = Flask(__name__):创建一个 Flask 应用程序实例。
  • app.config['UPLOAD_FOLDER'] = 'uploads':设置上传文件夹。
  • os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True):创建上传文件夹(如果不存在)。
  • @app.route('/', methods=['GET', 'POST']):定义路由,处理 GET 和 POST 请求。
  • if request.method == 'POST':判断请求方法是否为 POST。
  • resume_file = request.files['resume']:获取上传的简历文件。
  • job_description = request.form['job_description']:获取职位描述文本。
  • pdf_path = os.path.join(app.config['UPLOAD_FOLDER'], resume_file.filename):构建 PDF 文件的保存路径。
  • resume_file.save(pdf_path):保存 PDF 文件。
  • resume_content = extract_text_from_resume(pdf_path):提取简历文本。
  • result = analyse_resume_gemini(resume_content, job_description):分析简历。
  • return render_template('index.html', result=result):渲染 index.html 模板,并将分析结果传递给模板。
  • return render_template('index.html', result=None):如果请求方法为 GET,则渲染 index.html 模板,不传递分析结果。

创建 index.html 模板:

templates 文件夹中创建一个名为 index.html 的文件,并添加以下内容:




    简历分析器


    

简历分析器





{% if result %}

分析结果:

{{ result }}
{% endif %}

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

758

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

636

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

761

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1264

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

548

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

579

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

708

2023.08.11

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 2.3万人学习

Django 教程
Django 教程

共28课时 | 3.2万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号