import json import re import sys, os import time import pandas as pd from bs4 import BeautifulSoup sys.path.append(os.path.abspath("../..")) from BiddingKG.dl.interface.extract import predict def bidi_predict(html_str): content = html_str # content = "
总价:1110
" result_dict = json.loads(predict("1", content)) return result_dict def test_csv(_path): start_time = time.time() df = pd.read_csv(_path) # total money predict_list_1 = [] predict_list_2 = [] for index, row in df.iterrows(): # if index >= 1000: # break if index % 50 == 0: print("="*30, "Loop", index, "="*30) html_str = row["dochtmlcon"] # html_str = df.loc[75, "dochtmlcon"] # print(html_str) # 先筛选 # possible = '((合计.?金额|合.?计|总.?价|单.?价)((元))?([:: ]))' \ # '|([0-9.,,]+([((]?元[))]?)?/)' # if not re.search(possible, html_str): # predict_list_1.append(str([])) # predict_list_2.append(str([])) # continue # 先经过模型处理 result_dict = bidi_predict(html_str) # 获取总价单价 word_list_1 = result_dict.get("total_money") word_list_2 = result_dict.get("unit_money") if word_list_1: predict = word_list_1 else: predict = [] print("predict total money", predict) predict_list_1.append(str(predict)) if word_list_2: predict = word_list_2 else: predict = [] print("predict unit money", predict) predict_list_2.append(str(predict)) predict_df_1 = pd.DataFrame(predict_list_1) predict_df_2 = pd.DataFrame(predict_list_2) df = pd.concat([df, predict_df_1, predict_df_2], axis=1) df.to_csv(_path) print("finish write!", time.time()-start_time) if __name__ == "__main__": path = "D:\\BIDI_DOC\\比地_文档\\总价单价_result.csv" test_csv(path)