# -*- coding: utf-8 -*- # 规则文件:角色-电话前缀匹配 # 源:assembly/role_money.py 第 949-981 行 re_tenderee_phone / re_agent_phone 等 # 迁移日期:2026-08-17 Phase 7 §7.6 中优先级 # 说明:这些正则用于在文本中匹配"角色名+联系方式+电话号码"的模式, # 将电话号码归属到 tenderee/agent/win_tenderer 角色。 # phone_pattern 部分与 phone.yaml 的 phone_extract 规则一致, # 此处仅迁移"角色前缀"部分,调用方用 RuleLoader.get_pattern(id).search(text)。 version: 1 category: CONTACT description: | 角色电话前缀正则。原 role_money.py 中 6 个 re.compile 用于匹配 "采购人/代理机构/中标人 + 联系方式 + 电话号码"模式。 phone_pattern 已迁移到 phone.yaml,本文件仅定义角色前缀部分, 调用方拼接 RuleLoader.get_pattern("phone_extract").pattern 使用。 patterns: - id: tenderee_phone_prefix description: | 采购人/招标人/业主方 + 电话/联系方式/联系人 + 电话号码。 原 re_tenderee_phone 的角色前缀部分(无 phone_pattern)。 pattern: '(?:(?:(?:遴选|寻源|采购|招标|竞价|议价|比选|(?:[^受被]|^)委托|询比?价|比价|评选|谈判|邀标|邀请|洽谈|约谈|选取|抽取|抽选|项目|需求?|甲方?|转让|招租|议标|合同主体|挂牌|出租|出让|出售|标卖|处置|发包|最终|建设|业主|竞卖|申购|公选)(?:人|方|商|单位|组织|用户|业主|主体|部门|公司|企业))(?:单位)?[^。代理]{0,5}(?:电话|联系方式|联系人|联系电话)[::]?[^。]{0,7}?)' method: search golden_examples: - input: "采购人联系电话:0833-5226788" should_match: true - input: "招标人联系方式:13812345678" should_match: true - input: "代理机构联系电话:010-87654321" should_match: false - id: tenderee_phone_prefix2 description: | 采购人/招标人 + 地址 + 电话/联系方式 + 电话号码。 原 re_tenderee_phone2 的角色前缀部分(含地址中间词)。 pattern: '(?:(?:(?:遴选|寻源|采购|招标|竞价|议价|比选|(?:[^受被]|^)委托|询比?价|比价|评选|谈判|邀标|邀请|洽谈|约谈|选取|抽取|抽选|项目|需求?|甲方?|转让|招租|议标|合同主体|挂牌|出租|出让|出售|标卖|处置|发包|最终|建设|业主|竞卖|申购|公选)(?:人|方|商|单位|组织|用户|业主|主体|部门|公司|企业))(?:单位)?[^。代理]{0,3}(?:地址)[^。]{0,3}(?:电话|联系方式|联系人|联系电话|联系人和联系方式)[::]?[^。]{0,20}?)' method: search golden_examples: - input: "采购人地址电话:0833-5226788" should_match: true - input: "招标人地址 联系方式:13812345678" should_match: true - input: "采购人联系电话:0833-5226788" should_match: false - id: agent_phone_prefix description: | 代理机构/受委托方 + 电话/联系方式 + 电话号码。 原 re_agent_phone 的角色前缀部分。 pattern: '(?:(?:(?:代理|[受被]委托)(?:人|方|商|机构|公司|单位|组织|企业)|采购机构|集中采购机构|集采机构|招标机构)[^。]{0,5}(?:电话|联系方式|联系人|联系电话|联系人和联系方式)[::]?[^。]{0,7}?)' method: search golden_examples: - input: "代理机构联系电话:010-87654321" should_match: true - input: "受委托方联系方式:13812345678" should_match: true - input: "采购人联系电话:0833-5226788" should_match: false - id: agent_phone_prefix2 description: | 代理机构 + 地址 + 电话/联系方式 + 电话号码。 原 re_agent_phone2 的角色前缀部分(含地址中间词)。 pattern: '(?:(?:(?:代理|[受被]委托)(?:人|方|商|机构|公司|单位|组织|企业)|采购机构|集中采购机构|集采机构|招标机构)[^。]{0,3}(?:地址)[^。]{0,3}(?:电话|联系方式|联系人|联系电话|联系人和联系方式)[::]?[^。]{0,20}?)' method: search golden_examples: - input: "代理机构地址联系电话:010-87654321" should_match: true - input: "代理机构电话:010-87654321" should_match: false - id: win_tenderer_phone_prefix description: | 中标人/供应商/乙方 + 联系人/电话 + 电话号码。 原 re_win_tenderer_phone 的角色前缀部分。 pattern: '(?:(?:(?:乙|竞得|受让|买受|签约|供货|供应?|合作|承做|承包|承建|承销|承保|承接|承制|承担|承修|承租(?:(包))?|入围|入选|竞买|中标|中选|中价|中签|成交|候选)(?:候选|投标)?(?:人|单位|(?:中介)?(?:服务)?机构|供应商|客户|方|公司|企业|厂商|商|社会资本方?)|选定单位|中[标选]银行|成交对象)[^。审核]{0,5}(?:负责人|联系人|项目)?(?:经理|电话|联系方式|联系人|负责人|联系电话|联系人和联系方式)[::]?[^。]{0,7}?)' method: search golden_examples: - input: "中标人联系电话:13812345678" should_match: true - input: "供应商联系人:张三 010-87654321" should_match: true - input: "采购人联系电话:0833-5226788" should_match: false - id: win_tenderer_phone_prefix2 description: | 中标人/供应商 + 地址 + 联系人/电话 + 电话号码。 原 re_win_tenderer_phone2 的角色前缀部分(含地址中间词)。 pattern: '(?:(?:(?:乙|竞得|受让|买受|签约|供货|供应?|合作|承做|承包|承建|承销|承保|承接|承制|承担|承修|承租(?:(包))?|入围|入选|竞买|中标|中选|中价|中签|成交|候选)(?:候选|投标)?(?:人|单位|(?:中介)?(?:服务)?机构|供应商|客户|方|公司|企业|厂商|商|社会资本方?)|选定单位|中[标选]银行|成交对象)[^。]{0,3}(?:地址)[^。审核]{0,3}(?:负责人|联系人|项目)?(?:经理|电话|联系方式|联系人|负责人|联系电话|联系人和联系方式)[::]?[^。]{0,20}?)' method: search golden_examples: - input: "中标人地址联系电话:13812345678" should_match: true - input: "中标人电话:13812345678" should_match: false - id: not_win_tenderer_contact description: | 非中标人联系方式排除模式。匹配纪检/监察/质疑/投诉/监督/受理 等 上下文,或"采购/招标+人/方/单位+联系/咨询/电话"模式, 用于排除不应归属中标人的电话号码。 原 not_win_tenderer_contact 正则。 pattern: '纪检|监察|质疑|投诉|监督|受理|请.{0,4}(联系|与)|(遴选|寻源|采购|招标|竞价|议价|比选|委托|询比?价|比价|评选|谈判|邀标|邀请|洽谈|约谈|选取|抽取|抽选|项目|需求?|甲方?|转让|招租|议标|合同主体|挂牌|出租|出让|出售|标卖|处置|发包|最终|建设|业主|竞卖|申购|公选|发布|代理|拍卖|转出){1,2}(人|方|商|单位|组织|用户|业主|主体|部门|公司|企业|工厂|银行|机构){0,2}[\u4e00-\u9fa5]{0,4}(联系|咨询|电话)(人|电话|方式)?' method: search golden_examples: - input: "纪检监督电话" should_match: true - input: "投诉受理联系电话" should_match: true - input: "采购人联系电话" should_match: true - input: "中标人联系电话" should_match: false