1

我正在尝试使用适用于 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)
4

1 回答 1

0

缺少的步骤是lookup()只会返回以最终状态结尾的路径,您可以使用transducer.set_final_weight(state, weight).

>>> import hfst
>>> t = hfst.HfstBasicTransducer()
>>> t.add_state(1)
1
>>> tr = hfst.HfstBasicTransition(1,'o', 'positive',0.0)
>>> t.add_transition(0,tr)
>>> t.set_final_weight(1,0.0)
>>> t.lookup('o')
{'o': [('positive', 0.0)]}
于 2021-10-13T23:11:26.177 回答