Преобразователи Pushdown в пинини?

Меня интересует использование функциональности PDT в pynini, но я не могу найти по ней никакой хорошей документации. Я хотел бы сделать что-то вроде замены .с соответствующей закрывающей скобкой (так ({()..станет ({()})). Возможно ли что-то подобное?

Вот что у меня есть до сих пор:

      import pynini

text = '({()..'

fst = pynini.closure(
    pynini.cross('(', '(a') | pynini.cross(')', ')A') |
    pynini.cross('{', '{b') | pynini.cross('}', '}B') |
    pynini.cross('.', ')A') | pynini.cross('.', '}B'))

parens = pynini.PdtParentheses()
parens.add_pair(ord('a'), ord('A'))
parens.add_pair(ord('b'), ord('B'))


p = pynini.pdt_compose(text, fst, parens=parens, compose_filter='expand')

0 ответов

Другие вопросы по тегам