【发布时间】:2015-02-04 05:08:18
【问题描述】:
我有一个以 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,反之亦然。我想看看如何将点文件转换为允许进行此类分析和测试的格式。
【问题讨论】:
-
我们有机会看到 .dot 文件吗?
-
一个 DOT 文件表示一个由节点和边组成的图。我猜节点是输入或输出点,两个节点之间的边代表运输。如果您显示 .dot 文件,您可能会获得更多有用的评论和/或答案。
-
我刚刚更新并添加了一个示例。
标签: python parsing dot morphological-analysis transducer