Exemple #1
0
def is_neg_graph2(graph, begin, end):
    """
    Return True if the sentence is like "without [begin, end]"

    """

    # without n [, n]
    state = 0
    # sort nodes
    for node in sorted(graph.nodes(), key=lambda n: graph.node[n]['start']):
        if graph.node[node]['end'] > end:
            break

        if state == 0:
            if graph.node[node]['lemma'] in ('without', 'no', 'resolve',
                                             'resolution', 'rosolution'):
                state = 1
        elif state == 1:
            if graph.node[node]['tag'].startswith('N'):
                state = 1
                if utils.intersect(
                    (begin, end),
                    (graph.node[node]['start'], graph.node[node]['end'])):
                    return True
            elif graph.node[node]['tag'] in ('JJ', 'CC', ',', 'VBN'):
                state = 1
            else:
                return False
    return False
Exemple #2
0
def test_intersect():
    assert intersect((0, 1), (.5, .9))
    assert not intersect((0, 1), (-1, 0))
    assert intersect((0, 1), (-1, .1))
    assert not intersect((0, 1), (1, 2))
    assert intersect((0, 1), (.9, 2))
    assert intersect((.5, .9), (0, 1))
Exemple #3
0
def find_nodes(graph, begin, end):
    for node in graph.nodes():
        if utils.intersect(
            (begin, end),
            (graph.node[node]['start'], graph.node[node]['end'])):
            yield node
Exemple #4
0
def find_nodes(graph, begin, end):
    for node in graph.nodes():
        node_start = graph.nodes[node]['start']
        node_end = graph.nodes[node]['end']
        if utils.intersect((begin, end), (node_start, node_end)):
            yield node