懶得在介紹來龍去脈了,反正就是找到的代碼全是這種:
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)