搜索

介绍

当参加大型公司的工作面试或招聘雇用时,由于申请人的数量众多,详细审查每个简历通常​​是不切实际的。取而代之的是,利用简历数据提取以关注关键的工作要求与候选人的简历如何保持如何保持一致会导致雇主和候选人的成功匹配。

想象一下您的个人资料标签检查 - 无需担心!现在很容易评估您的职位适合度并确定相对于工作要求的资格中的任何差距。

例如,如果一项职位发布在项目管理方面的重点经验和特定软件的熟练程度,则候选人应确保在其简历上可以清楚地看到这些技能。这种有针对性的方法有助于雇用经理快速确定合格的申请人,并确保将候选人视为可以壮成长的职位。

通过强调最相关的资格,招聘过程变得更加有效,双方都可以从良好的合适中受益。该公司更快地发现合适的人才,候选人更有可能扮演与他们的技能和经验相匹配的角色。

学习成果

  • 了解从简历中提取数据对自动化和分析的重要性。
  • 熟练使用Python库从各种文件格式提取文本。
  • 了解如何预处理图像以增强文本提取精度。
  • 探索用于处理案例灵敏度和提取文本中的标记的技术。
  • 确定有效CV数据提取必不可少的关键工具和库。
  • 开发从图像和PDF文件中提取文本的实用技能。
  • 认识CV数据提取和有效解决方案所涉及的挑战。

本文作为数据科学博客马拉松的一部分发表

目录

  • 简历数据提取的基本工具
    • Python
    • 图书馆:NLTK和Spacy
    • Pytesseract
    • 枕头库
    • 图像或PDF文件
    • pdfumber或pypdf2
  • 从PDF文件或图像中获取单词
    • 安装Pytesseract OCR机器。
    • 安装图书馆枕头
    • 安装用于令牌化(或spacy)的安装
    • 下载Tesseract并配置路径
  • 图像和PDF文本提取技术
    • 预处理图像以增强OCR性能
    • 从PDF文件中获取文字
    • 从pdfplumber提取文本
    • 标准令牌以保持一致性
    • 常见问题

    简历数据提取的基本工具

    为了有效地从简历和简历中提取数据,利用正确的工具对于简化过程并确保准确性至关重要。本节将重点介绍提高简历数据提取效率的关键库和技术,从而获得更好的分析和候选概况的见解。

    Python

    它具有可以将句子或段落分为单词的库或方法。在Python中,您可以使用不同的库和方法(例如Split()(基本令牌)或自然语言工具包(NLTK)和Spacy库来实现单词令牌化,以进行更高级的代币化。

    简单的令牌化(句子的拆分)无法识别标点符号和其他特殊字符。

    句子=“今天是美好的一天!”。
    句子.split()
    ['今天','is','a','美丽','day!。

    图书馆:NLTK和Spacy

    Python具有更强大的令牌化工具(自然语言工具包(NLTK)。

    在NLTK(自然语言工具包)中,Punkt Tokenizer通过使用预先训练的模型进行无监督的句子分裂和单词令牌化来积极地将文本引起。

    导入NLTK
    nltk.download('punkt')
    来自nltk import word_tokenize
    
    句子=“今天是美好的一天!”。
    句子.split()
    打印(句子)
    单词= word_tokenize(句子)
    打印(单词)
    
    [nltk_data]下载pakept punkt到
    [nltk_data] C:\ Users \ ss529 \ appdata \ roaming \ nltk_data ...
    今天是美好的一天!
    ['今天','is','a',''','day','!','。]
    [nltk_data]软件包punkt已经是最新的!

    Punkt的主要特征:

    • 它可以将给定的文本归为句子和单词,而无需任何有关语言的语法或语法的事先信息。
    • 它使用机器学习模型来检测句子边界,这在标点符号不严格分开句子的语言中很有用。

    Spacy是高级NLP库,可提供准确的令牌化和其他语言处理功能。

    正则表达式:基于模式的自定义令牌化,但需要手动集。

    导入
    常规=“ [a-za-z] [\ w]?”
    re.findall(常规,句子)
    ['今天','is','a','美丽','day!']

    Pytesseract

    这是一个基于Python的光学字符识别工具,用于读取图像中的文本。

    枕头库

    一个用于处理各种图像格式的开源库,可用于图像操作。

    图像或PDF文件

    简历可以采用PDF或图像格式。

    pdfumber或pypdf2

    要从pdf提取文本并将其化为单词,您可以在Python中按照以下步骤:

    • 使用PYPDF2或PDFPLUMBER等库从PDF提取文本。
    • 使用任何令牌化方法,例如split(),nltk或spacy,将提取的文本进行象征化。

    从PDF文件或图像中获取单词

    对于PDF文件,我们将需要PDF水管工和图像OCR。

    如果您想从图像中提取文本(而不是PDF),然后根据不同字段的预定义单词进行令牌和评分,则可以通过以下步骤来实现这一目标:

    安装Pytesseract OCR机器。

    它将从图像中提取文本

    PIP安装Pytesseract枕头NLTK

    安装图书馆枕头

    它将有助于处理各种图像。

    当涉及到Python中的图像处理和操纵(例如调整,裁剪或在不同格式之间进行转换)时,通常会想到的开源库是枕头。

    让我们看看枕头的工作原理,要查看jupyter笔记本中的图像,我必须使用显示器,内部括号内必须存储持有图像的变量。

    从PIL导入图像
    image = image.open('art.jfif')
    显示(图像)

    简历数据提取

    要调整图像大小并保存图像,使用调整大小和保存的方法,将宽度设置为400,高度设置为450。

    简历数据提取

    枕头的主要特征:

    • 图像格式 - 支持不同格式
    • 图像操纵功能 - 可以调整大小,裁剪图像,将颜色图像转换为灰色等。

    安装用于令牌化(或spacy)的安装

    通过安装NLTK或SPACY(两个有力的自然语言处理中的令牌化库)来发现如何增强文本处理功能。

    下载Tesseract并配置路径

    了解如何从GitHub下载Tesseract,并通过添加优化OCR功能的必要路径将其无缝集成到脚本中。

     pytesseract.pytesseract.tesseract_cmd ='c:\ program文件\ tesseract-ocr \ tesseract.exe''''
    • macOS:酿造安装tesseract
    • Linux:通过软件包管理器安装(例如Sudo Apt install tesseract-ocr)。
    • PIP安装Pytesseract枕头

    其中有几种工具是Google开发的开源库Tesseract,它支持了许多语言和OCR。

    Pytesseract用于基于Python的项目,该项目是Tesseract OCR引擎的包装纸。

    图像和PDF文本提取技术

    在数字时代,从图像和PDF文件中提取文本对于各种应用程序至关重要,包括数据分析和文档处理。本文探讨了预处理图像并利用强大的库来增强光学特征识别(OCR)和简化各种文件格式的文本提取文本提取的有效技术。

    预处理图像以增强OCR性能

    预处理图像可以按照下面提到的步骤来改善OCR性能。

    • 灰度的图像:图像被转换为​​灰度,以减少嘈杂的背景,并坚定地关注文本本身,并且对于具有不同照明条件的图像很有用。
    • 来自pil Import ImageOps
    • 图像= imageOps.grayscale(图像)
    • 阈值:应用二进制阈值,通过将图像转换为黑白格式来使文本脱颖而出。
    • 调整大小:高档较小的图像以获得更好的文本识别。
    • 去除噪声:使用过滤器(例如,高斯模糊)去除图像中的噪声或伪影。
    导入NLTK
    导入pytesseract
    从PIL导入图像
    导入CV2
    
    来自nltk.tokenize导入word_tokenize
    
    nltk.download('punkt')
    pytesseract.pytesseract.tesseract_cmd = r'c:\ users \ ss529 \ anaconda3 \ tesseract-ocr \ tesseract.exe'
    image =输入(“文件的名称:”)
    imag = cv2.imread(图像)
     
    #convert到灰度图像
    灰色= cv2.cvtcolor(图像,cv2.color_bgr2gray)
     
    来自nltk.tokenize导入word_tokenize
    def text_from_image(图像):
        img = image.open(图像)
        text = pytesseract.image_to_string(img)
        返回文字
    图像='cv1.png'
    
    
    text1 = text_from_image(图像)
    
    #将提取的文本引起
    tokens = word_tokenize(text1)
    
    打印(令牌)

    简历数据提取

    要知道有多少个单词符合我们将比较的要求并为每个匹配的单词提供点数10。

     #将令牌与特定单词进行比较,忽略重复项并计算得分
    def compare_tokens_and_score(令牌,特定_words,corce_per_match = 10):
        match_words = set(word.lower(lower(),对于word.lower()in extile_words)
        total_score = len(fields_keywords) * score_per_match
        返回total_score
    
    #具有不同技能的领域
    fields_keywords = {
    
        “ data_science_carrier”:{'监督机器学习','无监督的机器学习','data','Analysis','statistics','python'},
            
    }
    
    #基于该领域的特定单词得分
    def process_image_for_field(图像,字段):
        如果字段不在字段_keywords中:
            print(f“ field'{field}'未定义。”)
            返回
    
        #从图像中提取文字
        text = text_from_image(图像)
        
        #将提取的文本引起
        tokens = tokenize_text(text)
        
        #将令牌与所选字段的特定单词进行比较
        特定_words = fields_keywords [field]
        total_score = compare_tokens_and_score(令牌,特定_words)
        打印(f“ field:{field}”)
        打印(“总分:”,total_score)
    
    
    图像='cv1.png' 
    field ='data_science_carrier'

    为了处理案例敏感性,例如“数据科学”与“数据科学”,我们可以将所有令牌和关键字转换为小写。

     tokens = word_tokenize(extract_text.lower())

    通过使用NLP库(例如NLTK或Stemming)使用Lemmatization,以减少单词(例如,“运行”到“运行”)

    来自NLTK.STEM导入WordNetlemmatizer
    
    lemmatizer = wordnetlemmatizer()
    
    def normalize_tokens(令牌):
        返回[lemmatizer.lemmatize(token.lower())代币中的令牌]
    

    从PDF文件中获取文字

    现在让我们探索从PDF文件中获取文本所需的操作。

    安装所需的库

    您将需要以下库:

    • PYPDF2
    • pdfumber
    • Spacy
    • NLTK

    使用PIP

     PIP安装pypdf2 pdfplumber nltk spacy
    python -m spacy下载en_core_web_sm

    用PYDF2提取文本

    导入PYPDF2
    
    def text_from_pdf(pdf_file):
        使用open(pdf_file,'rb')作为文件:
            读取器= pypdf2.pdfreader(file)
            文字=“”
            对于范围(len(reader.pages))的page_num:
                page = reader.pages [page_num]
                text = page.extract_text()“ \ n”
        返回文字

    从pdfplumber提取文本

    导入pdfumber
    
    def text_from_pdf(pdf_file):
        使用pdfplumber.open(pdf_file)作为pdf:
            文字=“”
            对于PDF中的页面:页面:
                text = page.extract_text()“ \ n”
        返回文字
    pdf_file ='soniasingla-dataSciencienciencienb-bio.pdf'
    
    #从PDF提取文本
    text = text_from_pdf(pdf_file)
    
    #将提取的文本引起
    tokens = word_tokenize(text)
    
    打印(令牌)

    标准令牌以保持一致性

    要处理PDF文件而不是图像,并确保重复的单词未接收多个分数,请修改上一个代码。我们将从pdf文件中提取文本,将其定为图形,并将令牌与来自不同字段的特定单词进行比较。代码将根据唯一匹配的单词来计算分数。

    导入pdfumber
    导入NLTK
    来自nltk.tokenize导入word_tokenize
    
    
    nltk.download('punkt')
    
    
    def extract_text_from_pdf(pdf_file):
        使用pdfplumber.open(pdf_file)作为pdf:
            文字=“”
            对于PDF中的页面:页面:
                text = page.extract_text()“ \ n”
        返回文字
    
    
    def tokenize_text(text):
        tokens = word_tokenize(text)
        返回令牌
    
    
    def compare_tokens_and_score(令牌,特定_words,corce_per_match = 10):
        #使用集合存储独特的匹配单词以防止重复
        unique_matched_words = set(word.lower(lower()for dokens中的单词if word.lower()在extile_words中)
        #根据唯一匹配计算总分
        total_score = len(unique_matched_words) * score_per_match
        返回unique_matched_words,total_score
    
    #定义不同字段的特定单词集
    fields_keywords = {
    
        “ data_science_carrier”:{'监督机器学习','无监督的机器学习','data','Analysis','statistics','python'},
            
        #在此处添加更多字段和关键字
    }
    
    #步骤4:选择字段并根据该字段的特定单词计算分数
    def process_pdf_for_field(pdf_file,字段):
        如果字段不在字段_keywords中:
            print(f“ field'{field}'未定义。”)
            返回
     
        text = extract_from_pdf(pdf_file)
          
        tokens = tokenize_text(text)  
        
        特定_words = fields_keywords [field]
        unique_matched_words,total_score = compare_tokens_and_score(令牌,特定_words)
          
        打印(f“ field:{field}”)
        打印(“唯一匹配的单词:”,unique_matched_words)
        打印(“总分:”,total_score)
    
    
    pdf_file ='soniasingla-dataSciencienciencienb-bio.pdf'  
    字段='data_science'  
    process_pdf_for_field(pdf_file,fie

    由于data_science字段未定义,它将产生错误消息。

    简历数据提取

    当删除错误时,它可以正常工作。

    简历数据提取

    要正确处理案例灵敏度,并确保诸如“数据”和“数据”之类的单词被认为是相同的单词,同时仍然只对其进行评分(即使多次出现在不同的情况下),您可以将令牌和特定单词的情况归一化。我们可以通过在比较期间将令牌和特定单词转换为小写,但仍可以保留原始套管,以确保匹配单词的最终输出的原始外壳。

    文本提取的要点

    • 使用pdfplumber从PDF文件中提取文本。
    • 使用OCR将图像转换为机器代码。
    • 使用Pytesseract将Python包裹代码转换为文本。

    结论

    我们探讨了从CVS提取和分析数据的关键过程,重点是使用Python进行自动化技术。我们学会了如何利用NLTK,Spacy,Pytesseract和枕头等必需库,以从包括PDF和图像在内的各种文件格式中提取有效的文本。通过应用代币化,文本标准化和评分方法,我们获得了如何有效地使候选人的资格与工作要求相结合的见解。这种系统的方法不仅简化了雇主的招聘过程,而且增强了候选人确保与他们技能相匹配的职位的机会。

    关键要点

    • 从简历中提取有效的数据对于自动化招聘过程至关重要。
    • NLTK,Spacy,Pytesseract和Pillow等工具对于文本提取和处理至关重要。
    • 正确的令牌化方法有助于准确分析简历的含量。
    • 基于关键字实施评分机制可以增强候选人和工作要求之间的匹配过程。
    • 通过诱饵等技术使代币标准化可提高文本分析的精度。

    常见问题

    Q1。如何从PDF中提取文本?

    A. pypdf2或pdfplumber库从pdf提取文本。

    Q2。如何以图像格式从简历中提取文本?

    答:如果CV处于图像格式(扫描文档或照片),则可以使用OCR(光学字符识别)从图像中提取文本。 Python中最常用的工具是Pytesseract,它是Tesseract OCR的包装纸。

    Q3。我如何处理OCR中质量差的图像?

    答:在将图像喂入OCR之前提高图像的质量可以显着提高文本提取精度。使用OpenCV等工具等工具,诸如灰度转换,阈值和降噪等技术可以帮助您。

    本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。

  • 以上是简历数据提取的详细内容。更多信息请关注PHP中文网其他相关文章!

    声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    微软工作趋势指数2025显示工作场所容量应变微软工作趋势指数2025显示工作场所容量应变Apr 24, 2025 am 11:19 AM

    由于AI的快速整合而加剧了工作场所的迅速危机危机,要求战略转变以外的增量调整。 WTI的调查结果强调了这一点:68%的员工在工作量上挣扎,导致BUR

    AI可以理解吗?中国房间的论点说不,但是对吗?AI可以理解吗?中国房间的论点说不,但是对吗?Apr 24, 2025 am 11:18 AM

    约翰·塞尔(John Searle)的中国房间论点:对AI理解的挑战 Searle的思想实验直接质疑人工智能是否可以真正理解语言或具有真正意识。 想象一个人,对下巴一无所知

    中国的'智能” AI助手回应微软召回的隐私缺陷中国的'智能” AI助手回应微软召回的隐私缺陷Apr 24, 2025 am 11:17 AM

    与西方同行相比,中国的科技巨头在AI开发方面的课程不同。 他们不专注于技术基准和API集成,而是优先考虑“屏幕感知” AI助手 - AI T

    Docker将熟悉的容器工作流程带到AI型号和MCP工具Docker将熟悉的容器工作流程带到AI型号和MCP工具Apr 24, 2025 am 11:16 AM

    MCP:赋能AI系统访问外部工具 模型上下文协议(MCP)让AI应用能够通过标准化接口与外部工具和数据源交互。由Anthropic开发并得到主要AI提供商的支持,MCP允许语言模型和智能体发现可用工具并使用合适的参数调用它们。然而,实施MCP服务器存在一些挑战,包括环境冲突、安全漏洞以及跨平台行为不一致。 Forbes文章《Anthropic的模型上下文协议是AI智能体发展的一大步》作者:Janakiram MSVDocker通过容器化解决了这些问题。基于Docker Hub基础设施构建的Doc

    使用6种AI街头智能策略来建立一家十亿美元的创业使用6种AI街头智能策略来建立一家十亿美元的创业Apr 24, 2025 am 11:15 AM

    有远见的企业家采用的六种策略,他们利用尖端技术和精明的商业敏锐度来创造高利润的可扩展公司,同时保持控制权。本指南是针对有抱负的企业家的,旨在建立一个

    Google照片更新解锁了您所有图片的惊人Ultra HDRGoogle照片更新解锁了您所有图片的惊人Ultra HDRApr 24, 2025 am 11:14 AM

    Google Photos的新型Ultra HDR工具:改变图像增强的游戏规则 Google Photos推出了一个功能强大的Ultra HDR转换工具,将标准照片转换为充满活力的高动态范围图像。这种增强功能受益于摄影师

    Descope建立AI代理集成的身份验证框架Descope建立AI代理集成的身份验证框架Apr 24, 2025 am 11:13 AM

    技术架构解决了新兴的身份验证挑战 代理身份集线器解决了许多组织仅在开始AI代理实施后发现的问题,即传统身份验证方法不是为机器设计的

    Google Cloud Next 2025以及现代工作的未来Google Cloud Next 2025以及现代工作的未来Apr 24, 2025 am 11:12 AM

    (注意:Google是我公司的咨询客户,Moor Insights&Strateging。) AI:从实验到企业基金会 Google Cloud Next 2025展示了AI从实验功能到企业技术的核心组成部分的演变,

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    热工具

    SecLists

    SecLists

    SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

    SublimeText3 Linux新版

    SublimeText3 Linux新版

    SublimeText3 Linux最新版

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    功能强大的PHP集成开发环境

    安全考试浏览器

    安全考试浏览器

    Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。