You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

对比双语料库识别差异化复合短语的实现方案咨询

跨语料任意长度复合短语识别方案

核心思路

将两个筛选条件拆分为独立的得分模块,两个模块均无需依赖递归子短语存在即可适配任意n≥2的短语:

  • 语料内凝固度:衡量短语出现频率远高于各组成成分单独出现的频率
  • 跨语料特异度:衡量短语在语料1的出现频率远高于语料2

具体实现步骤

1. 基础统计预处理

先提取两个语料所有的token级信息:

  • 统计语料1(C1)、语料2(C2)的总token数 len_C1、len_C2
  • 统计所有单token在C1的出现频次
  • 统计所有连续n元组(n≥2)分别在C1、C2的出现频次,n的上限可根据业务需求设置(比如最长10元组)

2. 凝固度计算(适配任意n)

采用**归一化广义互信息(NPMI)**作为凝固度指标,无需依赖子短语合并逻辑,直接对任意长度的短语计算:

# P(phrase)为短语在C1的出现概率,P(wi)为短语第i个组成token在C1的出现概率
PMI = log( P(phrase) / (P(w1) * P(w2) * ... * P(wn)) )
NPMI = PMI / (-log(P(phrase)))

NPMI的取值范围固定为[-1,1],得分越高说明短语凝固性越强,可统一设置阈值(比如≥0.6)过滤非固定搭配的短语,不需要随n调整阈值。

3. 特异度计算(解决跨语料零频问题)

采用平滑后的对数频率比作为特异度指标,避免子短语不存在、短语在其中一个语料零频导致的计算错误:

# α为平滑系数,取1e-8即可,避免除零或log(0)问题
c1_norm = (count_C1(phrase) + α) / len_C1
c2_norm = (count_C2(phrase) + α) / len_C2
specificity = log(c1_norm / c2_norm)

specificity得分越高说明短语在C1的相对出现频率越高,可设置阈值(比如≥2,对应C1归一化频率是C2的7倍以上)过滤非C1独有短语。

4. 结果输出

同时满足凝固度阈值、特异度阈值的短语即为目标复合短语,可选补充后处理:如果存在重叠的有效短语(比如“纽约”和“纽约市”均符合要求),可保留最长有效短语即可。

以给出的示例验证:C1中new york的NPMI得分远高于随机搭配,符合凝固度要求;当C2是洛杉矶相关语料时,new york的特异度得分很高,会被保留;当C2中大量出现new york时,特异度得分低于阈值,会被过滤,完全匹配需求。

相关参考方法

  • 凝固度计算参考通用互信息拓展方案,无需递归合并子短语,即可直接计算任意长度短语的搭配合理性
  • 跨语料频率对比参考对数似然比修正方案,平滑后可适配零频、语料规模差异大的场景

内容的提问来源于stack exchange,提问作者MRicci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:24:02