spaCy/spacy/tests/matcher
Adriane Boyd 960d9cfadc Officially support DependencyMatcher
Add official support for the `DependencyMatcher`. Redesign the pattern
specification. Fix and extend operator implementations. Update API docs
and add usage docs.

Patterns
--------

Refactor pattern structure to:

```
{
  "LEFT_ID": str,
  "REL_OP": str,
  "RIGHT_ID": str,
  "RIGHT_ATTRS": dict,
}
```

The first node contains only `RIGHT_ID` and `RIGHT_ATTRS` and all
subsequent nodes contain all four keys.

New operators
-------------

Because of the way patterns are constructed from left to right, it's
helpful to have `follows` operators along with `precedes` operators. Add
operators for simple precedes / follows alongside immediate precedes /
follows.

* `.*`: precedes
* `;`: immediately follows
* `;*`: follows

Operator fixes
--------------

* `<` and `<<` do not include the node itself
* Fix reversed order for all operators involving linear precedence (`.`,
  all sibling operators)
* Linear precedence operators do not match nodes outside the same parse

Additional fixes
----------------

* Use v3 Matcher API
* Support `get` and `remove`
* Support pickling
2020-09-02 17:45:29 +02:00
..
__init__.py Revert #4334 2019-09-29 17:32:12 +02:00
test_dependency_matcher.py Officially support DependencyMatcher 2020-09-02 17:45:29 +02:00
test_matcher_api.py Officially support DependencyMatcher 2020-09-02 17:45:29 +02:00
test_matcher_logic.py Tidy up and auto-format 2020-08-05 16:00:59 +02:00
test_pattern_validation.py Merge branch 'master' into tmp/sync 2020-03-26 13:38:14 +01:00
test_phrase_matcher.py Deprecate (Phrase)Matcher.pipe 2020-08-31 17:01:24 +02:00