【问题标题】:Parsing the Skills Section in a Resume in Python在 Python 中解析简历中的技能部分
【发布时间】:2020-04-04 01:45:10
【问题描述】:

我正在尝试在 python 中解析简历的技能部分。我找到了 Omkar Pathak 先生的一个名为 pyresparser 的库,我能够将 PDF 简历的内容提取到 resume.txt 文件中。

但是,我想知道如何仅将简历中的技能部分提取到一个列表中,然后将该列表可能写入到 query.txt 文件中。

我正在将 resume.txt 的内容读入一个列表,然后将其与一个名为 Skills 的列表进行比较,该列表存储从 Skill.cv 文件中提取的内容。目前,技能列表是空的,我想知道如何将技能存储到该列表中?这是正确的方法吗?非常感谢任何帮助,谢谢!

import string
import csv
import re
import sys
import importlib
import os
import spacy
from pyresparser import ResumeParser
import pandas as pd
import nltk
from spacy.matcher import matcher
import multiprocessing as mp

def main():
    data = ResumeParser("C:/Users/infinitel88p/Downloads/resume.pdf").get_extracted_data()
    print(data)

    # Added encoding utf-8 to prevent unicode error
    with open("C:/Users/infinitel88p/Downloads/resume.txt", "w", encoding='utf-8') as rf:
        rf.truncate()
        rf.write(str(data))

    print("Resume results are getting printed into resume.txt.")

    # Extracting skills
    resume_list = []
    skill_list = []

    data = pd.read_csv("skills.csv")
    skills = list(data.columns.values)

    resume_file = os.path.dirname(__file__) + "/resume.txt"
    with open(resume_file, 'r',  encoding='utf-8') as f: 
        for line in f: 
            resume_list.append(line.strip())
            for token  in resume_list:
                if token.lower() in skills:
                    skill_list.append(token)
    print(skill_list)

if __name__ == "__main__":
    main()

【问题讨论】:

  • 好吧,我注意到了几件事,你正在打开“/resume.txt”中的文件,这表明该文件位于硬盘驱动器的根文件夹中,然后阅读它查看同一个文件夹作为你的python文件,这很奇怪且不一致。此外,您正在阅读简历文件中的每一行“skills.csv”,这似乎是一个缩进问题。
  • 感谢您对代码的“skills.csv”部分的评论!我编辑了我的帖子以反映这一变化。但是,我想知道您的意思是“阅读它时查看与您的 python 文件相同的文件夹”。我对python相当陌生,所以只是为了澄清我上面的代码,我试图将“resume.txt”中提取的简历内容读入我的resume_list。然后,我将 resume_list 中的标记与“skills.csv”中的技能进行比较。然后将匹配“skills.csv”的技能存储到技能列表中。
  • / 开头的路径是绝对路径,因此open("/resume.txt", "w") 将尝试在文件系统的根目录下创建一个文件,然后您执行`os.path.dirname(文件) + "/resume.txt"` 正在抓取当前文件夹并在该文件夹中抓取resume.txt。我希望这会抛出一个错误,说“resume.txt”不存在,因为您是从不同的地方加载的,除非您的 python 脚本也在文件系统的根目录中,在这种情况下 os.path.dirname(__file__) 将是一个空字符串,这只会给我带来混乱。
  • 最后一件事通常是为代码中的各种变量添加打印语句,并找出代码出错的地方。特别是您说您正在浏览简历中的每个“令牌”,但您的循环看起来像是您正在浏览文件中的每个 line ,所以您的 token 变量可能是几个单词并且您想要是不是更分裂了?
  • 好的,我明白了我可能不小心给您造成的混乱,所以我再次编辑了文件路径。我肯定会尝试更多地拆分令牌,所以再次感谢您!

标签: python python-3.x parsing


【解决方案1】:

一种简单的方法(但不是一种有效的方法):

在一个文本文件中拥有一组所有可能的相关技能。对于简历中技能部分的单词或简历中的所有单词,取出每个单词并检查它是否与文本文件中的任何单词匹配。如果一个词匹配,那么该技能就会出现在简历中。这样,您可以确定简历中存在的一组技能。

为了进一步添加或更好地识别,您可以使用朴素贝叶斯分类或一元概率来提取更多相关技能。

【讨论】:

    猜你喜欢
    • 2011-10-18
    • 2020-05-28
    • 1970-01-01
    • 2021-12-21
    • 2020-11-27
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多