KNs*_*iva 5 java algorithm text-processing nlp machine-translation
我需要计算BLEU分数,以确定两个句子是否相似.我读过一些文章,主要是关于测量机器翻译准确度的BLEU分数.但是我需要一个BLEU分数来找出句子之间的相似性.同一种语言[英语].(即)(两个句子都是英文).感谢期待.
dmc*_*cer 25
对于句子级比较,请使用平滑的BLEU
用于机器翻译评估的标准BLEU分数(BLEU:4)仅在语料库级别上真正有意义,因为任何没有至少一个4克匹配的句子将被给予0分.
发生这种情况是因为,在其核心,BLEU实际上只是n-gram精度的几何平均值,通过简洁惩罚来缩放,以防止非常短的句子与某些匹配材料被给予不适当的高分.由于通过将要包括在平均值中的所有项相乘来计算几何平均值,因此对于任何n-gram计数具有零导致整个得分为零.
如果你想将BLEU应用于单个句子,你最好使用平滑的BLEU(Lin和Och 2004 - 参见第4节),在你计算n-gram精度之前你在每个n-gram计数中加1 .这将防止任何n-gram精度为零,因此即使没有任何4-gram匹配也将导致非零值.
Java实现
您将在斯坦福机器翻译包Phrasal中找到BLEU和平滑BLEU的Java实现.
备择方案
正如Andreas已经提到的,您可能想要使用替代评分指标,例如Levenstein的字符串编辑距离.然而,使用传统的Levenstein字符串编辑距离来比较句子的一个问题是它没有明确地意识到单词边界.
其他选择包括: