/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
script/ter.py
41 строка
1 KB
Developer
fix(ter): use sentence_score instead of deprecated scorer method
05 авг 2026, 14:02
05 авг 2026, 14:02
b216435
Код
Авторство
О чём код?
import lxml.etree as ET import pandas as pd import re import sacrebleu from typing import List, Dict, Tuple import sys import json # 3. Функция расчета TER с использованием библиотеки SacreBLEU (учитывает shifts) def calc_ter(ref, hyp): if not ref and not hyp: return 0.0 if not ref or not hyp: return 100.0 # Очистка от технических символов r = re.sub(r'<[^>]+>|\{[^}]*\}|\xa0', '', str(ref)).strip() h = re.sub(r'<[^>]+>|\{[^}]*\}|\xa0', '', str(hyp)).strip() if not r: return 100.0 if h else 0.0 ter = sacrebleu.metrics.TER() ter_score = ter.sentence_score(h, [r]).score return round(min(ter_score, 100.0), 2) def main(): args = sys.argv; # Параметры ref = args[1] hyp = args[2] # Поиск ter = calc_ter(ref, hyp) result = []; result.append({ 'ter': ter }) json_string = json.dumps(result, ensure_ascii = False) print(json_string) if __name__ == "__main__": main()