评估机器生成的文本有多好,这件事比看起来要复杂得多。
大多数人第一反应是让人来读一读,打个分。这种方法听起来很自然,但实际操作起来问题很大。不同的人对同一段文本的评价往往差异很大。更麻烦的是,同一个人在不同时候读同一段文本,给出的评分也可能不一样。我们需要更客观的方法。
这就是为什么我们有了ROUGE(Recall-Oriented Understudy for Gisting Evaluation)。这个名字听起来很学术,但背后的想法其实很简单:把机器生成的文本和人写的参考文本比较,看有多少词重合。
ROUGE-N是最基础的版本。如果你想知道生成的摘要质量如何,就数一数有多少个N个词的组合出现在了参考文本中。比如ROUGE-1就是看单个词,ROUGE-2就是看相邻的两个词。这就像是在玩一个配对游戏。
但单纯数重合的词还不够。有时候生成的文本可能词都用对了,但顺序完全乱了。这就是为什么有了ROUGE-L。它不要求词必须紧挨着,而是看最长的公共序列有多长。这更接近人类判断文本相似度的方式。
ROUGE-S则更关注词的搭配。它会看文本中任意两个词是否按照相同顺序出现,即使中间隔了其他词。这捕捉了更细微的语言结构。
使用这些指标的时候会发现一个有趣的现象:有时候分数高的文本读起来并不好,分数低的反而更通顺。这提醒我们,再好的评估指标也只是工具,不能完全替代人的判断。
最有意思的是,这些看似简单的指标背后,折射出了我们对"好的文本"的理解有多么不完善。我们知道什么样的文本是好的,但把这种判断转化成计算机能理解的规则,却远比想象的困难。
所以每次看到ROUGE分数的时候,我都会想起那句老话:不是所有能数的都重要,也不是所有重要的都能数。评估生成文本的质量,可能永远需要机器指标和人工判断的结合。