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.