OpenFST - 从单词列表创建 FST

OpenFST - creating FST's from list of words

我正在阅读最上面的示例:http://www.openfst.org/twiki/bin/view/FST/FstExamples 关于标记化。

在示例中,他们创建了三个 fst:Mars.fstMartian.fstman.fst,并手动 运行 一些 fst 命令将它们合并为一个大换能器.他们从 wotw.syms 中得到了单词“Mars”、“Martian”和“man”,其中有 7102 个单词。

我的问题是,有没有一种聪明的方法可以为所有 7102 个单词创建一个 word.fst,这样所有 7102 个单词都可以变成一个大自动机,还是必须手动完成,比如他们为 Martian、Mars 和 man 这三个词做了什么?

他们给了一个剧本:https://www.openfst.org/twiki/pub/FST/FstExamples/makelex.py.txt 我们可以简单地:

cat wotw.syms | python2 makelex.py > lexicons_text.fst
fstcompile --isymbols=ascii.syms --osymbols=wotw.syms lexicon_text.fst lexicon.fst
fstrmepsilon lexicon.fst | fstdeterminize | fstminimize >lexicon_opt.fst