Files
check_in/.trae/documents/优化资源匹配算法:引入语义关键词映射.md
jeremygan2021 20c280405a pp
2026-01-10 01:38:34 +08:00

2.7 KiB
Raw Blame History

构建专家规则匹配系统 (Expert Rule-Based Matching)

既然不使用 AI 模型,要解决“尽快上市”和“证券”这种字面不同但意义相关的匹配,唯一且最高效的方法是构建一个领域同义词库Domain Thesaurus。这是一种经典的“专家系统”算法,通过预定义的业务规则来模拟理解。

1. 核心思路

我们不再依赖通用的模糊匹配,而是建立一套精准的映射规则

  • 原理:计算机不知道“上市”需要“证券”,但我们知道。我们将这些业务逻辑“硬编码”为一本字典。
  • 算法关键词提取 + 同义词扩散 + 加权匹配

2. 方案优势

  • 完全可控:为什么匹配?为什么不匹配?逻辑一目了然。
  • 零依赖:不需要安装任何新库(如 torch 或 jieba纯 Python 原生代码,运行极快。
  • 即刻生效:只要规则里写了,匹配准确率就是 100%。

3. 实施计划

步骤 1: 构建商业同义词库 (Thesaurus)

main.py 中定义一个详尽的字典,覆盖主要的商业场景。 针对您的痛点,我会重点编写“上市/金融”类的规则:

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-matchget_tablemates,使用新的专家算法替换旧算法。

这个方案完全满足“不用AI”且“提高模糊语义准确度”的需求。