contact_phone_prefix.yaml 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. # -*- coding: utf-8 -*-
  2. # 规则文件:角色-电话前缀匹配
  3. # 源:assembly/role_money.py 第 949-981 行 re_tenderee_phone / re_agent_phone 等
  4. # 迁移日期:2026-08-17 Phase 7 §7.6 中优先级
  5. # 说明:这些正则用于在文本中匹配"角色名+联系方式+电话号码"的模式,
  6. # 将电话号码归属到 tenderee/agent/win_tenderer 角色。
  7. # phone_pattern 部分与 phone.yaml 的 phone_extract 规则一致,
  8. # 此处仅迁移"角色前缀"部分,调用方用 RuleLoader.get_pattern(id).search(text)。
  9. version: 1
  10. category: CONTACT
  11. description: |
  12. 角色电话前缀正则。原 role_money.py 中 6 个 re.compile 用于匹配
  13. "采购人/代理机构/中标人 + 联系方式 + 电话号码"模式。
  14. phone_pattern 已迁移到 phone.yaml,本文件仅定义角色前缀部分,
  15. 调用方拼接 RuleLoader.get_pattern("phone_extract").pattern 使用。
  16. patterns:
  17. - id: tenderee_phone_prefix
  18. description: |
  19. 采购人/招标人/业主方 + 电话/联系方式/联系人 + 电话号码。
  20. 原 re_tenderee_phone 的角色前缀部分(无 phone_pattern)。
  21. pattern: '(?:(?:(?:遴选|寻源|采购|招标|竞价|议价|比选|(?:[^受被]|^)委托|询比?价|比价|评选|谈判|邀标|邀请|洽谈|约谈|选取|抽取|抽选|项目|需求?|甲方?|转让|招租|议标|合同主体|挂牌|出租|出让|出售|标卖|处置|发包|最终|建设|业主|竞卖|申购|公选)(?:人|方|商|单位|组织|用户|业主|主体|部门|公司|企业))(?:单位)?[^。代理]{0,5}(?:电话|联系方式|联系人|联系电话)[::]?[^。]{0,7}?)'
  22. method: search
  23. golden_examples:
  24. - input: "采购人联系电话:0833-5226788"
  25. should_match: true
  26. - input: "招标人联系方式:13812345678"
  27. should_match: true
  28. - input: "代理机构联系电话:010-87654321"
  29. should_match: false
  30. - id: tenderee_phone_prefix2
  31. description: |
  32. 采购人/招标人 + 地址 + 电话/联系方式 + 电话号码。
  33. 原 re_tenderee_phone2 的角色前缀部分(含地址中间词)。
  34. pattern: '(?:(?:(?:遴选|寻源|采购|招标|竞价|议价|比选|(?:[^受被]|^)委托|询比?价|比价|评选|谈判|邀标|邀请|洽谈|约谈|选取|抽取|抽选|项目|需求?|甲方?|转让|招租|议标|合同主体|挂牌|出租|出让|出售|标卖|处置|发包|最终|建设|业主|竞卖|申购|公选)(?:人|方|商|单位|组织|用户|业主|主体|部门|公司|企业))(?:单位)?[^。代理]{0,3}(?:地址)[^。]{0,3}(?:电话|联系方式|联系人|联系电话|联系人和联系方式)[::]?[^。]{0,20}?)'
  35. method: search
  36. golden_examples:
  37. - input: "采购人地址电话:0833-5226788"
  38. should_match: true
  39. - input: "招标人地址 联系方式:13812345678"
  40. should_match: true
  41. - input: "采购人联系电话:0833-5226788"
  42. should_match: false
  43. - id: agent_phone_prefix
  44. description: |
  45. 代理机构/受委托方 + 电话/联系方式 + 电话号码。
  46. 原 re_agent_phone 的角色前缀部分。
  47. pattern: '(?:(?:(?:代理|[受被]委托)(?:人|方|商|机构|公司|单位|组织|企业)|采购机构|集中采购机构|集采机构|招标机构)[^。]{0,5}(?:电话|联系方式|联系人|联系电话|联系人和联系方式)[::]?[^。]{0,7}?)'
  48. method: search
  49. golden_examples:
  50. - input: "代理机构联系电话:010-87654321"
  51. should_match: true
  52. - input: "受委托方联系方式:13812345678"
  53. should_match: true
  54. - input: "采购人联系电话:0833-5226788"
  55. should_match: false
  56. - id: agent_phone_prefix2
  57. description: |
  58. 代理机构 + 地址 + 电话/联系方式 + 电话号码。
  59. 原 re_agent_phone2 的角色前缀部分(含地址中间词)。
  60. pattern: '(?:(?:(?:代理|[受被]委托)(?:人|方|商|机构|公司|单位|组织|企业)|采购机构|集中采购机构|集采机构|招标机构)[^。]{0,3}(?:地址)[^。]{0,3}(?:电话|联系方式|联系人|联系电话|联系人和联系方式)[::]?[^。]{0,20}?)'
  61. method: search
  62. golden_examples:
  63. - input: "代理机构地址联系电话:010-87654321"
  64. should_match: true
  65. - input: "代理机构电话:010-87654321"
  66. should_match: false
  67. - id: win_tenderer_phone_prefix
  68. description: |
  69. 中标人/供应商/乙方 + 联系人/电话 + 电话号码。
  70. 原 re_win_tenderer_phone 的角色前缀部分。
  71. pattern: '(?:(?:(?:乙|竞得|受让|买受|签约|供货|供应?|合作|承做|承包|承建|承销|承保|承接|承制|承担|承修|承租(?:(包))?|入围|入选|竞买|中标|中选|中价|中签|成交|候选)(?:候选|投标)?(?:人|单位|(?:中介)?(?:服务)?机构|供应商|客户|方|公司|企业|厂商|商|社会资本方?)|选定单位|中[标选]银行|成交对象)[^。审核]{0,5}(?:负责人|联系人|项目)?(?:经理|电话|联系方式|联系人|负责人|联系电话|联系人和联系方式)[::]?[^。]{0,7}?)'
  72. method: search
  73. golden_examples:
  74. - input: "中标人联系电话:13812345678"
  75. should_match: true
  76. - input: "供应商联系人:张三 010-87654321"
  77. should_match: true
  78. - input: "采购人联系电话:0833-5226788"
  79. should_match: false
  80. - id: win_tenderer_phone_prefix2
  81. description: |
  82. 中标人/供应商 + 地址 + 联系人/电话 + 电话号码。
  83. 原 re_win_tenderer_phone2 的角色前缀部分(含地址中间词)。
  84. pattern: '(?:(?:(?:乙|竞得|受让|买受|签约|供货|供应?|合作|承做|承包|承建|承销|承保|承接|承制|承担|承修|承租(?:(包))?|入围|入选|竞买|中标|中选|中价|中签|成交|候选)(?:候选|投标)?(?:人|单位|(?:中介)?(?:服务)?机构|供应商|客户|方|公司|企业|厂商|商|社会资本方?)|选定单位|中[标选]银行|成交对象)[^。]{0,3}(?:地址)[^。审核]{0,3}(?:负责人|联系人|项目)?(?:经理|电话|联系方式|联系人|负责人|联系电话|联系人和联系方式)[::]?[^。]{0,20}?)'
  85. method: search
  86. golden_examples:
  87. - input: "中标人地址联系电话:13812345678"
  88. should_match: true
  89. - input: "中标人电话:13812345678"
  90. should_match: false
  91. - id: not_win_tenderer_contact
  92. description: |
  93. 非中标人联系方式排除模式。匹配纪检/监察/质疑/投诉/监督/受理 等
  94. 上下文,或"采购/招标+人/方/单位+联系/咨询/电话"模式,
  95. 用于排除不应归属中标人的电话号码。
  96. 原 not_win_tenderer_contact 正则。
  97. pattern: '纪检|监察|质疑|投诉|监督|受理|请.{0,4}(联系|与)|(遴选|寻源|采购|招标|竞价|议价|比选|委托|询比?价|比价|评选|谈判|邀标|邀请|洽谈|约谈|选取|抽取|抽选|项目|需求?|甲方?|转让|招租|议标|合同主体|挂牌|出租|出让|出售|标卖|处置|发包|最终|建设|业主|竞卖|申购|公选|发布|代理|拍卖|转出){1,2}(人|方|商|单位|组织|用户|业主|主体|部门|公司|企业|工厂|银行|机构){0,2}[\u4e00-\u9fa5]{0,4}(联系|咨询|电话)(人|电话|方式)?'
  98. method: search
  99. golden_examples:
  100. - input: "纪检监督电话"
  101. should_match: true
  102. - input: "投诉受理联系电话"
  103. should_match: true
  104. - input: "采购人联系电话"
  105. should_match: true
  106. - input: "中标人联系电话"
  107. should_match: false