rouge是自動文本摘要算法的評估指標(biāo):
https://blog.csdn.net/qq_25222361/article/details/78694617
Rouge-1、Rouge-2屁奏、Rouge-L分別是:生成的摘要的1gram-2gram在真實(shí)摘要的1gram-2gram的準(zhǔn)確率召回率和f1值岩榆,還有最長公共子序列在預(yù)測摘要中所占比例是準(zhǔn)確率,在真實(shí)摘要中所占比例是召回率坟瓢,然后可以計(jì)算出f1值勇边。
pyrouge是現(xiàn)成的計(jì)算庫,https://github.com/andersjo/pyrouge折联,安裝方法 https://blog.csdn.net/qq_32458499/article/details/80282049(安裝過程簡直吐血粒褒,依賴perl語言的包,首先安裝perl再安裝各種依賴包诚镰,依賴包安裝過程又發(fā)現(xiàn)要安裝其他依賴包奕坟,一直安祥款,各種錯,最后依舊沒安裝成功)網(wǎng)上關(guān)于這個(gè)的介紹很多
關(guān)鍵點(diǎn)是:安裝好perl月杉,以及perl安裝包的CPAN
能計(jì)算rouge 1/2/3/4/5/L
rouge這個(gè)庫同樣可以計(jì)算評價(jià)指標(biāo)但只能計(jì)算rouge1/2/L刃跛,且十分方便 https://github.com/pltrdy/rouge https://pypi.org/project/rouge/0.2.1/
只需要pip install rouge, 然后代碼里這樣調(diào)用就行了
from rouge import Rouge
a = ["i am a student from xx school"] # 預(yù)測摘要 (可以是列表也可以是句子)
b = ["i am a student from school on china"] #真實(shí)摘要
rouge = Rouge()
rouge_score = rouge.get_scores(a, b)
print(rouge_score[0]["rouge-1"])
print(rouge_score[0]["rouge-2"])
print(rouge_score[0]["rouge-l"])
結(jié)果
{'f': 0.7999999950222222, 'p': 0.8571428571428571, 'r': 0.75}
{'f': 0.6153846104142012, 'p': 0.6666666666666666, 'r': 0.5714285714285714}
{'f': 0.7929824561399953, 'p': 0.8571428571428571, 'r': 0.75}
tips: 對于英文,直接把句子輸入即可苛萎,中文的話桨昙, 沒有空格無法識別詞,所以得分詞之后再計(jì)算rouge值腌歉。如果需要以字為單位也得每個(gè)字加個(gè)空格蛙酪。