2.7 KiB
2.7 KiB
构建专家规则匹配系统 (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) 函数:
- 关键词扫描:遍历字典的
Key,看text_a(如愿景)中包含哪些核心词(如发现“上市”)。 - 关联扩散:如果发现了“上市”,不仅匹配“上市”本身,还自动去
text_b(如对方行业)中寻找Value列表中的词(如“证券”、“投行”)。 - 加权打分:
- 直接命中关键词:100分
- 命中关联词:80分
- 保留原有的
difflib作为兜底(处理人名或未收录的词)。
步骤 3: 替换现有逻辑
修改 /api/resource-match 和 get_tablemates,使用新的专家算法替换旧算法。
这个方案完全满足“不用AI”且“提高模糊语义准确度”的需求。