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

咨询Mallet中Coherence Score的计算逻辑及分数范围转换方法

Mallet中Coherence Score的计算与分数转换

一、Coherence Score的计算逻辑

Mallet默认用PMI(点互信息) 计算主题一致性分数,流程如下:

  • 对每个主题,提取其Top N个高频关键词(默认取前10个)
  • 对这些关键词的所有两两组合,计算它们的PMI值:PMI(w1, w2) = log(P(w1,w2)/(P(w1)*P(w2)))
    这里的P(w1)是词w1在语料库中的出现概率,P(w1,w2)是w1和w2同时出现的概率,均基于语料库的频次统计得出
  • 将所有两两组合的PMI值取平均,得到该主题的一致性分数

二、分数范围转换方法

你拿到的-150至-600是Mallet原生输出的未归一化分数,而0.0-1.0是经过归一化处理后的结果。Mallet没有直接的命令实现这个转换,但可以手动处理:

  • 第一步:统计所有主题一致性分数的最大值(比如你的数据里的-150)和最小值(比如-600)
  • 第二步:用线性归一化公式转换每个分数:归一化分数 = (当前分数 - 最小值) / (最大值 - 最小值)
    举个例子:某主题分数为-300,代入后就是(-300 - (-600)) / (-150 - (-600)) = 300/450 ≈ 0.67
  • 如果你想和其他工具的0-1分数对齐,也可以尝试余弦归一化,但线性归一化是最直接的方案

另外,有编程基础的话可以修改Mallet源代码,找到TopicCoherence.java类,在输出分数的部分加入归一化逻辑,这样就能直接输出0-1范围的分数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 10:32:36