mirror of
https://github.com/explosion/spaCy.git
synced 2024-11-14 05:37:03 +03:00
Allow passing a Span to displacy.parse_deps (#12477)
* Allow passing a Span to displacy.parse_deps * Update docstring Co-authored-by: Adriane Boyd <adrianeboyd@gmail.com> * Update API docs --------- Co-authored-by: Adriane Boyd <adrianeboyd@gmail.com>
This commit is contained in:
parent
d85df9d577
commit
ce258670b7
|
@ -125,13 +125,17 @@ def app(environ, start_response):
|
||||||
return [res]
|
return [res]
|
||||||
|
|
||||||
|
|
||||||
def parse_deps(orig_doc: Doc, options: Dict[str, Any] = {}) -> Dict[str, Any]:
|
def parse_deps(
|
||||||
|
orig_doc: Union[Doc, Span], options: Dict[str, Any] = {}
|
||||||
|
) -> Dict[str, Any]:
|
||||||
"""Generate dependency parse in {'words': [], 'arcs': []} format.
|
"""Generate dependency parse in {'words': [], 'arcs': []} format.
|
||||||
|
|
||||||
orig_doc (Doc): Document to parse.
|
orig_doc (Union[Doc, Span]): Document to parse.
|
||||||
options (Dict[str, Any]): Dependency parse specific visualisation options.
|
options (Dict[str, Any]): Dependency parse specific visualisation options.
|
||||||
RETURNS (dict): Generated dependency parse keyed by words and arcs.
|
RETURNS (dict): Generated dependency parse keyed by words and arcs.
|
||||||
"""
|
"""
|
||||||
|
if isinstance(orig_doc, Span):
|
||||||
|
orig_doc = orig_doc.as_doc()
|
||||||
doc = Doc(orig_doc.vocab).from_bytes(
|
doc = Doc(orig_doc.vocab).from_bytes(
|
||||||
orig_doc.to_bytes(exclude=["user_data", "user_hooks"])
|
orig_doc.to_bytes(exclude=["user_data", "user_hooks"])
|
||||||
)
|
)
|
||||||
|
|
|
@ -275,6 +275,20 @@ def test_displacy_parse_deps(en_vocab):
|
||||||
{"start": 2, "end": 3, "label": "det", "dir": "left"},
|
{"start": 2, "end": 3, "label": "det", "dir": "left"},
|
||||||
{"start": 1, "end": 3, "label": "attr", "dir": "right"},
|
{"start": 1, "end": 3, "label": "attr", "dir": "right"},
|
||||||
]
|
]
|
||||||
|
# Test that displacy.parse_deps converts Span to Doc
|
||||||
|
deps = displacy.parse_deps(doc[:])
|
||||||
|
assert isinstance(deps, dict)
|
||||||
|
assert deps["words"] == [
|
||||||
|
{"lemma": None, "text": words[0], "tag": pos[0]},
|
||||||
|
{"lemma": None, "text": words[1], "tag": pos[1]},
|
||||||
|
{"lemma": None, "text": words[2], "tag": pos[2]},
|
||||||
|
{"lemma": None, "text": words[3], "tag": pos[3]},
|
||||||
|
]
|
||||||
|
assert deps["arcs"] == [
|
||||||
|
{"start": 0, "end": 1, "label": "nsubj", "dir": "left"},
|
||||||
|
{"start": 2, "end": 3, "label": "det", "dir": "left"},
|
||||||
|
{"start": 1, "end": 3, "label": "attr", "dir": "right"},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def test_displacy_invalid_arcs():
|
def test_displacy_invalid_arcs():
|
||||||
|
|
|
@ -291,7 +291,7 @@ the `manual=True` argument in `displacy.render`.
|
||||||
|
|
||||||
| Name | Description |
|
| Name | Description |
|
||||||
| ----------- | ------------------------------------------------------------------- |
|
| ----------- | ------------------------------------------------------------------- |
|
||||||
| `orig_doc` | Doc to parse dependencies. ~~Doc~~ |
|
| `orig_doc` | Doc or span to parse dependencies. ~~Union[Doc, Span]~~ |
|
||||||
| `options` | Dependency parse specific visualisation options. ~~Dict[str, Any]~~ |
|
| `options` | Dependency parse specific visualisation options. ~~Dict[str, Any]~~ |
|
||||||
| **RETURNS** | Generated dependency parse keyed by words and arcs. ~~dict~~ |
|
| **RETURNS** | Generated dependency parse keyed by words and arcs. ~~dict~~ |
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user