2017-09-06 52 views
1

我嘗試了一個在Spacy網站https://spacy.io/docs/usage/dependency-parse上給出的解析示例,但是我的結果與網站上演示的結果不一樣,並且我的結果顯示不正確。我正在使用空間版本1.9.0,模型en_core_web_md和python版本3.5.2。該示例轉載如下:SpaCy結果與文檔不匹配

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 

但是,網站演示SA不同的輸出:讓span.merge給了我們一個短語

# 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和holders.rights.i不相同

此外,我打印名詞 - 原來的文檔對象的大塊:

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。請原諒,如果我錯過了一些明顯的事情。

+0

如果您的意思是它在演示中給出了不同的結果,那麼這是可能的。他們有幾個版本(雖然我不確定他們正在使用他們的網站)。 – lazary

回答

0

由於您正在使用模型en_core_web_md進行分析,因此您會看到不同之處。在他們的網站上,他們使用默認英文模式(en_core_web_sm)作爲依賴關係解析示例。查看this link查看模型的詳細列表。

您可以通過參考SpaCy model releases來了解使用哪種型號。該鏈接爲各種模型和NLP任務的測試語料庫提供準確性結果。