____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)
# ['学生会', '司法', '策划', '软件', '行政', '新生', '主持人', '文法', '奖学金', '项目']
·
·