Created
April 16, 2020 15:30
-
-
Save ymoslem/5174469f88d9f1fb1660121a663bb87f to your computer and use it in GitHub Desktop.
Compute METEOR score
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Sentence METEOR | |
# METEOR mainly works on sentence evaluation rather than corpus evaluation | |
# Run this file from CMD/Terminal | |
# Example Command: python3 sentence-meteor.py test_file_name.txt mt_file_name.txt | |
import sys | |
from nltk.translate.meteor_score import meteor_score | |
target_test = sys.argv[1] # Test file argument | |
target_pred = sys.argv[2] # MTed file argument | |
# Open the test dataset human translation file | |
with open(target_test) as test: | |
refs = test.readlines() | |
#print("Reference 1st sentence:", refs[0]) | |
# Open the translation file by the NMT model | |
with open(target_pred) as pred: | |
preds = pred.readlines() | |
meteor_file = "meteor-" + target_pred + ".txt" | |
# Calculate METEOR for each sentence and save the result to a file | |
with open(meteor_file, "w+") as output: | |
for line in zip(refs, preds): | |
test = line[0] | |
pred = line[1] | |
#print(test, pred) | |
meteor = round(meteor_score([test], pred), 2) # list of references | |
#print(meteor, "\n") | |
output.write(str(meteor) + "\n") | |
print("Done! Please check the METEOR file '" + meteor_file + "' in the same folder!") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Dear @ymoslem , the following error is showing up when line no 34 (
meteor = round(meteor_score([test], pred), 2) # list of references
) is exactly used without modification."hypothesis" expects pre-tokenized hypothesis (Iterable[str]): xxxx xxxxxx xxxxxx .
But, if line no 30, 31 are casted to list type
test = list(line[0])
andpred = list(line[1])
, then everything is fine. Should it be modified/pulled ?