nltk中meteor_score的計算,報錯


懶得在介紹來龍去脈了,反正就是找到的代碼全是這種:

import nltk

hypothesis = ' '.join(['It', 'is', 'a', 'cat', 'at', 'room'])
reference = ' '.join(['It', 'is', 'a', 'cat', 'inside', 'the', 'room'])
#there may be several references
merteor_score = nltk.translate.meteor_score.single_meteor_score(reference, hypothesis)
print(merteor_score)

簡單來說就是hypothesis和reference都是字符串,然后我就一直報這個錯:TypeError: "hypothesis" expects pre-tokenized hypothesis (Iterable[str]): It is a cat at room。看起來是類型問題,然后找了一通,全都是用的字符串,最后沒辦法了看了眼源碼,說要求是{hypothesis}格式,我覺得應該是set類型吧,然后就把

hypothesis和reference改成了set,然后就可以了,就emmm,我還費勁巴拉改一晚上,難道是nltk版本更新所以數據格式換了?
改后代碼:
import nltk
# from nltk.corpus import wordnet
# nltk.download('wordnet')
hypothesis = ['It', 'is', 'a', 'cat', 'at', 'room']
reference = ['It', 'is', 'a', 'cat', 'inside', 'the', 'room']
hypothesis=set(hypothesis)
reference=set(reference)
#there may be several references
merteor_score = nltk.translate.meteor_score.single_meteor_score(reference, hypothesis)
print(merteor_score)
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM