日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

文本生成:自动摘要评价指标 Rouge

發(fā)布時(shí)間:2024/3/24 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文本生成:自动摘要评价指标 Rouge 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文結(jié)構(gòu)概覽

        • 不同的摘要任務(wù)下,選擇合適的Rouge指標(biāo)
        • Rouge-N的理解與示例
        • Rouge-L的理解與示例
        • 代碼示例(char粒度 計(jì)算摘要的Rouge值)
        • 代碼示例(word粒度 計(jì)算摘要的Rouge值)
        • 個(gè)人思考
        • Reference

Rouge的全名是Recall-Oriented Understudy for Gisting Evaluation,單看名字就會(huì)發(fā)現(xiàn)Rouge是由召回率演變而來(lái)的指標(biāo),用于衡量模型生成摘要文本的質(zhì)量。我們常說(shuō)的Rouge其實(shí)是一組評(píng)價(jià)指標(biāo)的統(tǒng)稱,包含Rouge-N, Rouge-L, Rouge-W, Rouge-S四個(gè)指標(biāo),它們的計(jì)算方式和適用場(chǎng)景有所不同。本文首先介紹了它們各自的適用場(chǎng)景和計(jì)算方式,并給出了簡(jiǎn)潔可用的代碼示例,最后寫(xiě)下了一點(diǎn)個(gè)人思考。

不同的摘要任務(wù)下,選擇合適的Rouge指標(biāo)

  • 單文檔摘要任務(wù)中,ROUGE-2, ROUGE-L, ROUGE-W, 以及ROUGE-S表現(xiàn)很好
  • 在短摘要/標(biāo)題式摘要任務(wù)中,ROUGE-1, ROUGE-L, ROUGE-W,
    ROUGE-SU4, 以及ROUGE-SU9表現(xiàn)很棒
  • 在多文檔摘要任務(wù)中,當(dāng)停用詞被排除在匹配之外時(shí),ROUGE-1, ROUGE-2, ROUGE-S4, ROUGE-S9, ROUGE-SU4, 以及ROUGE-SU9表現(xiàn)不錯(cuò)
  • 排除停用詞通常能改善相關(guān)性評(píng)估
  • 使用多個(gè)reference(ideal 摘要)可以改善相關(guān)性評(píng)估。

Rouge-N的理解與示例

n-gram召回率,Co-Occurrence Statistics

rouge-n=pred與ideal的n-gram重疊數(shù)量ideal的n-gram數(shù)量\text{rouge-n}=\frac{\text{pred與ideal的n-gram重疊數(shù)量}}{\text{ideal的n-gram數(shù)量}}rouge-n=idealn-gram數(shù)量predidealn-gram重疊數(shù)量?

分母是ideal字符串的n-gram個(gè)數(shù),因?yàn)镽ouge更關(guān)心recall值。(而B(niǎo)LEU更關(guān)心precision值)

簡(jiǎn)單地說(shuō),Rouge-n統(tǒng)計(jì)了pred和ideal兩個(gè)字符串的n-gram重疊單元的數(shù)量,并計(jì)算了重疊單元在ideal字符串中的占比,作為召回率。

以短摘要/title摘要任務(wù)為例:
ideal摘要:“武漢長(zhǎng)江大橋”
pred摘要:“武漢市長(zhǎng)江大橋”

N-gram摘要內(nèi)容單元數(shù)量Rouge-N
1-gram武 / 漢 / 長(zhǎng) / 江 / 大/ 橋
武 / 漢 / 市 / 長(zhǎng) / 江 / 大/ 橋
ideal:6
重疊:6
Rouge-1=66=1\text{Rouge-1}=\frac{6}{6}=1Rouge-1=66?=1
2-gram武漢 / 漢長(zhǎng) / 長(zhǎng)江 / 江大 / 大橋
武漢 / 漢市 / 市長(zhǎng) / 長(zhǎng)江 / 江大 / 大橋
ideal:5
重疊:4
Rouge-2=45=0.8\text{Rouge-2}=\frac{4}{5}=0.8Rouge-2=54?=0.8

注:如有多個(gè)ideal摘要,怎么計(jì)算?
分別計(jì)算每個(gè)ideal摘要和pred摘要的Rouge值,并取其中最大值,作為當(dāng)前pred摘要的Rouge值。
rouge-nmulti=argmaxi{rouge-n(ideali,pred)}\text{rouge-n}_{multi} = argmax_i \text{\{rouge-n}(ideal_i, pred)\} rouge-nmulti?=argmaxi?{rouge-n(ideali?,pred)}

Rouge-L的理解與示例

最長(zhǎng)公共子序列,Longest Common Subsequence(LCS)

  • LCS和最長(zhǎng)公共子串不同,不要求連續(xù),保序即可
  • Rouge-N 只關(guān)注匹配單元的數(shù)量,像詞袋一樣,不關(guān)注詞序
  • Rouge-L 關(guān)注詞序

Rlcs=lcs長(zhǎng)度ideal字符串長(zhǎng)度,Plcs=lcs長(zhǎng)度pred字符串長(zhǎng)度,Flcs=(1+β2)RlcsPlcsRlcs+β2PlcsR_{lcs} = \frac{lcs長(zhǎng)度}{ideal字符串長(zhǎng)度}, P_{lcs}=\frac{lcs長(zhǎng)度}{pred字符串長(zhǎng)度}, F_{lcs}=\frac{(1+\beta^2)R_{lcs}P_{lcs}}{R_{lcs}+\beta^2P_{lcs}}Rlcs?=ideal長(zhǎng)lcs長(zhǎng)?,Plcs?=pred長(zhǎng)lcs長(zhǎng)?,Flcs?=Rlcs?+β2Plcs?(1+β2)Rlcs?Plcs??

注:lcs經(jīng)過(guò)了去重

以文檔摘要任務(wù)為例:
ideal摘要:“礦泉水和純凈水的所含物質(zhì)不同”
pred摘要:“礦泉水含有豐富的礦物質(zhì)元素,純凈水不含礦物質(zhì)”

-摘要內(nèi)容lcs內(nèi)容Rouge-L
句子1ideal:礦泉水和純凈水所含物質(zhì)不同
pred:礦泉水含有豐富物質(zhì)元素
礦 泉 水 的 物 質(zhì)
句子2ideal:礦泉水和純凈水的所含物質(zhì)不同
pred:純凈水物質(zhì)
純 凈 水 含 物 質(zhì)
合并去重ideal長(zhǎng)度: 14
pred長(zhǎng)度: 21
礦 泉 水 純 凈 水 的 含 物 質(zhì)
lcs長(zhǎng)度:10
Rlcs=1014=0.714R_{lcs}=\frac{10}{14}=0.714Rlcs?=1410?=0.714
Plcs=1021=0.476P_{lcs}=\frac{10}{21}=0.476Plcs?=2110?=0.476

代碼示例(char粒度 計(jì)算摘要的Rouge值)

from rouge import Rougepred = '武漢市長(zhǎng)江大橋' ideal = '武漢長(zhǎng)江大橋'# Rouge()按空格分隔gram,所以要在中文的字和字之間加上空格 pred, ideal = ' '.join(pred), ' '.join(ideal)# 計(jì)算字粒度的rouge-1、rouge-2、rouge-L rouge = Rouge() rouge_scores = rouge.get_scores(hyps=pred, refs=ideal)

結(jié)果如下

>>> pred '武 漢 市 長(zhǎng) 江 大 橋' >>> ideal '武 漢 長(zhǎng) 江 大 橋' >>> rouge_scores [{'rouge-1': {'r': 1.0, 'p': 0.8571428571428571, 'f': 0.9230769181065088}, 'rouge-2': {'r': 0.8, 'p': 0.6666666666666666, 'f': 0.7272727223140496}, 'rouge-l': {'r': 1.0, 'p': 0.8571428571428571, 'f': 0.9230769181065088}}]

代碼示例(word粒度 計(jì)算摘要的Rouge值)

from rouge import Rouge import jiebapred = '武漢市長(zhǎng)江大橋' ideal = '武漢長(zhǎng)江大橋'# 采用jieba分詞 pred = ' '.join(jieba.cut(pred, HMM=False)) ideal = ' '.join(jieba.cut(ideal, HMM=False))# 計(jì)算詞粒度的rouge-1、rouge-2、rouge-L rouge = Rouge() rouge_scores = rouge.get_scores(hyps=pred, refs=ideal)

結(jié)果如下,

>>> pred '武漢市 長(zhǎng)江大橋' >>> ideal '武漢長(zhǎng)江大橋' >>> rouge_scores [{'rouge-1': {'r': 0.0, 'p': 0.0, 'f': 0.0}, 'rouge-2': {'r': 0.0, 'p': 0.0, 'f': 0.0}, 'rouge-l': {'r': 0.0, 'p': 0.0, 'f': 0.0}}]

個(gè)人思考

word粒度的Rouge計(jì)算有兩個(gè)缺點(diǎn):

  • 受jieba分詞的影響,分詞錯(cuò)誤就會(huì)評(píng)估錯(cuò)誤。
  • 降低了長(zhǎng)詞的重要性,這樣一來(lái),模型更傾向于擬合容易預(yù)測(cè)的短詞。

word粒度的Rouge也有明顯的優(yōu)點(diǎn):

  • 更好地評(píng)估模型對(duì)專有名詞的擬合程度。

在蘇神的文章中,看到了一個(gè)結(jié)合了字粒度Rouge和詞粒度Rouge各自優(yōu)點(diǎn)的方法,簡(jiǎn)單來(lái)說(shuō),還是以詞為匹配單位,把詞的長(zhǎng)度作為權(quán)重,為Rouge做一個(gè)加權(quán)即可。比如上文的“武漢長(zhǎng)江大橋”,如果匹配對(duì)了,就給6分,而不是1分。這個(gè)方法需要自己實(shí)現(xiàn)Rouge計(jì)算函數(shù)。

Reference

  • ROUGE: A Package for Automatic Evaluation of Summaries
  • 科學(xué)空間 - SPACES:“抽取-生成”式長(zhǎng)文本摘要(法研杯總結(jié))

總結(jié)

以上是生活随笔為你收集整理的文本生成:自动摘要评价指标 Rouge的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。