Переглянути джерело

modified: resume_parse.py

sprivacy 3 роки тому
батько
коміт
647367412d
1 змінених файлів з 25 додано та 25 видалено
  1. 25 25
      tools/resume_parse.py

+ 25 - 25
tools/resume_parse.py

@@ -7,7 +7,7 @@ import subprocess
 from pprint import pprint
 
 import logging
-logging.basicConfig(format='%(asctime)s: %(name)s: %(levelname)s: %(filename)s: %(funcName)s: %(message)s', level=logging.INFO)
+logging.basicConfig(format='%(asctime)s: %(name)s: %(levelname)s: %(filename)s: %(funcName)s: %(lineno)d: %(message)s', level=logging.INFO)
 
 import pandas as pd
 from docx import Document
@@ -58,7 +58,7 @@ block_rev = {1:"基本信息", 2:"求职意向", 3:"教育经历", 4:"工作经
 
 # 基本信息(已完成)
 def get_base_info(lines):
-    logging.debug(lines)
+    logging.info(lines)
     schema = {
         '姓名': None,
     }
@@ -103,7 +103,7 @@ def get_base_info(lines):
 
 # 求职意向(已完成)
 def get_job_intention(lines):
-    logging.debug(lines)
+    logging.info(lines)
     schema = {}
     for line in lines:
         regex = re.compile(r'\W{0,3}[::]\s+')
@@ -121,7 +121,7 @@ def get_job_intention(lines):
 # 教育经历 (已停用)
 # ner + 分词 (判断学校,时间,学历)  专业需要单独处理。
 def get_edu_list_old(lines):
-    logging.debug(lines)
+    logging.info(lines)
 
     job_list = []
     job_dict = {'edu_time_beg':'', 'edu_time_end':'', 'edu_name':'','edu_leval':'','edu_domain':'', 'edu_statue':0}
@@ -179,8 +179,8 @@ def get_edu_list_old(lines):
         top_level = 18
         remove_list = []
 
-        logging.debug(_list_data)
-        logging.debug(time_list)
+        logging.info(_list_data)
+        logging.info(time_list)
 
         for ii in range(len(_list_data)):
             for t in time_list:
@@ -201,7 +201,7 @@ def get_edu_list_old(lines):
             break
             #remove_list.append(i)
 
-        logging.debug(_list_data)
+        logging.info(_list_data)
 
         job_time = re.findall(re_txt_1, data_list[0])
         if job_time:
@@ -340,7 +340,7 @@ def get_edu_list_old(lines):
 
 # 教育经历改 (已完成)
 def get_edu_list(lines):
-    logging.debug(lines)
+    logging.info(lines)
 
     edu_list = [{"Time":None, "startTime":None, "endTime":None, "edu_name":None, "edu_domain":None, "edu_level":None}]
     regex_time = re.compile(r'((\d{4})[年\W]{1,2}(\d{1,2})[月\W]?[\d]{0,2})[至到\W]+((\d{4})[年\W]{1,2}(\d{1,2})[月\W]?)?([今])?|(\d{4})[至\W]+([\d今]{4})')
@@ -426,7 +426,7 @@ def get_edu_list(lines):
 # 其中,时间是判断是否下一份工作情况的主要标识符之一。字符数量
 # 时间类 数量词
 def get_job_list(lines):
-    logging.debug(lines)
+    logging.info(lines)
 
     job_list = []
     re_txt = '\d{4,4}\040{0,2}.\d+\040{0,2}.?\040{0,2}[\-–至-\—~]{1,2}\040{0,2}\d{4,4}\040{0,2}.\040{0,2}\d+.?|\d{4,4}.\d+.?\040{0,2}[\-–-—]{0,2}\040{0,2}至?今|\d{4,4}.\d+.?\040{0,2}[\-–-]{1,2}\040{0,2}现在|\d{4,4}年\d+月\-\d{4,4}年\d+月|\d{4,4}年\d+月\-\~|\d{4,4}年\d+月[\-\~-]至今|\d{4,4}-\d+\040{0,2}[-\~至]\040{0,2}\d{4,4}-\d+|\d{4,4}-\d+\~|\d{4,4}-\d+\[~-]至今|\d{4,4}-\d+\040{0,2}至今'
@@ -450,8 +450,8 @@ def get_job_list(lines):
         elif len(year_list) == 1 and '至今' in lines[i]:
             nums.append(i)
     nums.append(len(lines))
-    # logging.debug(nums)
-    logging.debug('get_job_list :{}'.format(nums))
+    # logging.info(nums)
+    logging.info('get_job_list :{}'.format(nums))
     for i in range(1, len(nums[:])):
         job_dict = {'job_time':'', 'job_leval':'','job_company':'','job_content':''}
         data_list = lines[nums[i-1]:nums[i]]
@@ -609,7 +609,7 @@ def get_job_list(lines):
 # 项目经历 (已完成)
 # 项目名称未知
 def get_pro_list(lines):
-    logging.debug(lines)
+    logging.info(lines)
 
     pro_list = [{"Time":None,"startTime":None,"endTime":None,"pro_name":None,"job_leval":None,"job_company":None,"content":None,},]
     regex = re.compile(r'((\d{4})[年\W]+(\d{1,2})[\W]?[\w]?)[至到\W]+((\d{4})[年\W]+(\d{1,2})[\W]?[\w]?)?([今])?')
@@ -651,7 +651,7 @@ def get_pro_list(lines):
 # 培训经历 (已完成)
 # ner + 分词 (机构名) 培训项目  时间
 def get_cultivate_list(lines):
-    logging.debug(lines)
+    logging.info(lines)
 
     job_list = []
     re_txt = '\d{4,4}.\d{1,2}.?\040{0,2}[\-–至-\—~]\040{0,2}\d{4,4}.\d{1,2}[月]?|\d+\.\d+\-至今|\d+年\d+月\-\d+年\d+月|\d+年\d+月\-\~|\d+年\d+月[\-\~]至今|\d+-\d+\040{0,2}[\~至]\040{0,2}\d+-\d+|\d+-\d+\~|\d+-\d+\~至今|\d+-\d+\040{0,2}至今|^\d{4,4}.\d{1,2}|\d{4,4}.'
@@ -682,7 +682,7 @@ def get_cultivate_list(lines):
             elif _[1] == 'TIME' and len(_[1]) >= 4:
                 time_list.append(_[0])
             #TIME
-        logging.debug(data_line)
+        logging.info(data_line)
         _list_data = re.split('\040+', data_line)
         top_level = 22
         end_index = 0
@@ -744,7 +744,7 @@ def get_cultivate_list(lines):
         job_dict['cultivate_content'] = re.sub('培培训训内内容容::|培培训训内内容容::|培培训训内内容容', '培训内容:', ''.join(data_list[end_index:]))
         if not job_dict['cultivate_name']:
             job_dict['cultivate_name'] = org
-        logging.debug(job_dict)
+        logging.info(job_dict)
         job_list.append(job_dict)
         continue
     '''
@@ -779,7 +779,7 @@ def get_cultivate_list(lines):
 
 # 语言能力
 def get_lag_list(lines):
-    logging.debug(lines)
+    logging.info(lines)
 
     job_list = []
     re_lan = re.compile(r'(\w+[语话])')
@@ -821,7 +821,7 @@ def get_fam_list(lines):
 
 # 证书情况  时间+证书名称 (已完成)
 def get_cet_list(lines):
-    logging.debug(lines)
+    logging.info(lines)
 
     job_list = []
     re_txt = '\d+年\d+月|\d+-\d+|\d+\.\d+'
@@ -844,7 +844,7 @@ def get_cet_list(lines):
         else:
             continue
         ls = re.split('\||\040+|\t+', l)
-        logging.debug(ls)
+        logging.info(ls)
         for l in ls:
             if len(l) <= 3:
                 continue
@@ -856,7 +856,7 @@ def get_cet_list(lines):
 
 # 获奖情况  时间+获奖名称 (已完成)
 def get_prize_list(lines):
-    logging.debug(lines)
+    logging.info(lines)
 
     job_list = []
     re_txt = '\d+年\d+月|\d+-\d+|\d{4,4}.\d{1,2}'
@@ -878,13 +878,13 @@ def get_prize_list(lines):
         else:
             continue
         ls = re.split('\||\040+|\t+', l)
-        logging.debug(ls)
+        logging.info(ls)
         for l in ls:
             if len(l) <= 3:
                 continue
             cet_dict['prize_name'] = l.strip()
             break
-        logging.debug(cet_dict)
+        logging.info(cet_dict)
         job_list.append(cet_dict)
     return job_list
 
@@ -985,9 +985,9 @@ def check_word(path):
     tables = doc.tables
 
     if not tables:
-        logging.debug("this is raw text")
+        logging.info("this is raw text")
         read_from_word(doc)
-    logging.debug("this is a Table")
+    logging.info("this is a Table")
 
     prk = {"姓名":1, "性别":1, "出生年月":1, "民族":1, "籍贯":1, "户籍地":1, "政治面貌":1, "参加工作时间":1, "健康状况":1, "专业技术资格":1, "外语水平":9, "熟悉专业有何专长":8, "学历学位":1, "工作单位":1, "现任职务":1, "任职时间":1, "提职时间":1, "联系电话":1, "邮箱地址":1, "称谓":13, "工作单位及职务":1, "毕业时间、院校及专业":3,}
     block = {
@@ -1107,7 +1107,7 @@ def read_from_pdf(path):
         # 循环遍历列表,每次处理一个page的内容
         # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要获取文本就获得对象的text属性,
         for page in PDFPage.create_pages(doc):
-            logging.debug('================ 新页面 ================')
+            logging.info('================ 新页面 ================')
             interpreter.process_page(page)
             layout = device.get_result()
             r = parse_line_layout(layout)
@@ -1143,7 +1143,7 @@ def parse_table_from_pdf(path):
                             key = None
     for key in block.keys():
         if result.get(key):
-            logging.debug({key: result[key]})
+            logging.info({key: result[key]})
     console.print(result)
     # for key in result.keys():
     #     for index, func in zip([1, 2, 3, 4, 5, 10, 11, 12], [get_base_info, get_job_intention, get_edu_list, get_job_list, get_pro_list, get_cet_list, get_prize_list, get_cultivate_list]):