新增字段

This commit is contained in:
Àî×ÚÕñ 2022-08-22 09:47:34 +08:00
parent e3bcd6b7bc
commit 232c7e850d
3 changed files with 257 additions and 9 deletions

View File

@ -419,19 +419,62 @@ async def interview_file_insert(
if len(true_d_list) == 2:
chk_list = deepcopy(true_d_list)
chkdict[chk_list[0]] = chk_list[1]
true_dict = deepcopy(chkdict)
dp_dict = {
'time': '',
'name': '',
'work': '',
'comment': '',
'duty': '',
}
true_dict = deepcopy(dp_dict)
for key, v in chkdict.items():
if key == '项目名称':
true_dict['name'] = v
continue
if key == '开发周期':
true_dict['time'] = v
continue
if key == '项目描述':
true_dict['comment'] = v
continue
if key in ['技术要点', '功能模块']:
true_dict['work'] += v
continue
if key == '职务':
true_dict['duty'] = v
continue
# true_dict = deepcopy(chkdict)
true_upgrade.append(true_dict)
work_list = data['work_list']
language = data['language']
remembrance = data['remembrance']
true_work = []
language_list = []
remembrance_list = []
if work_list:
for dstr in work_list:
data1 = eval(dstr)
dictdata = deepcopy(data1)
true_work.append(dictdata)
if language:
for dstr in work_list:
data1 = eval(dstr)
dictdata = deepcopy(data1)
language_list.append(dictdata)
if remembrance:
for dstr in work_list:
data1 = eval(dstr)
dictdata = deepcopy(data1)
remembrance_list.append(dictdata)
res_data = {
'data': data,
'project_undergo': true_upgrade,
'work_list': true_work
'work_list': true_work,
'language_list': language_list,
'remembrance_list': remembrance_list
}
return schemas.Msg(code=200, msg='ok', data=res_data)
else:

View File

@ -112,7 +112,10 @@ class InterviewDo:
"notice_state": 1,
"pass_why": 0,
"pass_text": [],
"file_url": '',
"language": [],
"remembrance": [],
"birthday": '',
"file_url": ''
}
insert_data = []
@ -127,7 +130,7 @@ class InterviewDo:
f" education, work_undergo, project_undergo, work_list, school, at_school, specialty, specialty_do, " \
f"mmended_state, mail, account, id_card, gender, age, gam, interview_state, counts, nation, come_time," \
f" review, upgrade, now_money, men_state, teacher_state, teacher_back, offer_state, offer_exam_state," \
f" notice_state, pass_why, pass_text, file_url) values"
f" notice_state, pass_why, pass_text,language,remembrance,birthday, file_url) values"
now_time = datetime.datetime.now()
for data in insert_data:
s1 = data['event_time']

View File

@ -103,9 +103,121 @@ def chkworlkandtime(listdata):
ress = []
if res != {}:
for i in range(len(res['公司名'])):
company_name = ''
position_name = ''
duty = ''
if '公司名' in res:
company_name = res['公司名'][i]['text']
if '职责' in res:
position_name = res['职责'][i]['text']
if '工作内容' in res:
duty = res['工作内容'][i]['text']
date = {
'name': res['公司名'][i]['text'],
'time': res['时间'][i]['text']
'company_name ': company_name,
'position_name': position_name,
'duty': duty
}
ress.append(str(date))
return ress
def chkworlkandtime1(listdata):
"""
获取语言能力中语言类型和掌握程度,听说,读写
:param dictdata:
:return:返回列表格式
"""
res = {}
for i in listdata:
for key, datalist in i.items():
trueDict = {}
for data in datalist:
if data['text'] in trueDict:
if data['probability'] <= trueDict[data['text']]['probability']:
continue
trueDict.update({
data['text']: {
'end': data['end'],
'probability': data['probability'],
'start': data['start'],
}
})
trueList = []
for key1, value1 in trueDict.items():
value1.update({
'text': key1
})
trueDict1 = copy.deepcopy(value1)
trueList.append(trueDict1)
trueList.sort(key=lambda item: item['start'])
res.update({key: trueList})
ress = []
if res != {}:
for i in range(len(res['语言'])):
language_name = ''
has_sleep = ''
reading = ''
writing = ''
if '语言' in res:
language_name = res['语言'][i]['text']
if '掌握程度' in res:
has_sleep = res['掌握程度'][i]['text']
if '听说' in res:
reading = res['听说'][i]['text']
if '读写' in res:
writing = res['读写'][i]['text']
date = {
'language_name ': language_name,
'has_sleep ': has_sleep,
'reading': reading,
'writing': writing
}
ress.append(str(date))
return ress
def chkworlkandtime2(listdata):
"""
获取获奖经历中奖项名称和获奖时间
:param dictdata:
:return:返回列表格式
"""
res = {}
for i in listdata:
for key, datalist in i.items():
trueDict = {}
for data in datalist:
if data['text'] in trueDict:
if data['probability'] <= trueDict[data['text']]['probability']:
continue
trueDict.update({
data['text']: {
'end': data['end'],
'probability': data['probability'],
'start': data['start'],
}
})
trueList = []
for key1, value1 in trueDict.items():
value1.update({
'text': key1
})
trueDict1 = copy.deepcopy(value1)
trueList.append(trueDict1)
trueList.sort(key=lambda item: item['start'])
res.update({key: trueList})
ress = []
if res != {}:
for i in range(len(res['奖项名'])):
prize_name = ''
prize_time = ''
if '奖项名' in res:
prize_name = res['公司名'][i]['text']
if '时间' in res:
prize_time = res['时间'][i]['text']
date = {
'prize_name ': prize_name,
'prize_time': prize_time,
}
ress.append(str(date))
return ress
@ -224,6 +336,16 @@ def get_date(schema, dates, schema_dict):
clash(date, 'phone', 'tels')
work_exp = date['work_exp']
if not work_exp:
date['work_exp'] = 0
# 工作经验float转化
if work_exp and isinstance(work_exp, str):
true_work_exp = re.search(r"\d+\.?\d*", work_exp)
if len(true_work_exp.group()) > 3:
work_exp = 0
else:
work_exp = float(true_work_exp.group())
if 1 <= work_exp < 3:
date['work_exp'] = 1
if 3 <= work_exp < 5:
@ -236,7 +358,7 @@ def get_date(schema, dates, schema_dict):
def fmtTxt(txt, istable=0):
# 所有关键字
chkStr = ['自我评价', '自我描述', '个人优势', '项目经历', '项目经验', '项目描述', '教育经历', '学习经历', '工作经历', '工作经验', '实习经历',
'技能特长', '技能', '特长', '专长', '技能专长', '专业技能', '职业技能', '个人评价']
'技能特长', '技能', '特长', '专长', '技能专长', '专业技能', '职业技能', '个人评价', '语言', '获奖', '证书', '获奖记录', '获奖经历']
# 自我描述
chkList1 = ['自我评价', '自我描述', '个人优势', '个人评价']
# 项目经验
@ -247,6 +369,10 @@ def fmtTxt(txt, istable=0):
chkList4 = ['工作经历', '工作经验', '实习经历']
# 个人技能
chkList5 = ['技能特长', '技能', '特长', '专长', '技能专长', '专业技能', '职业技能']
# 语言能力
chkList6 = ['语言']
# 获奖经历
chkList7 = ['获奖', '证书', '获奖记录', '获奖经历']
fmtList = [] # 返回拼接好的字符串列表
trueIndex = 0
fmtStr = ''
@ -309,11 +435,37 @@ def fmtTxt(txt, istable=0):
continue
# 个人技能
for i in chkList5:
# 判断是不是以关键字开头
if not text.startswith(i, 0):
continue
else:
if i in text:
fmtStr = text
nowChkList = [chk for chk in chkStr if chk not in chkList5]
stop_int = 1
break
if fmtStr:
continue
# 语言能力
for i in chkList6:
# 判断是不是以关键字开头
if not text.startswith(i, 0):
continue
else:
if i in text:
fmtStr = text
nowChkList = [chk for chk in chkStr if chk not in chkList6]
stop_int = 1
break
if fmtStr:
continue
# 获奖经历
for i in chkList7:
if i in text:
fmtStr = text
nowChkList = [chk for chk in chkStr if chk not in chkList7]
stop_int = 1
break
continue
else:
isTure = 1
@ -349,6 +501,8 @@ def fmtList(txtlist, dates):
chkList3 = ['教育经历', '学习经历']
chkList4 = ['工作经历', '工作经验', '实习经历']
chkList5 = ['技能特长', '技能', '特长', '专长', '技能专长', '专业技能', '职业技能']
chkList6 = ['语言']
chkList7 = ['获奖', '证书', '获奖记录', '获奖经历']
# 自我评价
review = []
# 项目经验
@ -359,6 +513,10 @@ def fmtList(txtlist, dates):
upgrade = []
# 技能特长
specialty = []
# 语言能力
language = []
# 获奖经历
remembrance = []
for text in txtlist:
ischk = 0
# 自我评价
@ -401,16 +559,58 @@ def fmtList(txtlist, dates):
break
if ischk:
continue
# 语言能力
for i in chkList6:
if i in text:
language.append(text)
ischk = 1
break
if ischk:
continue
# 获奖经历
for i in chkList7:
if i in text:
remembrance.append(text)
ischk = 1
break
if ischk:
continue
# 取出工作经验里面的公司名和时间
work_list = []
if len(work) > 0:
works = ''
for i in work:
works += i
schema = ['公司名', '时间']
schema = ['公司名', '职责', '工作内容']
ie = Taskflow('information_extraction', schema=schema)
text_lists = ie(works)
work_list = chkworlkandtime(text_lists)
else:
work_list = ["{'company_name ': '','position_name': '','duty': ''}"]
# 取出获奖经历里面的公司名和时间
remembrance_list = []
if len(remembrance) > 0:
remembrances = ''
for i in remembrance:
remembrances += i
schema = ['奖项名', '时间']
ie = Taskflow('information_extraction', schema=schema)
text_lists = ie(remembrances)
remembrance_list = chkworlkandtime2(text_lists)
else:
remembrance_list = ["{'prize_name ': '', 'prize_time': '', }"]
# 取出语言能力里面的语言,掌握程度,听说,读写
language_list = []
if len(language) > 0:
works = ''
for i in work:
works += i
schema = ['语言', '掌握程度', '听说', '读写']
ie = Taskflow('information_extraction', schema=schema)
text_lists = ie(works)
language_list = chkworlkandtime1(text_lists)
else:
language_list = ["{'language_name ': '', 'has_sleep ': '', 'reading': '', 'writing': ''}"]
# review自我评价, project项目经验work工作经验work具体工作的公司和时间upgrade教育经历specialty技能特长
dates.update({
'review': review,
@ -419,6 +619,8 @@ def fmtList(txtlist, dates):
'work_list': work_list,
'upgrade': upgrade,
'specialty_do': specialty,
'language': language_list,
'remembrance': remembrance_list,
})
return dates