distinct-n指标一般用来计算文本生成的多样性,其计算方式为:

distinct-n=\frac {count(\text{uni}ngram)}{count(ngram))}

和其他的指标一样,也有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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐