想象这样一个画面:你走进一间挂满上万张照片的档案室,手里捏着一张刚刚拍摄的委托人照片。你的任务,是从这一整面墙的照片里,找出与手中照片“长得最像”的那几张——不是逐张端详比对,而是一眼扫过,先圈出几个大范围候选,再慢慢细看五官、脸型、神态,最终挑出最有参考价值的三五张。 这就是 AI 时代“相似案例检索”的真实写照。在 AI+法律的场景里,法官和律师每天都要面对成百上千份历史判决书。当一份新案件摆在案头时,理想的做法是:让机器自动从庞大的历史案卷库中捞出与当前案件情节最相近、争议焦点最吻合的既往判决,供裁判参考。这就是“案例检索:相似案例”要解决的核心问题。 整篇文章,我们会沿着这套“照片墙找人”的思路展开:先学如何把一张“照片”(案件文本)变成机器能看懂的数字特征,再学如何度量“长得像不像”(相似度计算),接着学会如何在照片墙里快速翻找(索引与检索),最后看看这套技术在真实法律工作中如何落地、会遇到什么坑、以及怎样评价它找得准不准。
对 AI 从业者而言,相似案例检索是“文本向量化 + 相似度计算 + 检索架构”三件套最典型的业务落地场景。掌握这套方法论,你不仅能做法律 AI,还能迁移到客服知识库、医疗病历匹配、政策文件检索等几乎所有“以文找文”的领域,是 NLP 工程能力的直接体现。
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
检索入门
故事仍然从“照片墙”开始。要知道,照片墙上的每一张照片都不是凭空出现的,它们背后都对应着一个真实的人、一个完整的故事。法律界的“照片墙”,就是法院积累几十年形成的裁判文书库;而“正在找人的照片”,就是法官手上正在处理的新案件。所谓相似案例,简单说就是案由相近、情节相似、争议焦点高度重合的历史判决。比如都是“借款纠纷”,都涉及“逾期不还”,都争论“利息是否过高”——这些相似点越多,参考价值就越大。
但这里有一个关键认知:相似案例检索,本质上是一种模糊查找,而非数据库里的精确匹配。精确查找像“按身份证号找人”,输入号码,输出唯一确定的结果;而相似检索像“看照片找人”,没有唯一标准答案,只有“像或不像”的排序。这引出了检索系统的核心目标:从案例库中找出与查询案件最相似的那个(或那批)案例:
回到照片墙:我们不可能拿着一张照片,把墙上每一张都仔细端详一遍——人做不到,机器也做不到。所以聪明的做法是先把“像”拆解成可计算的要素:五官轮廓、发型、气质。对应到法律案例,这些要素就是“案由、标的额、争议焦点”。把案子拆成要素、把要素变成数字,是机器“看照片”的第一步。
- 候选集合$\mathcal{C}$ 表示全部历史案例组成的集合,相当于整面照片墙。搜索范围是所有案例而非某一条记录。
- 相似度函数$\text{sim}(q, c)$ 是一个“打分器”,输入查询案例 $q$ 和历史案例 $c$,输出一个数值,数值越大代表二者越像,就像人眼对两张照片的“眼缘”评分。
- 取最大值$\arg\max$ 表示“使得分数最大的那一个”。整个表达式读作:在所有案例中,挑出与 $q$ 相似度得分最高的案例 $c^{*}$。
文本特征化
照片墙的比喻继续延伸:人眼能看到五官,但计算机只能看到像素点。要让机器“看懂”一份判决书,必须先把文字翻译成数字清单。这个翻译过程,就是文本特征化——通俗讲,就是“把一段话拆成零件,再给每个零件称重”。
第一步是分词:把连续的句子切分成有意义的词。中文不像英文天然有空格,需要专门算法切分。比如“甲方逾期未还款”,可以切出“甲方”“逾期”“未”“还款”。第二步是词袋模型:忽略语序,只统计每个词在文档中出现了多少次,像一个只数零件种类和数量、不管安装顺序的仓库管理员。但问题来了:有些词(如“甲方”“纠纷”)在几乎所有文书里都出现,它们的“存在感”很弱;而“逾期”“翻新机”这类只在少数案件中出现的词,辨识度极高,应该赋予更高权重。于是有了第三步——TF-IDF 加权:
经过这三步,每一份判决书都被表示成一个“特征向量”——一个很长很长的数字清单,每个位置对应一个词,数值就是它的 TF-IDF 权重。照片墙上的每张“脸”,终于变成了机器可以计算的数学对象。
- 词频 TF$\text{count}(t,d)$ 是词 $t$ 在文档 $d$ 中出现的次数,除以该文档的总词数作归一化,让长文档和短文档可以公平比较。
- 逆文档频率 IDF$N$ 是案例库总文档数,$\text{df}(t)$ 是包含词 $t$ 的文档数。$\ln\frac{N}{1+\text{df}(t)}$ 表示:越少文档包含这个词,这个词的“稀有分数”越高。
- 乘积组合把 TF 和 IDF 相乘,既看词在本文档中的热度,又看它在全库中的稀缺度——就像选“最像的照片”时,不只看眼前这张脸出现得多频繁,还要看这张脸在整个档案库里有多独特。
相似度计算
有了数字清单,回到照片墙的核心动作:“像不像”该怎么算?两个案例的文档,如果它们的高权重词高度重合,案情大概率就相近。最直观的度量有两个。
第一个是 Jaccard 系数:把两个文档各自的词集合看作两个圈子,重合的成员数除以两个圈子合并后的总人数,比值越高越相似。它简单但对“词频”不敏感——同样出现“逾期”,出现一次和出现十次在 Jaccard 眼中没区别。第二个更常用的是 余弦相似度:把两个 TF-IDF 向量放在高维空间里,计算它们之间的夹角。夹角越小,说明两个案例在各个维度上的“分量分布”越一致。公式如下:
细心的读者会发现,不同要素对“相似”的贡献并不相等。借款金额、借款期限这些核心情节,理应比“甲方”“乙方”这类套话词更能决定两个案子像不像。所以在工程实践中,我们还会人为放大关键要素的权重,比如把“诈骗”“过失致人死亡”这类定性词设为核心特征词。这就是权重调节:让照片墙上的“眼睛”“鼻子”比“背景色”更有发言权。
- 向量点积分子 $A \cdot B$ 把两个向量的每个对应分量相乘后累加,结果衡量两个向量在各维度上的“共同倾向”。如果两个案例都强烈依赖“逾期”这个维度,点积就会被拉高。
- 向量模长$\|A\|$ 是向量自身的长度,由所有分量的平方和开根号得到。它用于消除文档长度差异带来的影响——短文档向量天然“短”,归一化后也能和长文档公平比较。
- 余弦归一点积除以两个模长的乘积,结果被压缩到 $[-1, 1]$,这就是两个向量夹角的余弦值。夹角 $0°$ 为完全同向(最相似),$90°$ 为不相关。
索引与检索
照片墙如果只有几百张照片,逐一比对完全可行。但真实的法律案例库动辄百万篇,逐篇计算余弦相似度的代价是灾难性的。这时候需要给照片墙建立索引——就像图书馆的目录卡片,不必翻遍每一本书,只需查目录就能锁定可能相关的书架。
法律检索系统中的索引叫倒排索引。正常思路是“文档 → 包含哪些词”,倒排索引反其道而行:“词 → 哪些文档包含它”。比如“逾期”这个词,倒排表里记录着【案例 3、案例 5、案例 12】。当查询案件里出现“逾期”时,系统直接查这个词的倒排表,立刻定位到包含该词的所有案例。这些被定位到的案例,就构成了候选集,也就是照片墙寻人时“一眼扫过圈出的大范围”。
检索流程由此分成两段。第一段是候选召回:用倒排索引快速挑出所有与查询共享至少一个关键词的文档,它的原则是“宁可多抓,不可错过”,讲究快;第二段是精确排序:只在候选集内部逐一计算 TF-IDF 余弦相似度,按分数从高到低排列,讲究准。整体打分公式可以理解为:
回扣照片墙的比喻:整个检索过程就像“先扫一眼全场圈出十个人,再逐一走到面前辨认五官,最后选出最像的三位”。没有倒排索引这双“快速扫描眼”,就没有办法在海量照片里做到秒级响应。
- 遍历查询词取查询案件 $q$ 分词后的所有词 $t$,逐个进入倒排索引查找。这相当于把照片上“看得见的五官”逐一列出清单。
- 累加案例权重对每个查询词 $t$,取它在候选案例 $c$ 中的 TF-IDF 值并累加。如果案例 $c$ 对查询中多个重要词都有高权重,它的总分就会遥遥领先。
- 排序取 Top-K计算完所有候选案例的得分后按降序排列,取前 $K$ 个返回给用户。
法律场景落地
照片墙寻人学会了,法律场景怎么用?AI+法律中,相似案例检索有三个最典型的落地点。
第一是类案推送。法官在审理新案件时,系统根据起诉状文本自动检索历史相似判决,推送到审判流程系统中。法官可以参考这些类案的裁判理由和法律适用,确保“同案同判”——这是我国司法改革反复强调的原则。第二是量刑参考。在刑事领域,检索相似情节、相似金额、相似罪名的判例,观察历史量刑分布,协助法官把量刑幅度框定在合理区间内。第三是文书辅助。律师撰写“类案检索报告”(部分地区法院明确要求提交)时,系统自动生成包含相似案例清单、相似度排序、裁判要点摘要的初稿,节省大量人工翻阅时间。
这套系统的排序逻辑,往往不是单一维度,而是把多个相似度分数融合起来:
在真实产品中,这个 $\alpha$ 通常不是拍脑袋定的,而是用法官的历史采纳行为做回归拟合出来的。这正是照片墙寻人经验的升华:灯光打在哪、先看脸还是先看衣着,都来自对真实“找对人”行为的统计学习。
- 案情相似度$\text{sim}_{\text{案情}}$ 衡量新案件与历史案例在整体事实描述上的相似程度,比如借款金额、担保方式、还款期限等。
- 焦点相似度$\text{sim}_{\text{焦点}}$ 专门衡量争议焦点是否一致,比如是“利息过高”还是“借款主体资格”。焦点一致比情节相似更具参考价值。
- 加权融合$\alpha$ 是经验调节系数(通常取 0.4~0.6),控制两个指标的相对重要性。$\alpha$ 调大,检索结果更贴近事实情节;调小,更贴近争议焦点。
挑战与优化
照片墙寻人看起来美好,真实世界中却布满陷阱。第一个大坑是同义多词——“拖欠货款”“未付货款”“欠款未结”其实指向同一件事,但字面完全不同。纯关键词匹配会漏掉大量实质相似却说法不同的案例。破解方法有两类:一是引入法律同义词典做查询扩展,把“拖欠”自动扩展为“未付、拒付、逾期支付”;二是改用词向量/句向量表征,让语义相近的词在向量空间中天然聚集,“拖欠”和“未付”的距离自然很近。查询扩展可以形式化为:
第二个大坑是长文本处理。一份判决书动辄上万字,全文做 TF-IDF 会让关键情节被大量程序性文字稀释。工程上常用“分段 + 加权”策略:把文书拆成“本院查明”“本院认为”“判决如下”等段落,给“本院认为”这类说理部分更高的权重。第三个挑战是性能优化:当案例库达到百万级时,倒排索引 + 内存缓存、候选集粗排过滤、甚至 GPU 批量向量运算都会被组合使用,确保法官输入案情的三秒内能等来检索结果。
- 遍历原查询词从查询 $q$ 中逐个取出词 $t$。
- 查同义词表$\text{syn}(t)$ 返回法律词典中词 $t$ 的所有同义表达,如“欠款→拖欠、未付、拒付”。
- 合并成扩展查询把原词与同义词全部并入新查询集 $q'$,扩大召回面,减少漏检。
效果评估改进
照片墙找人找得好不好,不能靠嘴上说“感觉挺像”。必须让评估指标说话。检索系统最核心的两个指标是精确率(Precision) 和召回率(Recall)。想象法官标记了 100 个“真正相似”的案例,系统检索返回了 30 个,其中 20 个被法官认可为真相似。那么精确率就是 20/30 ≈ 66.7%,召回率是 20/100 = 20%。
指标确立之后,进入人工评估反馈环节:法官或法律专家对检索结果逐条打分“相似/不相似/部分相似”,这些标注数据回流到系统中,用来调整权重 $\alpha$、扩充同义词表、甚至微调向量模型,形成“检索 → 评估 → 调优 → 再检索”的迭代闭环。这就像照片墙寻人的老手把“看特征的眼光”不断传授给新手,让整套系统越用越聪明。
- 真正例 TP系统检索出来,且人工确认确实相似的案例数。这是检索系统的“命中”。
- 假正例 FP 与假负例 FNFP 是系统找出来但实际不相似的“噪音”;FN 是系统没找出来但实际相似的“漏网之鱼”。
- 两个比例$P$ 关注“找出来的东西里有多少是对的”,$R$ 关注“该找的东西里找到了多少”。二者此消彼长,工程上常用 $F_1 = \frac{2PR}{P+R}$ 做综合平衡。
AI 应用场景
法官办案智能类案推送
阶段:检索召回 + 精排排序 + 结果推荐
解决的问题:传统方式下,法官审理新案时依赖个人记忆和经验检索类案,不仅耗时,还容易遗漏与本案高度相似但法条表述不同的历史判决,导致“同案不同判”的风险。AI 系统把新案件的起诉状、答辩状做特征化,在全量裁判文书库中检索相似度 Top-10 类案,推送到审判系统侧边栏,法官一键查看相似案例的裁判要旨与法律适用。
具体案例:某基层法院处理一起“车位买卖合同纠纷”时,系统检索到 5 份标的额相近、均为“开发商逾期交付车位”的既往判决,其中 3 份判赔违约金按日万分之二计算,法官据此作出同尺度判决,当事人服判息诉。
刑事量刑幅度参考
阶段:要素抽取 + 加权相似度计算 + 统计聚合
解决的问题:量刑均衡是刑事审判的敏感议题。传统人工检索量刑案例需要从罪名、金额、情节、认罪态度等多个维度反复筛选,效率低且口径不一。AI 系统先抽取当前案件的量刑要素(罪名、金额、受伤人数、自首立功等),再对相似案例做加权匹配,最后统计出相似案例的量刑区间分布供法官参考。
具体案例:某诈骗案涉案金额 18 万元,系统检索出 42 个金额在 10~30 万元、均为“初犯+全额退赃”的相似判例,统计显示量刑集中在有期徒刑三年至三年六个月,法官参考该区间作出判决。
律师类案检索报告自动生成
阶段:候选召回 + 精排 + 文本摘要生成
解决的问题:诉讼律师在立案前需向法院提交《类案检索报告》,传统手工编写要翻阅数十份判例并提炼案情、裁判理由,耗时数小时。AI 系统接受案情描述后自动完成检索,并按法院要求的模板生成报告初稿,包含案例基本信息、相似度排序、裁判要点摘要,律师只需人工复核微调。
具体案例:某知识产权诉讼团队代理一起“短视频背景音乐侵权”案,系统从 200 万份知产判决中检索出 12 份高度相关判例,自动生成 8 页检索报告,律师复核后直接提交,撰写时间从 6 小时缩短到 40 分钟。
Python 演示
# -*- coding: utf-8 -*-import mathimport re SAMPLE_CASES = [ "甲方向乙方借款十万元,约定三个月内归还,逾期未还", "甲方向乙方借款五十万元,约定一年内归还,逾期未还", "甲方出售房屋给乙方,乙方支付全款后甲方拒绝过户", "甲方将房屋出租给乙方,乙方擅自转租引发纠纷", "甲方购买乙方手机一部,后发现为翻新机要求退货", "甲方委托乙方保管名贵手表,乙方不慎遗失", "甲方与乙方签订劳动合同,乙方无故被辞退", "甲方向乙方购买货物一批,乙方迟延交货造成损失",] def tokenize(text): """简易中文分词:按相邻两字切分,避免引入外部依赖""" text = re.sub(r"\s+", "", text) if len(text) <= 1: return [text] return [text[i:i + 2] for i in range(len(text) - 1)] def build_tfidf(cases): doc_tokens = [tokenize(c) for c in cases] df = {} for toks in doc_tokens: for tok in set(toks): df[tok] = df.get(tok, 0) + 1 n = len(cases) idf = {} for tok, d in df.items(): idf[tok] = math.log((n + 1) / (d + 1)) + 1.0 vectors = [] for toks in doc_tokens: tf = {} for tok in toks: tf[tok] = tf.get(tok, 0) + 1 vec = {} for tok, cnt in tf.items(): vec[tok] = cnt / len(toks) * idf[tok] vectors.append(vec) return idf, vectors def cosine(a, b): common = set(a) & set(b) if not common: return 0.0 dot = sum(a[k] * b[k] for k in common) norm_a = math.sqrt(sum(v * v for v in a.values())) norm_b = math.sqrt(sum(v * v for v in b.values())) if norm_a == 0 or norm_b == 0: return 0.0 return dot / (norm_a * norm_b) def search(query, cases, idf, vectors, top_k=3): qtoks = tokenize(query) qtf = {} for tok in qtoks: qtf[tok] = qtf.get(tok, 0) + 1 qvec = {} for tok, cnt in qtf.items(): if tok in idf: qvec[tok] = cnt / len(qtoks) * idf[tok] scored = [] for idx, vec in enumerate(vectors): scored.append((cosine(qvec, vec), idx)) scored.sort(reverse=True) return [(cases[idx], round(score, 4)) for score, idx in scored[:top_k]] if __name__ == "__main__": idf, vectors = build_tfidf(SAMPLE_CASES) query = "甲方向乙方借款二十万元,逾期未归还" print("查询案例:", query) print("最相似的三个案例:") for case, score in search(query, SAMPLE_CASES, idf, vectors, 3): print(" 相似度 %.4f %s" % (score, case))
def tokenize(text):简易中文分词函数,按相邻两字切分,中文场景免装分词库即可运行。idf[tok] = math.log((n + 1) / (d + 1)) + 1.0计算逆文档频率,词越稀有、数值越大,防止“甲方”等高频词喧宾夺主。vec[tok] = cnt / len(toks) * idf[tok]词频除以文档长度做归一化,再乘 IDF,得到每个词的 TF-IDF 权重。common = set(a) & set(b)取两个向量共有的特征词集合,只有共同的词才对相似度有贡献。dot / (norm_a * norm_b)标准余弦相似度计算,结果越接近 1 表示两个案例越像。scored.sort(reverse=True)按相似度分数从高到低排序,取前 top_k 作为检索结果。search(query, SAMPLE_CASES, idf, vectors, 3)程序入口,用新案情检索案例库并打印 Top-3。
常见误区
误区两个判决里都出现了“借款”“逾期”,就认为它们是相似案例,直接拿来当裁判参考。我刚开始做类案检索时,就按关键词重合度排序,结果推荐了一堆“借款纠纷”却案情南辕北辙的文书。
正解相似案例的核心是“情节与争议焦点相似”,而不是“字面词汇相似”。同一借款纠纷,A 案争议在利息计算,B 案争议在夫妻共同债务认定,关键词高度重合但法律问题完全不同。TF-IDF 赋予“利息”“夫妻共同债务”这类区分性词汇更高权重,正是为了把“真相似”和“假相似”分开。
为何常见:人脑天然依赖字面重合度做快速判断,这是最省力的直觉;再加上早期检索工具确实只用关键词匹配,容易形成思维惯性。
误区评分模型给出相似度 0.95 的案例,就认为它应当作为判决依据,几乎不需要人工审查。觉得数字高代表算法认定“这就是同案”。
正解检索相似度衡量的是“文本内容像不像”,不等于“裁判规则应当适用于本案”。高相似度案例可能存在主体资格不同、法律已修改、指导性案例另有裁判规则等情况。系统输出只是“参考资料”,决定是否采信必须由法律人结合法律适用做专业判断。检索系统是地图,不是自动驾驶的方向盘。
为何常见:技术人员习惯信任模型输出的分数,容易把“统计相关”误解为“因果必然”,忽略了法律场景对可解释性和人工复核的刚性要求。
误区词表有十万个词,就把每个案例表示成十万维向量,认为维度越多包含的信息越全,检索就一定更准。
正解TF-IDF 向量是高度稀疏的,一个案例可能只有几百个非零维度,绝大多数维度都是 0。在高维稀疏空间里,余弦相似度容易受到无关维度噪声干扰,且存储和计算开销剧增。工程上常用特征筛选、降维(如 PCA)或改用稠密的句向量模型,反而在效率和效果上同时占优。
为何常见:“更多 = 更好”是日常经验的自然外推,而忽略了高维稀疏数据特有的“维度灾难”问题。
误区法律文书用词规范,检索时把所有关键词逐一匹配,能找到的案例已经很全了,认为语义向量是过度设计。
正解法律文本虽规范,但当事人的非专业表述(如把“逾期交房”写成“房子拖了半年才给”)在起诉状中大量存在。同义多词问题靠穷举关键词永远无法根治,而预训练语言模型生成的句向量天然把“交房延迟”和“逾期交房”映射到相近位置,能显著提升召回率。关键词检索是基础盘,向量语义是放大器,二者配合才是工程正解。
为何常见:容易只见自己的成功案例,忽略覆盖不到的边界场景;且关键词系统直观、好解释,让人误以为“看不到的问题就不存在”。
面试题
Q1. 在“照片墙找相似面孔”的比喻中,检索系统的核心任务是什么?
- A.把所有照片按拍摄时间排序展示
- B.从海量照片中找出最像的那几张← 正确答案
- C.为每张照片编写详细的文字备注
- D.把全部照片压缩成统一格式
答案:B。检索系统的本质是“从海量候选中找出与查询最相似的 Top-K”——就像在照片墙找人时圈出最像的几张。按时间排序是归档,写备注是标注,压缩是存储优化,都不是检索的核心任务。
Q2. TF-IDF 中的 IDF 主要衡量什么?
- A.某个词在单个文档中出现的次数
- B.某个词在整个案例库中的稀有程度← 正确答案
- C.某个文档在数据库中的编号大小
- D.查询语句与文档之间的时间差
答案:B。IDF(逆文档频率)用 $\ln(N / \text{df}(t))$ 度量一个词在多少文档中出现过,出现得越少越稀有、权重越高。词频(TF)才统计单文档内出现次数,选项 A 是 TF 的概念,C、D 与文本权重无关。
Q3. 余弦相似度直接衡量两个向量的什么?
- A.两个向量的长度大小之差
- B.两个向量的方向夹角大小← 正确答案
- C.两个向量的维度数量多少
- D.两个向量的所有元素之和
答案:B。余弦相似度计算的是两个向量的夹角余弦值,夹角越小越相似,与向量长度无关。所以长短不同的文档也能公平比较——这才是它常用于文本检索的原因。
Q4. 倒排索引的核心作用是什么?
- A.让文档在服务器中按照顺序正向排列
- B.由关键词快速定位包含它的所有文档← 正确答案
- C.把文档内容无损压缩成一半大小
- D.将查询句子拆分成一个个汉字
答案:B。倒排索引是“词 → 文档列表”的映射表。查询时直接查词条找到对应文档集合,避免全库扫描。正向排列是存储问题,压缩是存储优化,拆分汉字是分词——均不是倒排索引的作用。
Q5. 检索流程中“召回”阶段的首要目标是什么?
- A.精确计算每个候选与查询的相似度
- B.用宽松条件快速获取候选文档集合← 正确答案
- C.将查询语句翻译成另一种自然语言
- D.把已有文档按日期重新排列归档
答案:B。召回阶段的核心是“宁多勿漏、速度优先”,用倒排索引等低成本方式快速缩小范围,把精确打分留给精排阶段。选项 A 是精排阶段的任务,C、D 与检索流程无关。
Q6. 纯关键词匹配检索法律案例效果不佳的原因有哪些?
- A.同义表达方式多种多样← 正确答案
- B.不同案情要素权重不同← 正确答案
- C.法律文书篇幅普遍都很长
- D.检索系统缺少联网搜索功能
答案:AB。同义不同词(如“拖欠”与“未付”)导致漏召,案情要素权重差异(认定焦点与程序套话权重应不同)导致排序失真,这两点正是 TF-IDF 与同义词扩展要解决的问题。篇幅长并不是关键词匹配失效的直接原因,联网功能与文本相似度无关。
Q7. 用 bigram 分词法处理“民间借贷纠纷”这六个字,能提取出几个特征词?
- A.恰好得到四个相邻二元特征词
- B.得到五个相邻交叠的二元特征组← 正确答案
- C.只能得到一个完整的整词特征项
- D.得到六个彼此独立的单字特征项
答案:B。bigram 按相邻两字滑动切分:“民间、间借、借贷、贷纠、纠纷”共 5 个二元组(长度 6 的字串产生 n-1=5 个)。四个与六个均不符合 n-1 规律,整词切分属于词典分词而非 bigram。
Q8. 关于 TF-IDF 权重的描述,下列说法正确的是?
- A.全库出现越频繁的词权重越高
- B.区分度高的稀有词权重更高← 正确答案
- C.权重只由文档字数来决定
- D.权重与词语出现位置相关
答案:B。IDF 让稀有词的权重更高,因为它们区分能力强;“甲方”“纠纷”这类高频词被自动降权。如果高频词权重高,所有文档都会因共有词而虚高相似度。权重与位置无关,也不只由长度决定。
Q9. 评估类案检索系统效果时,通常使用哪些指标?
- A.精确率(Precision)← 正确答案
- B.召回率(Recall)← 正确答案
- C.法院采纳判决的总数
- D.页面加载所需的时间
答案:AB。精确率衡量“检索结果中有多少真相似”,召回率衡量“真相似案例中有多少被找到”,两者共同刻画检索质量。法院采纳数是业务效果而非检索指标,页面加载时间属系统性能指标,与检索准确度无关。
Q10. 以下哪两项措施能有效缓解法律检索中的“同义不同词”问题?
- A.引入法律词典进行同义词扩展查询← 正确答案
- B.采用预训练语言模型的语义向量← 正确答案
- C.增加检索服务器的磁盘存储空间
- D.强制所有起诉状使用统一规范词
答案:AB。同义词扩展把“拖欠”扩展为“未付、拒付”等穷举变体,语义向量则让含义相近的词在向量空间自动聚集,二者分别从词典和表示层面解决同义问题。加存储不改变匹配逻辑;强制统一用词在现实中不可行——起诉状来自公众,无法约束。