gpt4 book ai didi

python - 如何在negspacy中提取特定单词

转载 作者:行者123 更新时间:2023-12-04 09:15:50 30 4
gpt4 key购买 nike

当我将 negspacy 应用于我的句子时,我希望 negspacy 将特定短语视为单个实体并为其提供输出。

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
我能做些什么来解决这个问题

最佳答案

您可能很高兴知道解决您的问题的方法非常简单。您只是缺少关键字参数 overwrite_ents=TrueEntityRuler构造函数,因此您添加的自定义模式正在被其他实体覆盖。只是改变:

ruler = EntityRuler(nlp)

ruler = EntityRuler(nlp, overwrite_ents=True)
现在,我的输出是:
patient False
shortness of breath True

关于python - 如何在negspacy中提取特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63222569/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com