【发布时间】:2021-07-13 12:27:01
【问题描述】:
我正在尝试使用适用于 Python 的赫尔辛基有限状态技术 (HFST) 设置有限状态传感器。
如果单词的第一个字符是“o”,则输出为“正”,并且如果同一个单词后面有字符,则使用正则表达式为每个字符输出空。
但我不只接受“o”。
e.g. "oa" = "positive" , empty
"aa" = 0
"o" = 0
到目前为止,我从 HFST 教程中得到了什么:
t = hfst.HfstBasicTransducer()
t.add_state(1)
t.add_state(2)
tr = hfst.HfstBasicTransition(1,"o","positive",0.0)
tr2 = hfst.regex("?:0")
t.add_transition(0,1,tr)
t.add_transition(1,2, tr2)
【问题讨论】:
-
如果您可以指定您观察到的输入和输出之间的映射与您期望的映射(您已经展示过)相比,那就太好了。
-
我不知道你所说的映射是什么意思,对不起。基本上我想观察的是语素。我的输出应该包含形态信息,我不知道我将如何呈现它,这就是为什么我暂时只使用任何输出。不知道这是否回答了你的问题。
-
您的预期映射:
"oa" -> "positive" + empty; "aa" -> "0"; "o" -> "0"; etc。这就是您在第一个代码片段中显示的内容。我很好奇您在使用代码时实际观察到的内容。 -
好的,这只是我需要的众多规则之一。你有一个以“o”开头的单词,然后输出“o”的形态信息,比如说
"NUM = Singular, PERSON = 1"。我们对这个词的以下字符不感兴趣,这就是为什么我假设我只为“o”后面的任何给定字符输出“空”。只有“o”必须与其他字符组合出现,并且必须位于首位。
标签: python transducer finite-state-automaton transducer-machines hfst