コード例 #1
0
def test_own_terminology():
    nlp = spacy.load("en_core_web_sm")
    negex = Negex(nlp, termination=["whatever"])
    nlp.add_pipe(negex, last=True)
    doc = nlp(
        "He does not like Steve Jobs whatever he says about Barack Obama.")
    assert doc.ents[1]._.negex == False
コード例 #2
0
def test_issue7():
    nlp = spacy.load("en_core_web_sm")
    negex = Negex(nlp)
    nlp.add_pipe(negex, last=True)
    ruler = EntityRuler(nlp)
    patterns = [{"label": "SOFTWARE", "pattern": "spacy"}]
    doc = nlp("fgfgdghgdh")
コード例 #3
0
def test_own_terminology():
    nlp = spacy.load("pt_core_news_sm")
    negex = Negex(nlp, language="pt", termination=["por causa do que"])
    nlp.add_pipe(negex, last=True)
    doc = nlp(
        "Ele não gosta do que Steve Jobs por causa do que diz sobre Barack Obama."
    )
    assert doc.ents[1]._.negex == False
コード例 #4
0
def test_umls():
    nlp = spacy.load("en_core_sci_sm")
    negex = Negex(nlp, ent_types=["ENTITY"])
    nlp.add_pipe(negex, last=True)
    docs = build_med_docs()
    for d in docs:
        doc = nlp(d[0])
        for i, e in enumerate(doc.ents):
            assert (e.text, e._.negex) == d[1][i]
コード例 #5
0
def test():
    nlp = spacy.load("en_core_web_sm")
    negex = Negex(nlp)
    nlp.add_pipe(negex, last=True)
    docs = build_docs()
    for d in docs:
        doc = nlp(d[0])
        for i, e in enumerate(doc.ents):
            assert (e.text, e._.negex) == d[1][i]
コード例 #6
0
def test_pt():
    nlp = spacy.load("pt_core_news_sm")
    negex = Negex(nlp, language="en")
    nlp.add_pipe(negex, last=True)
    docs = build_docs()
    for d in docs:
        doc = nlp(d[0])
        for i, e in enumerate(doc.ents):
            print(e.text, e._.negex)
            assert (e.text, e._.negex) == d[1][i]
コード例 #7
0
ファイル: test.py プロジェクト: othijssens/negspacy
def test_umls2():
    nlp = spacy.load("en_core_sci_sm")
    negex = Negex(
        nlp, language="en_clinical_sensitive", ent_types=["ENTITY"], chunk_prefix=["no"]
    )
    nlp.add_pipe(negex, last=True)
    docs = build_med_docs()
    for d in docs:
        doc = nlp(d[0])
        for i, e in enumerate(doc.ents):
            print(e.text, e._.negex)
            assert (e.text, e._.negex) == d[1][i]
コード例 #8
0
def test_issue_14():
    nlp = spacy.load("en_core_sci_sm")
    negex = Negex(nlp,
                  language="en_clinical",
                  chunk_prefix=["no", "cancer free"])
    negex.remove_patterns(following_negations="free")
    nlp.add_pipe(negex, last=True)
    print(negex.get_patterns())

    doc = nlp("The patient has a cancer free diagnosis")
    expected = [False, True]
    for i, e in enumerate(doc.ents):
        print(e.text, e._.negex)
        assert e._.negex == expected[i]

    nlp.remove_pipe("Negex")
    negex = Negex(nlp, language="en_clinical", chunk_prefix=["no", "free"])
    nlp.add_pipe(negex, last=True)
    doc = nlp("The patient has a cancer free diagnosis")
    expected = [False, False]
    for i, e in enumerate(doc.ents):
        print(e.text, e._.negex)
        assert e._.negex == expected[i]
コード例 #9
0
def test_get_patterns():
    nlp = spacy.load("en_core_web_sm")
    negex = Negex(nlp)
    patterns = negex.get_patterns()
    assert type(patterns) == dict
    assert len(patterns) == 4
コード例 #10
0
def test_add_remove_patterns():
    nlp = spacy.load("en_core_web_sm")
    negex = Negex(nlp)
    patterns = negex.get_patterns()
    negex.add_patterns(
        pseudo_negations=["my favorite pattern"],
        termination=["these are", "great patterns"],
        preceding_negations=["wow a negation"],
        following_negations=["extra negation"],
    )
    patterns_after = negex.get_patterns()
    print(patterns_after)
    print(len(patterns_after["pseudo_patterns"]))
    assert len(patterns_after["pseudo_patterns"]) - 1 == len(
        patterns["pseudo_patterns"])
    assert len(patterns_after["termination_patterns"]) - 2 == len(
        patterns["termination_patterns"])
    assert len(patterns_after["preceding_patterns"]) - 1 == len(
        patterns["preceding_patterns"])
    assert len(patterns_after["following_patterns"]) - 1 == len(
        patterns["following_patterns"])

    negex.remove_patterns(
        termination=["these are", "great patterns"],
        pseudo_negations=["my favorite pattern"],
        preceding_negations="denied",
        following_negations=["unlikely"],
    )
    negex.remove_patterns(termination="but")
    negex.remove_patterns(preceding_negations="wow a negation",
                          following_negations="extra negation")
    patterns_after = negex.get_patterns()
    assert (len(patterns_after["termination_patterns"]) == len(
        patterns["termination_patterns"]) - 1)
    assert (len(patterns_after["following_patterns"]) == len(
        patterns["following_patterns"]) - 1)
    assert (len(patterns_after["preceding_patterns"]) == len(
        patterns["preceding_patterns"]) - 1)
    assert len(patterns_after["pseudo_patterns"]) == len(
        patterns["pseudo_patterns"])
コード例 #11
0
def test_get_patterns():
    nlp = spacy.load("pt_core_news_sm")
    negex = Negex(nlp, language="pt")
    patterns = negex.get_patterns()
    assert type(patterns) == dict
    assert len(patterns) == 4