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 模型生成高质量、符合要求的输出。

Napkin AI
Napkin AI

Napkin 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 的文件,并添加以下内容:

<!DOCTYPE html>
<html>
<head>
    <title>简历分析器</title>
</head>
<body>
    <h1>简历分析器</h1>
    <form method="post" enctype="multipart/form-data">
        <input type="file" name="resume" accept=".pdf" required><br><br>
        <textarea name="job_description" rows="5" cols="50" required></textarea><br><br>
        <button type="submit">分析简历</button>
    </form>
    {% if result %}
    <h2>分析结果:</h2>
    <pre class="brush:php;toolbar:false;">{{ result }}
{% endif %}

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

46

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

178

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

51

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

92

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

102

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

227

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

532

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

171

2026.03.04

热门下载

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

精品课程

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

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.9万人学习

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

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