使用nltk和結巴分詞提取簡歷中的資訊
阿新 • • 發佈:2019-02-04
____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) # ['學生會', '司法', '策劃', '軟體', '行政', '新生', '主持人', '文法', '獎學金', '專案']
·
·