Welcome to mirror list, hosted at ThFree Co, Russian Federation.

test_ud_enhancer.py « tests « stanza - github.com/stanfordnlp/stanza.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f67cf5d40d4ac7690115d6e7c6f5ede98d1301a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pytest
import stanza
from stanza.tests import *

from stanza.models.common.doc import Document
import stanza.server.ud_enhancer as ud_enhancer

pytestmark = [pytest.mark.pipeline]

def check_edges(graph, source, target, num, isExtra=None):
    edges = [edge for edge in graph.edge if edge.source == source and edge.target == target]
    assert len(edges) == num
    if num == 1:
        assert edges[0].isExtra == isExtra

def test_one_sentence():
    nlp = stanza.Pipeline(dir=TEST_MODELS_DIR, processors="tokenize,pos,lemma,depparse")
    doc = nlp("This is the car that I bought")
    result = ud_enhancer.process_doc(doc, language="en", pronouns_pattern=None)

    assert len(result.sentence) == 1
    sentence = result.sentence[0]

    basic = sentence.basicDependencies
    assert len(basic.node) == 7
    assert len(basic.edge) == 6
    check_edges(basic, 4, 7, 1, False)
    check_edges(basic, 7, 4, 0)

    enhanced = sentence.enhancedDependencies
    assert len(enhanced.node) == 7
    assert len(enhanced.edge) == 7
    check_edges(enhanced, 4, 7, 1, False)
    # this is the new edge
    check_edges(enhanced, 7, 4, 1, True)