使用 nltk 和结巴分词提取简历中的信息

____tz_zs

本文主要内容为,使用nltk和结巴分词将简历中的主要经历提取出来,以及查找关键的奖项和技能,并列出简历中出现频率最高的 10 个名词。

·

# -*- coding: utf-8 -*-
"""
@author: tz_zs

"""
import nltk
import jieba
import jieba.analyse
import jieba.posseg
import docx


# 导入自定义词典
jieba.load_userdict("dict.txt")
# 读取文件
file = docx.Document('./kk011.docx')  # 读取到的文件对象<docx.document.Document object at 0x00000234720BAF30>
# 用于保存文本
text = ''

# 用于保存关键技能
skill = ['四级', '六级', '特等奖学金', '一等奖学金', '三好学生', 'java', 'Python', 'tensorflow']  # 根据行业有所不同
my_skill = []

# 用于保存学习、实习、工作等经验
my_dict = {}
key = ''
for paragraph in file.paragraphs:
    # print(paragraph.text)
    # cut = jieba.lcut(paragraph.text)
    # print(cut)

    # 切
    posseg_cut = jieba.posseg.lcut(paragraph.text)
    # print(posseg_cut)

    # 获取大标题
    if len(posseg_cut) <= 4:
        key = posseg_cut[0].word

    # 找到时间段
    if posseg_cut[0].flag == 'm' and posseg_cut[1].flag == 'x' and posseg_cut[2].flag == 'm':
        # time = '' + posseg_cut[0].flag + posseg_cut[1].flag + posseg_cut[2].flag
        # print(time)
        if key in my_dict:
            # my_dict[key].append([time, paragraph.text.replace(time, '')])
            my_dict[key].append([paragraph.text.split()[0], paragraph.text.split()[1:]])
            # my_dict[key].append(paragraph.text)
        else:
            # my_dict[key] = [time, paragraph.text.replace(time, '')]
            my_dict[key] = [paragraph.text.split()[0], paragraph.text.split()[1:]]
            # my_dict[key] = [paragraph.text]

    # 关键技能和奖项
    for word in posseg_cut:
        if word.word in skill:
            my_skill.append(word.word)

    text += paragraph.text

for k, v in my_dict.items():
    print(k, ": ", v)
    '''
    所获奖励 :  ['2014.09', ['获首都大学、中专院校“先锋杯”优秀基层团干部北京市级荣誉称号'], ['2011-2014', ['获“新生三等奖学金”1次,获“工作三等奖学金”3次']], ['2012-2014', ['获“优秀学生干部”“优秀共青团干部”“优秀三好学生”“优秀共青团员”各1次']]]
    校园经历 :  ['2011.10–2014.10', ['人民大学文法学院学生会', '文艺部部长、主席'], ['2011.09-2013.10', ['人民大学生电视台', '主持部部长、副台长']]]
    实践实习 :  ['2014.06-10', ['中华人民共和国司法部', '办公厅文秘处'], ['2013.09-2014.01', ['大学生适应性新生小组工作', '项目督导']], ['2013.06-09', ['辽宁省辽阳市民政局', '调研员']]]
    教育背景 :  ['2011.9–2015.7', ['人民大学文法学院社会学专业']]
    '''

print('关键技能或奖项:', my_skill)
# 关键技能或奖项: ['六级', '三好学生']

'''
3.关键词提取
基于 TF-IDF 算法的关键词抽取
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
    sentence 为待提取的文本
    topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
    withWeight 为是否一并返回关键词权重值,默认值为 False
    allowPOS 仅包括指定词性的词,默认值为空,即不筛选
'''
tags = jieba.analyse.extract_tags(text, topK=10, allowPOS='n')
print(tags)
# ['学生会', '司法', '策划', '软件', '行政', '新生', '主持人', '文法', '奖学金', '项目']

 

·

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

·

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值