Esempio n. 1
0
def test_rules_multiple():
    """Can we apply rules to multiple sentences at once"""
    _check_jena()
    triples_single = set()
    for sid in {t["sentence"] for t in TEST_SAF["tokens"]}:
        t = SyntaxTree(TEST_SAF, sentence_id=sid)
        t.apply_ruleset(TEST_RULES)
        triples_single |= set((s.id, p, o.id) for (s, p, o) in t.get_triples())

    t = SyntaxTree(TEST_SAF)
    t.apply_ruleset(TEST_RULES)
    triples_all = set((s.id, p, o.id) for (s, p, o) in t.get_triples())

    assert_equal(triples_single, triples_all)
Esempio n. 2
0
def test_load():
    _check_jena()
    t = SyntaxTree(TEST_SAF, sentence_id=2)
    triples = list(t.get_triples())
    assert_equal(len(triples), 1)
    assert_equal(triples[0].predicate, "rel_nsubj")
    assert_equal(triples[0].subject.lemma, "it")
    assert_equal(triples[0].object.lemma, "rain")
Esempio n. 3
0
def test_rules():
    _check_jena()
    t = SyntaxTree(TEST_SAF, sentence_id=1)
    t.apply_ruleset(TEST_RULES)
    triples = [tr for tr in t.get_triples() if tr.predicate == "marry"]

    assert_equal(len(triples), 1)
    assert_equal(triples[0].subject.lemma, "John")
    assert_equal(triples[0].object.lemma, "Mary")