Python 空间实体规则合并/编辑实体?

Python 空间实体规则合并/编辑实体?,python,nlp,entity,spacy,lemmatization,Python,Nlp,Entity,Spacy,Lemmatization,我正在为一些NLP任务使用spacy,例如计算实体频率和PMI分数(组织实体和引理之间的关系排序)。我的语料库通常有各种排列的特定组织(例如,哈曼、哈曼、哈曼国际……),我希望始终被视为一个实体。这样,在计算频率时,它们都被视为一个组织实体,而不是单独的、唯一的实体 我相信spacy.pipeline.EntityRuler应该是编辑和更新spacy模块的方法,但我没有得到预期的结果。运行以下代码后,实体列表似乎不会得到更新。我仍然将组织的各种排列作为独特的实体返回 我不确定我在这一点上做错了什

我正在为一些NLP任务使用spacy,例如计算实体频率和PMI分数(组织实体和引理之间的关系排序)。我的语料库通常有各种排列的特定组织(例如,哈曼、哈曼、哈曼国际……),我希望始终被视为一个实体。这样,在计算频率时,它们都被视为一个组织实体,而不是单独的、唯一的实体

我相信spacy.pipeline.EntityRuler应该是编辑和更新spacy模块的方法,但我没有得到预期的结果。运行以下代码后,实体列表似乎不会得到更新。我仍然将组织的各种排列作为独特的实体返回

我不确定我在这一点上做错了什么,所以任何帮助都是感激的

多谢各位

代码:

(哈曼,辛诺夫,哈曼,领导区)

import spacy
from spacy.pipeline import EntityRuler

nlp = spacy.load('en_core_web_sm', disable = ['parser','tagger'])
ruler = EntityRuler(nlp, overwrite_ents = True) #replace entities that may exist with the following
patterns = [{"label": "ORG", "pattern": [{"TEXT":"HARMAN"}, {"TEXT":"International"}], "id": "harman"},
           {"label": "ORG", "pattern": [{"TEXT":"HARMAN"}], "id": "harman"},
           {"label": "ORG", "pattern": [{"TEXT":"Harman"}], "id": "harman"},
           {"label": "ORG", "pattern": [{"TEXT":"Harman"}, {"TEXT":"International"}], "id": "harman"}
           ] 
ruler.add_patterns(patterns)
nlp.add_pipe(ruler, before="ner")
corpus_nlp = [nlp(corpus['Body'][i]) for i in corpus.index]

corpus_nlp[49].ents