distinct-n指标一般用来计算文本生成的多样性,其计算方式为:
和其他的指标一样,也有macro-distinct和micro-distinct之分。
macro-distinct指的是只看当前生成的文本,例如:
文本:我 只 想 吃 苹 果。
1-gram为{我,只,想,吃,苹,果}
2-gram为{我只,只想,想吃,吃苹,苹果}
其distinct-1为6/6=1(有的文章乘100当成百分比),disinct-2为5/5=1。
micro-distinct指的是看所有生成的文本,例如:
文本1:我 只 想 吃 苹 果
文本2:我 只 想 吃 菠 萝
其macro-distinct-1是(1+1)/2=1,macro-distinct-2是(1+1)/2=1,也就是分别计算然后取平均值。
对于micro-distinct,计算方法如下:
1-gram为{我,只,想,吃,苹,果,我,只,想,吃,菠,萝}
其中不重复的有8个
2-gram为{我只,只想,想吃,吃苹,苹果,我只,只想,想吃,吃菠,菠萝}
其中不重复的有7个
其micro-distinct-1是8/16=0.5,micro-distinct-2是7/10=0.7。
一般来说,对于一个生成任务,我们所说的distinct值一般指micro-distinct,但对于生成长文本的任务,我觉得也可选用macro-distinct