ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

3 步把 300 份简历压到 10 份:ollama-python 本地筛选实操

3 步把 300 份简历压到 10 份:ollama-python 本地筛选实操 3 步把 300 份简历压到 10 份ollama-python 本地筛选实操【免费下载链接】ollama-pythonOllama Python library项目地址: https://gitcode.com/GitHub_Trending/ol/ollama-python周一上午十点阿哲把 312 份简历拖进一个文件夹盯了屏幕三分钟没动。面试定在周四一份份翻完要两天翻完还记不住标准。在线 AI 不敢碰——简历是隐私数据。他需要的是用 ollama-python 搭一条本地筛选流水线把职位描述和每份简历变成向量按相似度打分排序把最能打的几个人排到最上面数据全程不出本机。这篇文章的产出就三样本地模型与依赖的一次性配置一份能直接跑的 30 行脚本三个真实踩过的坑为什么走嵌入这条线关键词匹配会被同义词和格式骗过去大模型逐份判断准确但慢300 份跑下来分数还不稳定。嵌入是折中项文本变成向量相似度就是余弦计算快而且分数彼此可比。模型选 nomic-embed-text768 维、小、快CPU 就能跑筛选够用。7B 通用模型只是慢不推荐用来打分。向量打分和生成式回答互不依赖后面想加评语是另一层的事。从零到跑通克隆仓库装依赖拉模型三行命令把后面所有步骤的地基打好。git clone https://gitcode.com/GitHub_Trending/ol/ollama-python pip install ollama ollama pull nomic-embed-textclone 下来是为了之后直接翻仓库里的官方示例pip 装的就是这个仓库发布的客户端最后一行把嵌入模型拉到本地约 270 MB。前提是 Ollama 本体已装好这里不展开。一行验证嵌入模型拉完别急着往下写先确认模型真的能出向量。不验证后面报错你会先怀疑是脚本的问题。写法照抄仓库自带的 examples/embed.pyfrom ollama import embed r embed(modelnomic-embed-text, input[你好世界]) print(len(r[embeddings][0])) # 打印 768 就通了左边是句子右边是它的向量维度。768 出现说明模型健康后面所有打分都建立在它上面。写第一份批量评分脚本向量拿到了下一步就是算谁跟谁像。先把职位描述存成 job_desc.txt简历统一转成纯文本放进 resumes/ 目录一人一个文件。Word、PDF 用你顺手的工具导出就行脚本不碰文档格式。不用 numpy300 条 768 维的余弦手算也就毫秒级少一个依赖少一分出问题的地方。这段代码做了什么给职位描述生成一条向量再遍历简历逐条算余弦相似度最后打印名次前 10。import math, os from ollama import embed def cosine(a, b): dot sum(x * y for x, y in zip(a, b)) na math.sqrt(sum(x * x for x in a)) nb math.sqrt(sum(y * y for y in b)) return dot / (na * nb) jd_vec embed(modelnomic-embed-text, inputopen(job_desc.txt, encodingutf-8).read())[embeddings][0] rows [] for name in sorted(os.listdir(resumes)): if name.endswith(.txt): vec embed(modelnomic-embed-text, inputopen(fresumes/{name}, encodingutf-8).read())[embeddings][0] rows.append((name, cosine(jd_vec, vec))) for name, score in sorted(rows, keylambda t: t[1], reverseTrue)[:10]: print(f{name}\t{score:.2f})跑起来之后中档办公本312 个 txt跑完约 40 秒。终端长这样$ python screen.py chen_mo.txt 0.81 li_xiaotong.txt 0.74 wang_yue.txt 0.66 zhao_gang.txt 0.52 sun_qi.txt 0.49左边是文件名右边是余弦相似度取值 -1 到 1越接近 1 表示这份简历的表述和职位描述语义越贴。注意它是相对分回答的是谁更贴近这个 JD不是候选人够不够格所以不用纠结阈值按名次拿前 10 份人工复核。整条链路四步第一次跑会慢一点模型要加载进内存之后一直驻留不用额外处理。抽查前 3 名都写了 Python 和推荐系统经验确实是最像的一档。分数可解释、可复现初筛这步才敢交给它。踩坑与调优调 embed 报 Connection refused → Ollama 后端没起 → 先跑ollama serve或打开桌面版确认 11434 端口在监听。同一人简历写详写略得分不同 → 嵌入衡量的是表述不是事实 → 预处理时每份简历规范成技能、项目、年限三段再喂进去。300 份打分要十分钟以上 → 你在逐份调 embed → 它的 input 原生接受列表把所有简历文本一次传进去时间砍半不止。不止于此跑通之后仓库里现成的示例能直接接上结构化输出把技能、年限、学历抽成字段examples/structured-outputs.py多轮对话追问候选人的资格细节examples/chat-with-history.py给 Top 10 自动生成追问面试题examples/generate.py流水线干的就是把 300 份的阅读量压到 10 份。把上面脚本存成 screen.py丢进你的简历文件夹跑一次。【免费下载链接】ollama-pythonOllama Python library项目地址: https://gitcode.com/GitHub_Trending/ol/ollama-python创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表