1. 程式人生 > >使用nltk和結巴分詞提取簡歷中的資訊

使用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)
# ['學生會', '司法', '策劃', '軟體', '行政', '新生', '主持人', '文法', '獎學金', '專案']

·







·