интерпретация 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, возможно, другую версию, в любом случае получение выравниваний не кажется проблемой, просто не абсолютно уверен, как их интерпретировать :).

0 ответов

Другие вопросы по тегам