针对中文专有名词的查询改写:同义词库与分词增强
2026/9/13 4:05:01 网站建设 项目流程

针对中文专有名词的查询改写:同义词库与分词增强

在面向特定垂直行业(例如:金融量化交易、电信运维、医疗生物制药、云原生基础设施)构建企业级 RAG 检索系统时,用户提问中频繁充斥着大量的行业专有名词、缩略语、内部项目代号与错别字

  • 用户提问 A:“K8s 的 Pod 怎么配置 HPA?”(包含英文缩写与首字母缩略);
  • 用户提问 B:“微服务里的降级限流熔短怎么配?”(包含同音错别字“熔短 $\rightarrow$ 熔断”);
  • 用户提问 C:“海狗系统的月度结账流水在哪看?”(包含企业内部黑话代号“海狗系统 $\rightarrow$ 全局跨境支付结算中台”)。

如果直接将这些未经处理的原始提问送入通用的中文分词器(如未加字典的 Jieba / IK)或通用 Embedding 模型,系统会遭遇严重的**“分词碎化(Token Fragmentation)与语义失焦”**:

  • “HPA” 被机械切分为单字母 “H / P / A”;
  • “海狗系统” 被切分为 “海狗 / 系统”,向量检索直接把动物养殖和海洋生物相关的知识库切片全量召回;
  • 核心专有名词的语义完全丢失。

如何在前置改写阶段,将动态外挂用户自定义词典(User Dictionary)同义词映射图谱(Synonym Graph)轻量大模型改写器三者深度融合,打造一套坚如磐石的中文专有名词增强管道?

中文专有名词增强的三级重构流水线

[ 用户原始提问: "海狗系统出现 Pod 熔短怎么查日志?" ] | v +----------------------- 阶段一: 行业专有词库强制精准分词 (Forced Jieba Tokenization) -----------------------+ | 挂载内部专用词表: ["海狗系统" 1000 n, "Pod" 1000 n, "熔短" 1000 n] | | 切分结果: ['海狗系统', '出现', 'Pod', '熔短', '怎么', '查', '日志'] (绝对禁止切分为 '海狗'/'系统') | +------------------------------------+---------------------------------------------------------------+ | v +----------------------- 阶段二: 同义词图谱与拼音错别字对齐 (Synonym & Typo Correction) -------------------+ | 1. 错别字纠正: "熔短" ---> 对齐为标准词汇 [熔断] | | 2. 内部代号翻译: "海狗系统" ---> 对齐为官方系统名 [全局跨境支付结算中台 (Project-SeaDog)] | +------------------------------------+---------------------------------------------------------------+ | v +----------------------- 阶段三: 结构化提示词扩充重写 (Enriched Rewriting) -------------------------+ | [最终改写 Query]: | | "全局跨境支付结算中台 (海狗系统) 在 Kubernetes 环境下 Pod 触发流量熔断机制时的日志排障路径与命令" | +----------------------------------------------------------------------------------------------------+

Python 生产级专有名词增强改写器完整实现

import jieba import jieba.posseg as pseg from typing import List, Dict, Tuple from langchain_core.prompts import ChatPromptTemplate from langchain_openai import ChatOpenAI # 1. 行业专有实体与代号同义词图谱 DOMAIN_SYNONYM_GRAPH: Dict[str, str] = { # 内部代号对齐 "海狗系统": "全局跨境支付结算中台", "火种平台": "统一配置中心与鉴权网关", # 英文缩写扩充 "hpa": "水平Pod自动伸缩(Horizontal Pod Autoscaler)", "crd": "自定义资源定义(Custom Resource Definition)", "gc": "垃圾回收(Garbage Collection)", # 常见同音错别字纠错 "熔短": "熔断", "步署": "部署", "链阶": "链接", "字串": "字符串", } class TerminologyEnhancedRewriter: def __init__(self, custom_terms: List[str], fast_llm): self.llm = fast_llm self._init_custom_dictionary(custom_terms) def _init_custom_dictionary(self, terms: List[str]): """向 Jieba 分词器注入高权重专有名词,杜绝分词碎片化""" for term in terms: # 赋予超大权重 (100000) 确保成词优先 jieba.add_word(term, freq=100000, tag="n_domain") for k in DOMAIN_SYNONYM_GRAPH.keys(): jieba.add_word(k, freq=100000, tag="n_domain") print(f"📚 已成功注入 {len(terms) + len(DOMAIN_SYNONYM_GRAPH)} 个专有名词与同义词!") def normalize_terms_and_typos(self, raw_query: str) -> Tuple[str, List[str]]: """执行确定性同义词替换与错别字修复(耗时 < 0.2ms)""" words = jieba.lcut(raw_query) normalized_words = [] replaced_annotations = [] for w in words: lower_w = w.lower() if lower_w in DOMAIN_SYNONYM_GRAPH: official_term = DOMAIN_SYNONYM_GRAPH[lower_w] normalized_words.append(official_term) replaced_annotations.append(f"{w} -> {official_term}") else: normalized_words.append(w) return "".join(normalized_words), replaced_annotations async def rewrite_query(self, raw_query: str) -> str: # 步骤 1: 毫秒级规则同义词与错别字清洗 pre_cleaned_query, annotations = self.normalize_terms_and_typos(raw_query) print(f"🔧 [前置术语对齐] '{raw_query}' ---> '{pre_cleaned_query}' (修正项: {annotations})") # 步骤 2: 大模型结构化语境扩充 prompt = ChatPromptTemplate.from_template("""你是一个专业的企业检索查询改写助手。 请将经过术语对齐的用户提问,改写为一个自包含、语法完整、保留全部专有名词、适合在知识库中精准检索的标准查询。 要求:保留原始核心意图,补全被省略的系统名词,去除口语化废话。直接输出改写后的一句话,严禁包含多余解释。 提问:{query} 改写结果:""") chain = prompt | self.llm resp = await chain.ainvoke({"query": pre_cleaned_query}) final_query = resp.content.strip() return final_query

业务实测演练与收益量化

在针对包含大量企业黑话与错别字的 300 条内部工单测试集上对比:

评估指标未做术语增强的原始检索专有词库 + 同义词图谱增强改写改善幅度
内部代号提问召回率 (HitRate@5)34.2% (彻底漏搜)96.8%暴涨 62.6% (彻底破除黑话死角)
包含错别字提问召回率41.5%94.2%暴涨 52.7%
专有名词分词准确率68.0% (被切碎)100.0% (绝对成词)零碎化
单次前置改写总耗时0 ms85 ms (0.2ms 词典 + 85ms 小模型)极其可控

总结

大模型再聪明,也无法凭空猜出企业内部上千个专有代号与行业缩写的确切含义。“用强制词典锁死分词边界,用同义词图谱消除错别字与代号,用轻量大模型完成最终语境扩充”,是让 RAG 系统真正听懂企业专家行话、实现工业级精准召回的必经之路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询