|
@@ -385,43 +385,43 @@ def split_by_topicno(con_list, subject, is_dati=0):
|
|
res = resplit(res)
|
|
res = resplit(res)
|
|
# pprint(res)
|
|
# pprint(res)
|
|
# 对最后一个题后面带个别答案(无答案页)
|
|
# 对最后一个题后面带个别答案(无答案页)
|
|
- if res:
|
|
|
|
- pattern1 = re.search('\n\s*([1-9]|[1-9][0-9])\s*[..、、]\s*(解\s*[::]|【解析|【答案)', res[-1]["stem"])
|
|
|
|
- if pattern1:
|
|
|
|
- breakp = pattern1.start()
|
|
|
|
- ans_str = res[-1]["stem"][breakp:]
|
|
|
|
- ans_no_info = pre_get_item_no(ans_str, item_no_type)
|
|
|
|
- ans_no, ans_no_idx = get_right_no(ans_no_info)
|
|
|
|
- all_ans = [del_no(ans_str[i:j]) for i, j in zip(ans_no_idx, ans_no_idx[1:] + [None])]
|
|
|
|
- res[-1]["stem"] = res[-1]["stem"][:breakp]
|
|
|
|
- res = get_ans_match(res, all_ans, ans_no)
|
|
|
|
- else:
|
|
|
|
- ans_str = res[-1]["stem"] + res[-1]["parse"]
|
|
|
|
- ans_no_info = pre_get_item_no(ans_str, item_no_type)
|
|
|
|
- ans_no, ans_no_idx = get_right_no(ans_no_info)
|
|
|
|
- if len(ans_no) == len(res):
|
|
|
|
- all_ans = [del_no(ans_str[i:j]) for i, j in zip(ans_no_idx, ans_no_idx[1:] + [None])]
|
|
|
|
- res[-1]["stem"] = res[-1]["stem"][:ans_no_idx[0]]
|
|
|
|
- res = get_ans_match(res, all_ans, ans_no)
|
|
|
|
- elif ans_no_idx:
|
|
|
|
- try:
|
|
|
|
- ans_no1, table_ans, st = get_table_ans(res[-1]["stem"][:ans_no_idx[0]], [], flag=1)
|
|
|
|
- if table_ans and 0 < ans_no[0] - ans_no1[-1] < 3:
|
|
|
|
- all_ans = table_ans
|
|
|
|
- all_ans.extend([del_no(ans_str[i:j]) for i, j in zip(ans_no_idx, ans_no_idx[1:] + [None])])
|
|
|
|
- new_ans_no = ans_no1
|
|
|
|
- new_ans_no.extend(ans_no)
|
|
|
|
- if st >= 0:
|
|
|
|
- res[-1]["stem"] = res[-1]["stem"][:st]
|
|
|
|
- else:
|
|
|
|
- res[-1]["stem"] = res[-1]["stem"][:ans_no_idx[0]]
|
|
|
|
- res = get_ans_match(res, all_ans, new_ans_no)
|
|
|
|
- except:
|
|
|
|
- if len(ans_no) > 4 and all([True if not one_res["key"] and not one_res["parse"]
|
|
|
|
- else False for one_res in res[:-1]]):
|
|
|
|
- all_ans = [del_no(ans_str[i:j]) for i, j in zip(ans_no_idx, ans_no_idx[1:] + [None])]
|
|
|
|
- res[-1]["stem"] = res[-1]["stem"][:ans_no_idx[0]]
|
|
|
|
- res = get_ans_match(res, all_ans, ans_no)
|
|
|
|
|
|
+ # if res:
|
|
|
|
+ # pattern1 = re.search('\n\s*([1-9]|[1-9][0-9])\s*[..、、]\s*(解\s*[::]|【解析|【答案)', res[-1]["stem"])
|
|
|
|
+ # if pattern1:
|
|
|
|
+ # breakp = pattern1.start()
|
|
|
|
+ # ans_str = res[-1]["stem"][breakp:]
|
|
|
|
+ # ans_no_info = pre_get_item_no(ans_str, item_no_type)
|
|
|
|
+ # ans_no, ans_no_idx = get_right_no(ans_no_info)
|
|
|
|
+ # all_ans = [del_no(ans_str[i:j]) for i, j in zip(ans_no_idx, ans_no_idx[1:] + [None])]
|
|
|
|
+ # res[-1]["stem"] = res[-1]["stem"][:breakp]
|
|
|
|
+ # res = get_ans_match(res, all_ans, ans_no)
|
|
|
|
+ # else:
|
|
|
|
+ # ans_str = res[-1]["stem"] + res[-1]["parse"]
|
|
|
|
+ # ans_no_info = pre_get_item_no(ans_str, item_no_type)
|
|
|
|
+ # ans_no, ans_no_idx = get_right_no(ans_no_info)
|
|
|
|
+ # if len(ans_no) == len(res):
|
|
|
|
+ # all_ans = [del_no(ans_str[i:j]) for i, j in zip(ans_no_idx, ans_no_idx[1:] + [None])]
|
|
|
|
+ # res[-1]["stem"] = res[-1]["stem"][:ans_no_idx[0]]
|
|
|
|
+ # res = get_ans_match(res, all_ans, ans_no)
|
|
|
|
+ # elif ans_no_idx:
|
|
|
|
+ # try:
|
|
|
|
+ # ans_no1, table_ans, st = get_table_ans(res[-1]["stem"][:ans_no_idx[0]], [], flag=1)
|
|
|
|
+ # if table_ans and 0 < ans_no[0] - ans_no1[-1] < 3:
|
|
|
|
+ # all_ans = table_ans
|
|
|
|
+ # all_ans.extend([del_no(ans_str[i:j]) for i, j in zip(ans_no_idx, ans_no_idx[1:] + [None])])
|
|
|
|
+ # new_ans_no = ans_no1
|
|
|
|
+ # new_ans_no.extend(ans_no)
|
|
|
|
+ # if st >= 0:
|
|
|
|
+ # res[-1]["stem"] = res[-1]["stem"][:st]
|
|
|
|
+ # else:
|
|
|
|
+ # res[-1]["stem"] = res[-1]["stem"][:ans_no_idx[0]]
|
|
|
|
+ # res = get_ans_match(res, all_ans, new_ans_no)
|
|
|
|
+ # except:
|
|
|
|
+ # if len(ans_no) > 4 and all([True if not one_res["key"] and not one_res["parse"]
|
|
|
|
+ # else False for one_res in res[:-1]]):
|
|
|
|
+ # all_ans = [del_no(ans_str[i:j]) for i, j in zip(ans_no_idx, ans_no_idx[1:] + [None])]
|
|
|
|
+ # res[-1]["stem"] = res[-1]["stem"][:ans_no_idx[0]]
|
|
|
|
+ # res = get_ans_match(res, all_ans, ans_no)
|
|
|
|
|
|
# 没有识别出答案切分点的情况,很可能答案里的部分也当成题文进行拆分,所以先判断下是否有相同的id
|
|
# 没有识别出答案切分点的情况,很可能答案里的部分也当成题文进行拆分,所以先判断下是否有相同的id
|
|
all_no = [one_res['item_id'] for one_res in res]
|
|
all_no = [one_res['item_id'] for one_res in res]
|