test_re_money_total_unit.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import json
  2. import re
  3. import sys, os
  4. import time
  5. import pandas as pd
  6. from bs4 import BeautifulSoup
  7. sys.path.append(os.path.abspath("../.."))
  8. from BiddingKG.dl.interface.extract import predict
  9. def bidi_predict(html_str):
  10. content = html_str
  11. # content = "<div>总价:1110</div>"
  12. result_dict = json.loads(predict("1", content))
  13. return result_dict
  14. def test_csv(_path):
  15. start_time = time.time()
  16. df = pd.read_csv(_path)
  17. # total money
  18. predict_list_1 = []
  19. predict_list_2 = []
  20. for index, row in df.iterrows():
  21. # if index >= 1000:
  22. # break
  23. if index % 50 == 0:
  24. print("="*30, "Loop", index, "="*30)
  25. html_str = row["dochtmlcon"]
  26. # html_str = df.loc[75, "dochtmlcon"]
  27. # print(html_str)
  28. # 先筛选
  29. # possible = '((合计.?金额|合.?计|总.?价|单.?价)((元))?([:: ]))' \
  30. # '|([0-9.,,]+([((]?元[))]?)?/)'
  31. # if not re.search(possible, html_str):
  32. # predict_list_1.append(str([]))
  33. # predict_list_2.append(str([]))
  34. # continue
  35. # 先经过模型处理
  36. result_dict = bidi_predict(html_str)
  37. # 获取总价单价
  38. word_list_1 = result_dict.get("total_money")
  39. word_list_2 = result_dict.get("unit_money")
  40. if word_list_1:
  41. predict = word_list_1
  42. else:
  43. predict = []
  44. print("predict total money", predict)
  45. predict_list_1.append(str(predict))
  46. if word_list_2:
  47. predict = word_list_2
  48. else:
  49. predict = []
  50. print("predict unit money", predict)
  51. predict_list_2.append(str(predict))
  52. predict_df_1 = pd.DataFrame(predict_list_1)
  53. predict_df_2 = pd.DataFrame(predict_list_2)
  54. df = pd.concat([df, predict_df_1, predict_df_2], axis=1)
  55. df.to_csv(_path)
  56. print("finish write!", time.time()-start_time)
  57. if __name__ == "__main__":
  58. path = "D:\\BIDI_DOC\\比地_文档\\总价单价_result.csv"
  59. test_csv(path)