有人在HFST工作吗?(赫尔辛基有限状态技术)

2024-10-06 16:17:36 发布

您现在位置:Python中文网/ 问答频道 /正文

最近,我尝试使用HFST为Python设置一个有限状态转换器。 我想让传感器做的很简单。 如果一个单词的第一个字符是“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)

有人能帮我吗?或者给我举一些其他的例子。 我将非常感激


Tags: add状态传感器字符单词tremptyaa
1条回答
网友
1楼 · 发布于 2024-10-06 16:17:36

缺少的步骤是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)]}

相关问题 更多 >