微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

限制 LARK 中递归文法的深度

如何解决限制 LARK 中递归文法的深度

我正在使用 Lark 来解析语法:

start: np vp
pp: preposition+ np
sbar: sentence | conjunction sentence
np: terminalnounphrase | np pp | np sbar | QUOTE WORD* QUOTE
terminalnounphrase: determiner? adjp? noun
vp: advp? verb+ advp? | vp np | vp pp
adjp: adjective+
advp: adverb+
%ignore " "
%import .ambiguous_word (determiner,noun,verb,pronoun,conjunction,adjective,adverb,preposition)

首先,有没有办法鼓励 Lark 以 BFS 方式进行解析,更喜欢较浅的解析树而不是更深的解析树?

其次有没有办法限制语法递归的最大深度。 显然,我可以用正则表达式 token{from,to} 指定一个令牌的数量,但我可以用递归做类似的事情,说一堆 np 只能是 x 长?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。