From 9115c3ba0a7f2612f5a1ac550d25cc565fb86814 Mon Sep 17 00:00:00 2001 From: Matthew Honnibal Date: Mon, 12 Feb 2018 12:06:48 +0100 Subject: [PATCH] Add TODO in notes --- spacy/_matcher2_notes.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/spacy/_matcher2_notes.py b/spacy/_matcher2_notes.py index 56fd4ca15..1cf151ea0 100644 --- a/spacy/_matcher2_notes.py +++ b/spacy/_matcher2_notes.py @@ -37,10 +37,11 @@ def transition(state, token, matches, nexts): start = token.i if is_match: matches.append((pattern, start, token.i+1)) - if keep_state: - nexts.append((pattern, i, start)) if advance_state: nexts.append((pattern, i+1, start)) + if keep_state: + # TODO: This needs to be zero-width :(. + nexts.append((pattern, i, start)) return (matches, nexts) @@ -92,7 +93,7 @@ def get_action(state, token): elif is_match: return '011' else: - return '010' + return '001' else: print(operator, is_match, is_final) raise ValueError @@ -245,7 +246,7 @@ def test_find_matches_greedy(): assert matches == [(patterns[0], 0, 1), (patterns[0], 0, 2), (patterns[0], 1, 2)] def test_find_matches_non_greedy(): - patterns = [[{'spec': 'a', 'op': '0+'}, {'spec': 'b'}]] + patterns = [[{'spec': 'a', 'op': '0+'}, {'spec': 'b', "op": "1"}]] doc = Doc(Vocab(), words=['b']) matches = find_matches(patterns, doc) assert matches == [(patterns[0], 0, 1)]