pyrouge和rouge,文本摘要評測方法庫

rouge是自動文本摘要算法的評估指標:
https://blog.csdn.net/qq_25222361/article/details/78694617

Rouge-1、Rouge-2、Rouge-L分別是:生成的摘要的1gram-2gram在真實摘要的1gram-2gram的準確率召回率和f1值,還有最長公共子序列在預測摘要中所占比例是準確率,在真實摘要中所占比例是召回率,然后可以計算出f1值。


pyrouge是現成的計算庫,https://github.com/andersjo/pyrouge,安裝方法 https://blog.csdn.net/qq_32458499/article/details/80282049(安裝過程簡直吐血,依賴perl語言的包,首先安裝perl再安裝各種依賴包,依賴包安裝過程又發現要安裝其他依賴包,一直安,各種錯,最后依舊沒安裝成功)網上關于這個的介紹很多
關鍵點是:安裝好perl,以及perl安裝包的CPAN
能計算rouge 1/2/3/4/5/L


rouge這個庫同樣可以計算評價指標但只能計算rouge1/2/L,且十分方便 https://github.com/pltrdy/rouge https://pypi.org/project/rouge/0.2.1/

只需要pip install rouge, 然后代碼里這樣調用就行了

from rouge import Rouge

a = ["i am a student from xx school"]  # 預測摘要 (可以是列表也可以是句子)
b = ["i am a student from school on china"] #真實摘要

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"])

結果
{'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: 對于英文,直接把句子輸入即可,中文的話, 沒有空格無法識別詞,所以得分詞之后再計算rouge值。如果需要以字為單位也得每個字加個空格。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容