# 构建专家规则匹配系统 (Expert Rule-Based Matching) 既然不使用 AI 模型,要解决“尽快上市”和“证券”这种字面不同但意义相关的匹配,唯一且最高效的方法是构建一个**领域同义词库(Domain Thesaurus)**。这是一种经典的“专家系统”算法,通过预定义的业务规则来模拟理解。 ## 1. 核心思路 我们不再依赖通用的模糊匹配,而是建立一套**精准的映射规则**。 - **原理**:计算机不知道“上市”需要“证券”,但我们知道。我们将这些业务逻辑“硬编码”为一本字典。 - **算法**:`关键词提取` + `同义词扩散` + `加权匹配`。 ## 2. 方案优势 - **完全可控**:为什么匹配?为什么不匹配?逻辑一目了然。 - **零依赖**:不需要安装任何新库(如 torch 或 jieba),纯 Python 原生代码,运行极快。 - **即刻生效**:只要规则里写了,匹配准确率就是 100%。 ## 3. 实施计划 ### 步骤 1: 构建商业同义词库 (Thesaurus) 在 `main.py` 中定义一个详尽的字典,覆盖主要的商业场景。 针对您的痛点,我会重点编写“上市/金融”类的规则: ```python BUSINESS_THESAURUS = { # 核心词: [同义词, 关联行业, 关联职能] "上市": ["IPO", "证券", "股票", "股份", "路演", "投行", "辅导", "财报", "合规", "董秘"], "证券": ["上市", "交易", "股票", "投资", "金融", "资本"], "融资": ["找钱", "资金", "投资", "VC", "PE", "天使", "风投", "路演", "BP"], "获客": ["销售", "渠道", "推广", "流量", "代理", "分销", "增长"], "技术": ["研发", "代码", "程序", "系统", "平台", "App", "小程序", "AI"], "法律": ["合规", "律师", "法务", "合同", "知识产权", "维权"], "财税": ["会计", "审计", "报税", "记账", "财务"], } ``` ### 步骤 2: 实现智能匹配算法 (Smart Matching Algorithm) 我将编写一个 `compute_expert_score(text_a, text_b)` 函数: 1. **关键词扫描**:遍历字典的 `Key`,看 `text_a`(如愿景)中包含哪些核心词(如发现“上市”)。 2. **关联扩散**:如果发现了“上市”,不仅匹配“上市”本身,还自动去 `text_b`(如对方行业)中寻找 `Value` 列表中的词(如“证券”、“投行”)。 3. **加权打分**: - 直接命中关键词:100分 - 命中关联词:80分 - 保留原有的 `difflib` 作为兜底(处理人名或未收录的词)。 ### 步骤 3: 替换现有逻辑 修改 `/api/resource-match` 和 `get_tablemates`,使用新的专家算法替换旧算法。 这个方案完全满足“不用AI”且“提高模糊语义准确度”的需求。