mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 01:48:04 +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