ソースを参照

修复站源 深圳市龙华区教育局 中标错误

lsm 1 年間 前
コミット
7495cf5744
2 ファイル変更14 行追加4 行削除
  1. 1 1
      BiddingKG/dl/interface/extract.py
  2. 13 3
      BiddingKG/dl/interface/predictor.py

+ 1 - 1
BiddingKG/dl/interface/extract.py

@@ -354,7 +354,7 @@ def predict(doc_id,text,title="",page_time="",web_source_no='',web_source_name="
 
     # data_res = Preprocessing.union_result(Preprocessing.union_result(codeName, prem),list_punish_dic)[0]
     # data_res = Preprocessing.union_result(Preprocessing.union_result(Preprocessing.union_result(codeName, prem),list_punish_dic), list_channel_dic)[0]
-    version_date = {'version_date': '2024-04-29'}
+    version_date = {'version_date': '2024-04-30'}
     data_res = dict(codeName[0], **prem[0], **channel_dic, **product_attrs[0], **product_attrs[1], **payment_way_dic, **fail_reason, **industry, **district, **candidate_dic, **version_date, **all_moneys)
 
     '''最终检查修正招标、中标金额'''

+ 13 - 3
BiddingKG/dl/interface/predictor.py

@@ -1387,9 +1387,9 @@ class RoleRulePredictor():
                                            "|结果公示如下:摇出球号:\d+号,中介机构:$|直购企业:$)"  # 取消逗号 并拒绝执行改进计划的供应商,华新水泥将可能终止与其合作关系  # 中标候选人不能作为中标
 
         self.pattern_winTenderer_right = "(?P<winTenderer_right>(^[是为](首选)?((采购|中标|成交)(供应商|供货商|服务商)|(第[一1]|预)?(拟?(中标|中选|中价|成交)(候选|排序)?(人|单位|机构|供应商|公司|企业|厂商)))|" \
-                                         "^((报价|价格)最低,|以\w{5,10}|\w{,20})?(确定|成|作)?为[\w“”()]{3,25}((成交|中选|中标|服务)(人|单位|供应商|企业|公司)|供货单位|供应商|第一中标候选人)[,。]" \
+                                         "^((报价|价格)最低,|以\w{5,10})?(确定|成|作)?为[\w“”()]{3,25}((成交|中选|中标|服务)(人|单位|供应商|企业|公司)|供货单位|供应商|第一中标候选人)[,。]" \
                                          "|^:贵公司参与|^:?你方于|^(胜出)?中标。|^取得中标(单位)?资格" \
-                                         "|^通过(挂牌|拍卖)方式(以[\d.,]+万?元)?竞得|^[((](中标|成交|承包)人名?称?[))]))"
+                                         "|^通过(挂牌|拍卖)方式(以[\d.,]+万?元)?竞得|^[((](中标|成交|承包)人名?称?[))]))" # 去掉 |\w{,20} 修复 460216955 网上公布的与本次采购项目有关的信息视为已送达各响应供应商。 作为中标
         self.pattern_winTenderer_whole = "(?P<winTenderer_center>(贵公司|由).{,15}以\w{,15}中标|确定[\w()]{5,20}为[^,。;]{5,50}的?中标单位" \
                                          "|选定报价最低的[“”\w()]{5,25}为[^,。;]{5,50}的?(服务|中标|成交)单位" \
                                          "|拟邀请[\w()]{5,20}(进行)?单一来源谈判|(承办单位|报价人|投标人|中介机构)(名称)?:[\w()]{5,20},(中标|承办|中选)价格" \
@@ -2232,6 +2232,8 @@ class RoleGrade():
         agency_like_tenderee = [] # 类似招标人的代理人实体列表
         low_prob_agency = []
         low_prob_tenderee = []
+        low_prob_winner = []
+        all_tenderee_agency = []
         for entity in list_entitys[0]:
             if entity.entity_type in ['org', 'company'] and entity.label in [0, 1, 2, 3, 4] and entity.values[entity.label]> min_prob:
                 text = sentences[entity.sentence_index].sentence_text
@@ -2304,12 +2306,17 @@ class RoleGrade():
                     low_prob_agency.append(entity)
                 else:
                     low_prob_tenderee.append(entity)
+            elif entity.entity_type in ['org', 'company'] and entity.label == 2 and 0.5<=entity.values[entity.label]<0.6:
+                low_prob_winner.append(entity)
+            if entity.entity_type in ['org', 'company'] and entity.label in [1, 0] and 0.5<entity.values[entity.label]:
+                all_tenderee_agency.append(entity.entity_text)
+
 
         if org_tenderee == [] and agency_like_tenderee:
             for entity in agency_like_tenderee:
                 entity.label = 0
                 entity.values[entity.label] = 0.6
-        for entity in low_prob_agency:
+        for entity in low_prob_agency: # 如果低概率代理在招标人列表,改为招标人
             if entity.entity_text in org_tenderee:
                 entity.label = 0
                 entity.values[entity.label] = 0.6
@@ -2317,6 +2324,9 @@ class RoleGrade():
             if entity.entity_text in agency_l:
                 entity.label = 1
                 entity.values[entity.label] = 0.6
+        for entity in low_prob_winner: # 如果低概率中标人在招标或代理列表,改为非角色
+            if entity.entity_text in all_tenderee_agency:
+                entity.label = 5
 
         if org_winner != []:
             flag = 0