I need an application that prints/visualizes input/output pairs during the FST runs. I mean, for each state of the fst, it needs to print out a tuple that contains input for that state and output of the state. Right now I can generate fst files that is compatible with foma,hfst and xfst fst tools. So, I guess the visualization tool I need should be enough to compatible with any of them. Is there anyone who knows such a tool ?
1 Answers
foma
can produce dot
format files that can be visualized by graphviz
. On Debian/Ubuntu, install graphviz
with
$ sudo apt-get install graphviz
foma
can read att
format files (produced with hfst-fst2txt
for anything HFST can read, or lt-print
for anything from lttoolbox); assuming you've got such a file named myfst.att
, you can do
$ foma
foma[0]: read att myfst.att
foma[1]: view
to display the full FST. That will show each input/output pair on each edge between states of the FST.
But you say "during runs" – are you talking about also showing the queue of "live states"? If so, I don't know of a tool that does this, that would be nice! One thing you could do is to modify the HFST source to output the list of live states and string vectors as it's processing, and then combine that with the dot
file to e.g. colour in the live states. (If so, you may want to take this to the #hfst
channel on irc.freenode.net.)
There is also a script att2dot.py
on https://ftyers.github.io/2017-%D0%9A%D0%9B_%D0%9C%D0%9A%D0%9B/hfst.html that can be used on the command line like
hfst-fst2txt chv.lexc.hfst | python3 att2dot.py | dot -Tpng -ochv.lexc.png
if you prefer something more scriptable. If you use that from the Python library of HFST, you might be able to get the "live states" for every part of an analysis more easily.

- 4,306
- 2
- 39
- 52