интерпретация fairseq - формат выравнивания отпечатков
Я играю с https://github.com/kanekomasahiro/bert-gec (исправление грамматических ошибок), который, в свою очередь, использует fairseq. Следуя документации на странице github bert-gec, после обучения я могу генерировать выходные данные, используя одноименный скрипт (https://github.com/kanekomasahiro/bert-gec/blob/master/scripts/generate. ш ). Поскольку я хочу видеть выравнивания, единственное изменение, которое я внес в сценарий generate.sh, - это добавление --print-alignment (при вызове Interactive.py в строках 20-32). Это работает, но я понятия не имею, как интерпретировать результат. Образец моего вывода:
S-0 What's a college?
H-0 -0.263251930475235 What 's a college?
P-0 -0.0619 -0.1579 -0.1606 -0.5393 -0.1052 -0.1705 -0.8060 -0.1045
A-0 0 8 8 4 8 8 8 8
Последняя строка добавляется в результате --print-alignment. Однако я ожидал получить что-то более внятное (например, формат Pharaoh, т.е.
0-0 0-1 1-2 3-3 3-4 3-5 4-6 6-7 6-8
, из которого сразу видно, какой токен в источнике соответствует какому токену в целевом).
Любые идеи о том, как интерпретировать этот формат выравнивания (или как преобразовать его в более легко интерпретируемый), будут очень приветствоваться!
PS Нашел этот пост SO, но это мне не очень помогло (не удалось найти указанную функцию в коде fairseq, возможно, другую версию, в любом случае получение выравниваний не кажется проблемой, просто не абсолютно уверен, как их интерпретировать :).