2017-09-06 3 views
1

Ich habe ein Beispiel für Parsing auf der Spacy Website https://spacy.io/docs/usage/dependency-parse versucht, aber meine Ergebnisse sind nicht das gleiche wie auf der Website gezeigt, und meine Ergebnisse erscheinen inkorrekt. Ich verwende spacy Version 1.9.0, Modell en_core_web_md und Python Version 3.5.2. Das Beispiel wird im Folgenden wiedergegeben:SpaCy Ergebnisse nicht übereinstimmende Dokumentation

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() 

Der Ausgang des span.merge() wird

holders 

Dann mit dem Beispiel fort:

for word in doc: 
    print(word.text, word.pos_, word.dep_, word.head.text) 

Und der Ausgang ist

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 

Allerdings die Website demonstrieren sa verschiedene Ausgabe:

# Credit and mortgage account holders nsubj NOUN submit 
# must VERB aux submit 
# submit VERB ROOT submit 
# their DET det requests 
# requests NOUN dobj submit 

In dem erwarteten Ergebnis holders.lefts.i und holders.rights.i sind nicht identisch, so dass span.merge uns gibt einen Satz

Ferner ich das Nomen drucken Stücke des ursprünglichen Doc-Objekt:

doc = nlp(u'Credit and mortgage account holders must submit their requests.') 
for nchunk in list(doc.noun_chunks): 
    print(nchunk) 

die

holders 
their requests 

ich bin brandneue spacigen gibt und NLP. Bitte entschuldigen Sie, wenn ich etwas Offensichtliches verpasst habe.

+0

Wenn Sie meinen, dass es verschiedene Ergebnisse auf ihrer Demo gab, ist es möglich. Sie haben mehrere Versionen (obwohl ich nicht sicher bin, welche genau sie auf ihrer Website verwenden). – lazary

Antwort

0

Sie sehen den Unterschied, weil Sie Modell en_core_web_md für Parsing verwenden. Auf ihrer Website haben sie Standard-Englisch-Modell (en_core_web_sm) für Abhängigkeit Parse-Beispiel verwendet. Eine detaillierte Liste der Modelle finden Sie unter this link.

Sie können eine fundierte Entscheidung über das zu verwendende Modell treffen, indem Sie sich auf SpaCy model releases beziehen. Dieser Link liefert Genauigkeitsergebnisse für Testkörper für verschiedene Modelle und NLP-Aufgaben.