У меня есть преобразователь, сохраненный в виде файла DOT. Я могу увидеть графическое представление графиков с помощью gvedit, но что, если я хочу преобразовать файл DOT в исполняемый преобразователь, чтобы я мог протестировать преобразователь и посмотреть, какие строки он принимает, а какие нет.
В большинстве инструментов, которые я видел в Openfst, Graphviz и их расширениях Python, файлы DOT используются только для создания графического представления, но что, если я хочу проанализировать файл, чтобы получить интерактивную программу, в которой я могу проверить строки на соответствие? преобразователь?
Существуют ли какие-либо библиотеки, которые выполнят эту задачу, или я должен просто написать ее с нуля?
Как я уже сказал, файл DOT связан с разработанным мной преобразователем, который имитирует морфологию английского языка. Это огромный файл, но чтобы дать вам представление о том, на что он похож, я привожу образец. Допустим, я хочу создать преобразователь, который моделировал бы поведение английского языка в отношении существительных и с точки зрения множественности. Мой лексикон состоит всего из трех слов (книга, мальчик, девочка). Мой преобразователь в этом случае будет выглядеть примерно так:
который создается непосредственно из этого файла DOT:
digraph A {
rankdir = LR;
node [shape=circle,style=filled] 0
node [shape=circle,style=filled] 1
node [shape=circle,style=filled] 2
node [shape=circle,style=filled] 3
node [shape=circle,style=filled] 4
node [shape=circle,style=filled] 5
node [shape=circle,style=filled] 6
node [shape=circle,style=filled] 7
node [shape=circle,style=filled] 8
node [shape=circle,style=filled] 9
node [shape=doublecircle,style=filled] 10
0 -> 4 [label="g "];
0 -> 1 [label="b "];
1 -> 2 [label="o "];
2 -> 7 [label="y "];
2 -> 3 [label="o "];
3 -> 7 [label="k "];
4 -> 5 [label="i "];
5 -> 6 [label="r "];
6 -> 7 [label="l "];
7 -> 9 [label="<+N:s> "];
7 -> 8 [label="<+N:0> "];
8 -> 10 [label="<+Sg:0> "];
9 -> 10 [label="<+Pl:0> "];
}
Теперь проверка этого преобразователя на слова означает, что если вы накормите его book+Pl
, он должен выплюнуть books
, и наоборот. Я хотел бы посмотреть, как можно преобразовать точечный файл в формат, позволяющий проводить такой анализ и тестирование.