spacy和displacy输出不同
我的句子是:She had another chemotherapy protocol history with 5-FU alone before this protocol without any significant side effects.
spacy和displacy输出不同
当我把这种在displacy(https://demos.explosion.ai/displacy/),输出含有作为名词短语对5-FU的参考。
然而,当我注解的文字和搜索名词块,我不显示5-FU作为名词块。
nlp = spacy.load('en') ax = nlp(mySentence) for w in ax.noun_chunks: print(w)
编辑 此外,当我搜索与下面的代码的标签,我出5-FU为NN。如果Spacy的注解理解这个单个单词作为一个被介词包围的名词,为什么不应该把这个单词当作一个名词短语呢? 最终编辑
我spacy版本:
我在做什么错? displaCy和我使用的版本之间有什么版本差异?有没有SpaCy帮助团队来解决这个问题?
非常感谢!
显示在显示分析树时进行一些预处理。这里是一个链接,通过displacy使用的解析服务(建立在spacy):在句子而不是把它们作为单独的令牌 https://github.com/explosion/spacy-services/blob/master/displacy/displacy_service/parse.py#L25
if collapse_phrases:
for np in list(self.doc.noun_chunks):
np.merge(np.root.tag_, np.root.lemma_, np.root.ent_type_)
Spacy merges名词块,这就是为什么你的输出是不同的。
另一个区别是您使用的models。 您可能正在使用最小的en_core_web_sm,而Spacy可能会使用较大的en_core_web_md(尽管它在任何地方都没有提及)
我正在尝试解决同样的问题。 DisplayCy和SpaCy输出不同(POS标签和单词之间的关系)。
它看起来不像预处理合并是责怪,因为你可以禁用DisplayCy - Settings> Collapse Phrases - 对我来说输出仍然不匹配。
这有可能是你需要使用en_core_web_md模型(不en_core_web_sm):
python -m spacy download en_core_web_md
但是我还没有测试过呢。
因为他们升级到V2.0 我面临类似的问题。然后我转移到V2.0 要安装模型,您必须使用--direct标志以全名下载它:
python -m spacy download en_core_web_sm-2.0.0-alpha --direct # English
python -m spacy download xx_ent_wiki_sm-2.0.0-alpha --direct # Multi-language NER
您可以通过调用spaCy的加载程序加载模型。例如nlp = spacy.load('en_core_web_sm')
,或将其作为模块(import en_core_web_sm
)导入并调用其load()方法,例如nlp = en_core_web_sm.load()
。
按照在 https://github.com/explosion/spaCy/releases/tag/v2.0.0-alpha
感谢文档。关于模型的信息是新的!然而,在我的Spacy版本中,我将5-FU视为一个NN,但它仍不能作为名词块。我正在更新我的原始问题。 – mejobhoot