как извлечь определенные c слов в пустое пространство - PullRequest
0 голосов
/ 03 августа 2020

Когда я применяю negspacy к моему предложению, я хочу, чтобы negspacy рассматривал определенную c фразу как единое целое и давал мне вывод для него.

import en_core_sci_lg
from negspacy.negation import Negex
nlp = en_core_sci_lg.load()

negex = Negex(nlp, language = "en_clinical_sensitive")
nlp.add_pipe(negex, last=True)

doc = nlp(""" patient has no signs of shortness of breath. """)

for word in doc.ents:
    print(word, word._.negex)

Результат -

patient False
shortness True

Я хочу, чтобы результат был -

patient False
shortness of breath True

Как я могу рассматривать такие фразы, как «одышка», «боль в горле», «респираторный дистресс» как единое целое.

Я пробовал -

import en_core_sci_lg
from negspacy.negation import Negex
nlp = en_core_sci_lg.load()
from spacy.pipeline import EntityRuler
ruler = EntityRuler(nlp)
patterns =  [{"label": "ENTITY", "pattern": [{"LOWER": "shortness"}, {"LOWER": "of"}, {"LOWER": "breath"}]}]

ruler.add_patterns(patterns)
nlp.add_pipe(ruler)
negex = Negex(nlp, language = "en_clinical")
nlp.add_pipe(negex, last=True)

doc = nlp("""patient has no signs of shortness of breath. """)

for word in doc.ents:
    print(word, word._.negex)

Результат все еще идет -

patient False
shortness True

Что я могу сделать, чтобы решить эту проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...