【发布时间】:2014-07-17 19:16:09
【问题描述】:
JSpeech Grammar Format 允许用户在花括号中为单独的字符串指定标签,如下所示:
<jump> = jump { primitive jump } [up] |
jump [to the] (left { primitive jump_left } |right { primitive jump_right } );
或
<effects> = nothing happens { NOTHING_HAPPENS } | ( [will] die | dies ) { OBJECT_DESTRUCTION } | (get|gets) new (coin|coins) { COIN_INCREASE };
引用的specification 的第 4.6.1 节更详细地描述了使用标签。
在 Sphinx4 中,您可以使用 RuleParse 中的getTags() 方法捕获这些标签。所以如果用户说“jump to left”下面的标签将被返回“primitive jump_left”
现在,我想做完全相反的事情——给定标签,我想将它与字符串匹配。因此,对于“NOTHING_HAPPENS”,我想得到“什么都没有发生”,或者对于“OBJECT_DESTRUCTION”,我想得到一个包含所有可能选项的数组:“会死,死,死”。
有没有这样的方法可以解析语法文件,还是我必须硬编码?
【问题讨论】:
标签: java grammar context-free-language