Finete State machine визуализатор
Мне нужно приложение, которое печатает / визуализирует пары ввода / вывода во время прогонов FST. Я имею в виду, что для каждого состояния fst необходимо распечатать кортеж, содержащий входные данные для этого состояния и выходные данные этого состояния. Прямо сейчас я могу создавать fst файлы, совместимые с инструментами foma, hfst и xfst fst. Итак, я полагаю, что нужного мне инструмента визуализации должно быть достаточно для совместимости с любым из них. Кто-нибудь знает такой инструмент?
1 ответ
foma
может производить dot
форматировать файлы, которые можно визуализировать с помощью graphviz
, В Debian/Ubuntu установите graphviz
с
$ sudo apt-get install graphviz
foma
могу читать att
формат файлов (производится с hfst-fst2txt
для всего, что HFST может прочитать, или lt-print
для чего-либо из lttoolbox); при условии, что у вас есть такой файл с именем myfst.att
, ты можешь сделать
$ foma
foma[0]: read att myfst.att
foma[1]: view
для отображения полного FST. Это покажет каждую пару вход / выход на каждом ребре между состояниями FST.
Но вы говорите "во время пробежек" - вы говорите также о показе очереди "живых состояний"? Если так, я не знаю инструмента, который это делает, это было бы неплохо! Единственное, что вы можете сделать, - это изменить источник HFST для вывода списка текущих состояний и строковых векторов во время его обработки, а затем объединить это с dot
файл, например, цвет в живых состояниях. (Если это так, вы можете принять это к #hfst
канал на irc.freenode.net.)
Также есть скрипт att2dot.py
на https://ftyers.github.io/2017-%D0%9A%D0%9B_%D0%9C%D0%9A%D0%9B/hfst.html который можно использовать в командной строке, напримерhfst-fst2txt chv.lexc.hfst | python3 att2dot.py | dot -Tpng -ochv.lexc.png
если вы предпочитаете что-то более скриптовое. Если вы используете это из библиотеки Python HFST, вы можете получить "живые состояния" для каждой части анализа более легко.