【发布时间】:2017-09-19 06:38:07
【问题描述】:
我尝试了 Spacy 网站https://spacy.io/docs/usage/dependency-parse 上给出的解析示例,但我的结果与网站上演示的不一样,我的结果似乎不正确。我正在使用 spacy 版本 1.9.0、模型 en_core_web_md 和 python 版本 3.5.2。示例转载如下:
from spacy.symbols import nsubj
doc = nlp(u'Credit and mortgage account holders must submit their requests.')
holders = doc[4]
span = doc[holders.left_edge.i : holders.right_edge.i + 1]
span.merge()
span.merge() 的输出是
holders
然后继续示例:
for word in doc:
print(word.text, word.pos_, word.dep_, word.head.text)
输出是
Credit NOUN npadvmod submit
and CCONJ cc Credit
mortgage NOUN compound account
account NOUN conj Credit
holders NOUN nsubj submit
must VERB aux submit
submit VERB ROOT submit
their ADJ poss requests
requests NOUN dobj submit
. PUNCT punct submit
但是,该网站展示了不同的输出:
# Credit and mortgage account holders nsubj NOUN submit
# must VERB aux submit
# submit VERB ROOT submit
# their DET det requests
# requests NOUN dobj submit
在预期结果中,holders.lefts.i 和 holder.rights.i 不相同,因此 span.merge 给了我们一个短语
此外,我打印原始 Doc 对象的名词块:
doc = nlp(u'Credit and mortgage account holders must submit their requests.')
for nchunk in list(doc.noun_chunks):
print(nchunk)
给了
holders
their requests
我是 spacy 和 NLP 的新手。如果我遗漏了一些明显的东西,请原谅。
【问题讨论】:
-
如果您的意思是它在他们的演示中给出了不同的结果,这是可能的。他们有几个版本(虽然我不确定他们在他们的网站上使用的是哪个版本)。