drmfinlay / pyjsgf

JSpeech Grammar Format (JSGF) compiler, matcher and parser package for Python.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Greedy match or optimal match?

sunfangxun opened this issue · comments

It seems the matching strategy is greedy instead of optimal.

For example:
grammar = Grammar()
play = AlternativeSet("play", "play the")
something = AlternativeSet("the game", "piano")
play_something = PublicRule("play_something", Sequence(play, something))
grammar.add_rules(play_something)
grammar.compile()

grammar.find_matching_rules("play the game") -- no matching
grammar.find_matching_rules("play the piano") -- matching

I think the sentance "play the game" should match the rule "play""the game".

Can you help to support it? Thanks.

@Danesprite

@sunfangxun Thanks for reporting this! I'll see if I can fix it soon.