Просмотр исходного кода

号码提取、费率正则优化

znj 2 лет назад
Родитель
Сommit
2d9812e64f

+ 5 - 0
BiddingKG/dl/interface/getAttributes.py

@@ -1610,6 +1610,11 @@ def findAttributeAfterEntity(PackDict,roleSet,PackageList,PackageSet,list_senten
                     error_numStr_index.append(numStr_index)
                     last_phone_mask = False
                     continue
+                # 排除号码实体为时间格式 ,例如:20150515
+                if re.search("^20(1[0-9]|2[0-2])(0[1-9]|1[012])(0[1-9]|[1-2][0-9]|3[01])$",item[0]):
+                    error_numStr_index.append(numStr_index)
+                    last_phone_mask = False
+                    continue
                 # 前后跟着长度小于一定值数字的正则排除
                 if re.search("\d+[-—-―]?\d*$",phone_left) or re.search("^\d+[-—-―]?\d*",phone_right):
                     phone_left_number = re.search("\d+[-—-―]?\d*$",phone_left)

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

@@ -390,7 +390,7 @@ class CodeNamePredict():
                         for h in range(len(predict_code)):
                             if predict_code[h][0]>0.5:
                                 the_code = self.fitDataByRule(code_text[h])
-
+                                # print(the_code)
                                 #add code to entitys
                                 list_entity.append(temp_entitys[h])
 

+ 4 - 3
BiddingKG/dl/money/moneySource/ruleExtra.py

@@ -83,7 +83,7 @@ def extract_moneySource(text):
     re1 = re.compile("(资[金佥]来[源自][^已]|建设资[金佥][^已]|项目资[金佥][^已,,。.;;]|资[金佥]性质)")
     re2 = re.compile(r"(?P<start>(资[金佥]来[源自]|建设资[金佥]|项目资[金佥]|资[金佥]性质)(是|为|于|来,?源[为于]?|来自于?)?(,|,|;+|:+)?)"
                      r"(?P<moneySource>[^,,。;;已]{2,}?)[,。;,]")
-    re_error = re.compile(r"核查|合法|紧张|null|分配|承诺|执行|已落实|已到位|批准|审计|调整|证明|监管|报告|完成|说明|使用|/|签订|规定|总价|未支付|主体|分析")
+    re_error = re.compile(r"核查|合法|紧张|null|分配|承诺|执行|已落实|已到位|批准|审计|调整|证明|监管|报告|完成|说明|使用|/|签订|规定|总价|未支付|主体|分析|是否")
 
     sub = re.compile("[::。]|^[.,,、\)]|[,,;;]$|及采购预算|[及和]?其?落实情况|预算金额及服务期限|[1-9]、|及?招标控制价|"
                      "及落实|及出资比例|及金额|及性质|项目出资比例|来源为|及来源|及最高限价|及构成|及项目投资估算额|及预算资金|已?落实|"
@@ -166,7 +166,8 @@ def extract_moneySource(text):
 
 if __name__ == '__main__':
     # re_rule()
-    test ="a建设资金来源及性质:资本金40%,自筹60%,,xx.=建设资金来源自筹,项目出资比例为100%,as,建设资金来自呜呜呜。"
+    test ="a建设资金来源及性质:资本金40%,自筹60%,,xx.=建设资金来源自筹,项目出资比例为100%,as,建设资金来自呜呜呜。" \
+          "1、采购内容及资金来源:采购内容为汉上实验学校采购24台3匹柜机空调。资金来源为财政资金。"
     # 11,23 35,37
-    extract_moneySource(test)
+    print(extract_moneySource(test))
     pass

+ 2 - 1
BiddingKG/dl/ratio/re_ratio.py

@@ -3,7 +3,7 @@ from decimal import Decimal
 # ratio = '([((]?(上浮|下浮)(率|)(报价|)([((]?%[))]?|)[))]?[:: ,]{0,3}[0-9]+.?[0-9]*[((]?%?[))]?)'
 # ratio = '(([((]?(上浮|下浮)费?(率|)(报价|)[))]?|([中投]标|报价|总价)?费率|折扣率)([((]?%[))]?|)[))]?[为:: ,]{0,3}[0-9]+\.?[0-9]{0,3}[((]?%?[))]?)'
 
-ratio = re.compile('(([((]?(上浮|下浮)费?(率|)(报价|)[))]?|([中投]标|报价|总价)?费率|折扣率|优惠率)([((]?[%‰][))]?|)(报价|取值|)([((].{1,20}[))])?[))]?[为是:: ,]{0,3}'
+ratio = re.compile('(([((]?(上浮|下浮)费?(率|)(报价|)[))]?|([中投]标|报价|总价)?费率|折扣率|折扣系数|优惠率)([((]?[%‰][))]?|)(报价|取值|)([((].{1,20}[))])?[))]?[为是:: ,]{0,3}'
                    '([0-9]{1,2}(?:\.[0-9]+)?[((]?[%‰]?[))]?|[百千]分之[零壹贰叁肆伍陆柒捌玖拾一二三四五六七八九十]+(?:点[零壹贰叁肆伍陆柒捌玖拾一二三四五六七八九十]+)?)'
                    '|[0-9]{1,2}(?:\.[0-9]+)?[((]?[%‰][))]?[((]?[\u4e00-\u9fa5]{,2}(?:费率|折扣率|优惠率|(上浮|下浮)费?率)[))]?)')
 ratio = ratio.pattern
@@ -223,6 +223,7 @@ def test_str():
 费率):12
 折扣率(%):99.2063
 投标报价:96.00%(折扣率
+折扣系数:86(%)
 '''
     # s = '下浮率 百分之十点零陆(10.00%'
     print(extract_ratio(s))