京公网安备 11010802034615号
经营许可证编号:京B2-20210330
金融技术实施专家大卫·摩尔
招聘人员正在使用越来越复杂的软件和工具来扫描简历,并将其与张贴的工作职位和工作规格进行匹配。如果你的简历是通用的,或者工作说明模糊和/或通用,这些工具将对你不利。AI真的在反对你的工作申请,我不确定你是否知道或是否会接受它!但是让我演示一些技巧,可以帮助您平衡困难。当然,我们将使用NLP(自然语言处理)、Python和一些Altair可视化。准备好反击了吗?
考虑到你对你在网上注意到的一个好职位感兴趣。还有多少人会看到同样的工作?和你有大致相同的经验和资历?你认为可能有多少申请人提出申请?会不会少于10个或者少于1000个?
此外,考虑到面试小组可能只有5个强有力的候选人。那么,如何从995份申请中筛选出5个强有力的候选人呢?这就是为什么我说你需要平衡胜算,否则就会被扔出杂草!
我想,首先,你可以把这些简历分成3或5份。把它们打印出来,分配给人类读者。每个阅读器从他们的堆中提供一个选择。有5个读者,这是一堆200份简历--去挑选最好的一两份。阅读这些会花很长时间,最终可能只会产生一个答案。我们可以用Python在几分钟内阅读所有那些简历!
在Medium上阅读这篇文章“我如何使用NLP(Spacy)筛选数据科学简历”,发现只要两行代码就可以收集这1000份简历的文件名。
#Function to read resumes from the folder one by one mypath='D:/NLP_Resume/Candidate Resume' onlyfiles = [os.path.join(mypath, f) for f in os.listdir(mypath) if os.path.isfile(os.path.join(mypath, f))]
变量'onlyfiles'是一个Python列表,其中包含使用Python os库获得的所有简历的文件名。如果你研究了文章,你还会看到你的简历是如何根据关键词分析几乎自动地进行排名和淘汰的。既然我们正在努力提高几率,我们需要关注你想要的工作规格和你目前的简历。他们匹配吗?
为了提高胜算,我们需要扫描工作描述、简历,并衡量匹配程度。理想情况下,我们这样做,以便输出是有用的调整在游戏中为您。
因为这是你的简历,你可能有PDF或DOCX格式。Python模块可用于读取大多数数据格式。图1演示了如何读取已将内容保存到文本文件中的文档。
第一步总是打开文件并读取行。下面的步骤是从字符串列表转换为单个文本,并在此过程中进行一些清理。图1创建了变量'job content'和'cv content',它们表示一个包含所有文本的string对象。下一个代码片段展示了如何直接读取Word文档。
import docx2txt
resume = docx2txt.process("DAVID MOORE.docx")
text_resume = str(resume)
变量'text_resume'是一个string对象,保存简历中的所有文本,就像以前一样。也可以使用PYPDF2。
import PyPDF2
只需说,从业者有一系列的选项来阅读文档,将它们转换为干净的处理过的文本。这些文件可能很广泛,很难阅读,坦率地说,也很枯燥。你可以从总结开始。
我喜欢Gensim并且经常使用它。
from gensim.summarization.summarizer import summarize from gensim.summarization import keywords
我们通过读取一个Word文件创建了变量'RESUME_TEXT'。让我们对简历和职位发布做一个总结。
print(summarize(text_resume, ratio=0.2))
Summarizer.summarizer.summary将为您创建一个简洁的摘要。
summarize(jobContent, ratio=0.2)
现在你可以阅读工作角色和你现有简历的总体摘要了!您是否遗漏了摘要中突出显示的工作角色?细致入微的小细节可以帮助你推销自己。你的总结文件是否有意义,并显示出你的基本素质?
也许仅仅一个简明的总结是不够的。接下来,让我们来衡量一下你的简历和工作说明书有多相似。图2提供了代码。
广义地说,我们创建一个文本对象列表,然后创建一个sklearn CountVectorizer()类的实例。我们还引入了cosine_similarity度量,它帮助我们度量两个文档的相似性。'您的简历符合工作描述的69.44%'。听起来很棒,但我不会得意忘形。现在您可以阅读文档的摘要并获得相似度度量。几率在提高。
接下来,我们可以看看职位描述关键词,看看简历中哪些是匹配的。我们是否错过了几个关键字,可以加强匹配接近100%?现在去斯帕西。到目前为止,这是一段相当长的旅程。Gensim,sklearn,现在是Spacy!我希望你没有头晕!
from spacy.matcher import PhraseMatcher matcher = PhraseMatcher(Spnlp.vocab) from collections import Counter from gensim.summarization import keywords
我们将使用spacy的PhraseMatcher特性来匹配工作描述和简历中的关键短语。Gensim关键字可以帮助提供匹配的短语。图3显示了如何运行匹配。
使用图3中的代码片段提供了一个匹配的关键字列表。图4显示了总结这些关键字匹配的方法。使用集合中的计数器字典。
“报告”一词包含在工作描述中,简历有3个点击量。哪些短语或关键字在招聘启事中,而不在简历中?我们能再加点吗?我使用Pandas来回答这个问题-您可以看到图5中的输出。
如果这是真的,那也很奇怪。文档级别的匹配率为69.44%,但看看简历上没有提到的一长串关键词。图6显示了所提到的关键字。
在现实中,与工作规范匹配的关键字很少,这导致我对69.44%的余弦相似度度量持怀疑态度。尽管如此,这种可能性还是在提高,因为我们可以在简历中看到职位说明书中没有的关键词。更少的关键字匹配意味着你更有可能被淘汰。查看缺失的关键字,你可以继续,加强简历,并重新运行分析。不过,只是在简历中加入关键词会有负面影响,你必须非常小心你的艺术。你可能通过了最初的自动筛选,但你会因为缺乏写作技能而被淘汰。我们确实需要对短语进行排名,并专注于工作规范中的基本主题或词汇。
接下来让我们看看排名短语。对于这个练习,我将使用我自己的NLP类和一些我以前使用过的方法。
from nlp import nlp as nlp LangProcessor = nlp() keywordsJob = LangProcessor.keywords(jobContent) keywordsCV = LangProcessor.keywords(cvContent)
使用我自己的类,我从前面创建的job和Resume对象中恢复了排序短语。下面的代码片段为您提供了方法定义。我们现在使用rake模块来提取ranked_prasses和分数。
def keywords(self, text):
keyword = {}
self.rake.extract_keywords_from_text(text)
keyword['ranked phrases'] = self.rake.get_ranked_phrases_with_scores()
return keyword
图7提供了方法调用输出的说明。
“项目管理方法-项目管理”排在第31.2位,所以这是招聘中最关键的话题。简历中的关键短语也可以稍加改动就打印出来。
for item in keywordsCV['ranked phrases'][:10]: print (str(round(item[0],2)) + ' - ' + item[1] )
阅读简历和招聘启事中最重要的短语,我们可以问自己是否有匹配或相似的程度?我们当然可以运行一个序列来找出答案!下面的代码在职务公告和简历中的排名短语之间创建交叉引用。
sims = []
phrases = []
for key in keywordsJob['ranked phrases']:
rec={}
rec['importance'] = key[0]
texts = key[1] sims=[]
avg_sim=0
for cvkey in keywordsCV['ranked phrases']:
cvtext = cvkey[1]
sims.append(fuzz.ratio(texts, cvtext))
#sims.append(lev.ratio(texts.lower(),cvtext.lower()))
#sims.append(jaccard_similarity(texts,cvtext)) count=0
for s in sims:
count=count+s
avg_sim = count/len(sims)
rec['similarity'] = avg_sim
rec['text'] = texts
phrases.append(rec)
注意,我们使用fuzzy-wuzzy作为匹配引擎。代码还有一个Levenshtein比率和JACCARD_SIMAGILE函数。图8展示了这可能是什么样子。
“重要性”变量是简历中的短语得分。“相似性”变量是Fuzzy-Wuzzy的比值得分。“项目管理方法”一词排在31.2位,但交叉引用被评分的简历短语平均得分仅为22.5位。虽然项目管理是这份工作的首要任务,但简历在不同的技术项目上得分更明显。通过执行类似的练习,您可以看到AI是如何对抗应用程序的。
图9显示了另一个视角。使用标记(单词)显示每个单词在工作描述中的重要性,而不是在简历中的点击量--文档中某个特定单词出现的次数越多,影响就越大。财务这个词在职位描述中的重要性不高,但在简历中的影响力很大。这是一个财务人员在找IT工作吗?文字可以出卖你与AI!
我敢肯定你现在已经拿到那张照片了。使用NLP工具和库可以帮助真正理解一个工作描述和衡量相对匹配。这当然不是强健或福音,但它确实倾向于甚至几率。你的话很重要,但你不能在简历中胡乱添加关键词。你真的得写一份强有力的简历,申请适合你的角色。文本处理和文本挖掘是一个很大的课题,我们只触及到可以做什么的表面。我发现文本挖掘和基于文本的机器学习模型非常准确。让我们看看使用牛郎星的一些视觉效果,然后总结。
我最近经常使用牵牛星,所以Seaborn或Matplotlib更多。牵牛星中的语法正好能让我听懂。我做了三个视觉效果来帮助讨论--图10显示了关键字在简历中的重要性和影响力。使用颜色比例,我们可以看到像收养这样的词在简历中出现了两次,但在招聘公告中的优先级较低。
图11显示了在招聘公告和简历中找到的排序主题的交叉引用。最重要的短语是“项目管理…”,但它在简历中的排名中得分较低。
图12描绘了类似的词。财务在简历上被用了10次,但在招聘启事上却只字不提。项目一词会在简历中提到,也会出现在招聘公告中。
看着图表,在我看来简历和工作描述似乎不太匹配。很少的共享关键词和排名短语看起来很不一样。这就是让你的简历被杂草洗掉的原因!
阅读这篇文章可能更像是一部大预算的“拍摄他们死的CGI好莱坞”电影。所有的大牌演员一般都出现在那些大片中。大型NLP库在本文中扮演了主要角色,我们甚至还客串了更多的名字,也许是更老、更成熟的名字,比如NLTK。我们使用了Gensim、Spacy、sklearn等库,并演示了它们的用法。我自己的类客串了一次,包装了NLTK、rake、textblob和一堆其他模块,所有这些都展示了对文本分析的见解,向您展示了如何与获得梦想工作的机会分开。
想要找到理想的工作,需要清晰而不懈地关注细节,仔细准备工作申请、简历和求职信。使用自然语言处理不会把你变成最好的候选人。那取决于你!但它可以提高你击败AI驱动的早期回合的机会。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
CDA数据分析师 出品 作者:李诗怡 STP模型(营销战略三步法) 定义: 现代营销战略核心框架,通过市场细分(S)、目标市场选择( ...
2026-09-18在互联网产品迭代、运营优化、界面改版与策略升级过程中,主观经验判断容易造成决策偏差、盲目改版、资源浪费等问题。AB实验(AB ...
2026-09-18 很多企业并不缺少指标,缺少的是让指标“串起来、动起来、用起来”的体系。零散指标像散落一地的珠子,指标体系则是那根把珠 ...
2026-09-18在电商行业精细化运营时代,流量红利逐步消退,粗放式投流、广撒网营销模式已无法适配市场竞争需求。依托用户点击、加购、收藏、 ...
2026-09-17在数据可视化与数据分析工作中,图表是将零散数据转化为直观业务规律的核心工具。不同图表拥有专属的数据逻辑与分析维度,能够从 ...
2026-09-17 很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“哪些指标在所有行业都适用”“哪些指标只对电商有意义”“二者如何搭 ...
2026-09-17在企业数字化运营、业务流程管理与精细化管控体系中,流程运营是串联各项业务环节、保障工作落地、提升运转效率的核心载体。无论 ...
2026-09-16在数据分析与统计学研究中,卡方检验是分析分类变量关联性与差异性的重要方法,广泛应用于市场调研、行为统计、社会调查、商业数 ...
2026-09-16 很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“什么是指标”“指标和维度有什么区别”“如何定义指标值的计算规则和 ...
2026-09-16CDA数据分析师 出品 作者:李诗怡 定义: 用户增长核心分析框架,刻画用户从接触产品到自发推荐的全生命周期,五个递进环节构建 ...
2026-09-15在数字化营销与精细化用户运营时代,企业传统的广撒网式营销模式成本高、转化率低,已无法适配精准商业竞争需求。客户画像作为大 ...
2026-09-15 很多数据分析师精通描述性统计,能熟练计算均值、中位数、标准差,但当被问到“用500个样本如何推断10万用户的真实满意度” ...
2026-09-15在MySQL数据库数据查询与数据分析中,GROUP BY与ORDER BY是使用频率极高的核心关键字。二者语法结构相似,常搭配使用,但核心功 ...
2026-09-14随着数字化治理、智慧运营、数字孪生技术的普及,数字体征成为衡量业务状态、系统运行、城市治理与企业经营健康度的核心体系。数 ...
2026-09-14 很多数据分析师沉迷于复杂的模型和算法,却忽略了数据分析的一项基础能力——描述性统计。事实上,大量商业分析问题,用描述 ...
2026-09-14在MySQL数据库运维与开发实践中,经常出现一种典型现象:数据库实际存储的数据量很小,数据表条数少、文件体积低,但服务器整体 ...
2026-09-11 很多数据分析师能熟练计算均值、标准差,但当被问到“总体和样本有什么区别”“参数和统计量有什么关系”“数据级别的高低如 ...
2026-09-11CDA数据分析师 出品 作者:李诗怡 定义: 将同一时间段内因具备相同属性或共同经历的用户划分为群体,分析其留存与生命周期价值 ...
2026-09-11在零售、商超、餐饮、线下门店等实体商业运营中,客流与销售额是衡量门店经营状态的两大核心指标。销售额是门店经营的最终结果, ...
2026-09-10在数据可视化体系中,柱形图是最基础、应用最广泛的图表类型,其中**累计柱形图(堆积柱状图)**是兼顾整体总量与内部结构的核心 ...
2026-09-10