<p>依赖路径是一种描述子句如何在句子中构建的方法。斯帕西在他们的文档<a href="https://spacy.io/usage/linguistic-features" rel="nofollow noreferrer">here</a>中有一个很好的例子,句子<code>Apple is looking at buying U.K. startup for $1 billion.</code></p>
<p>请原谅我在这里没有很好的视觉效果,但是要通过你的例子:</p>
<p><code>A misty ridge uprises from the surge.</code></p>
<p>在spaCy中,我们按照他们的例子来获得依赖关系:</p>
<pre><code>import spacy
nlp = spacy.load('en_core_web_lg')
doc = nlp("A misty ridge uprises from the surge.")
for chunk in doc.noun_chunks:
print(chunk.text, chunk.root.text, chunk.root.dep_, chunk.root.head.text)
</code></pre>
<p>这将得到组成句子的“从句”。您的输出如下所示:</p>
^{pr2}$
<p><code>chunk.text</code>是构成依赖从句的文本(注意,根据句子结构可能会有重叠)。<code>root.text</code>给出依赖树的根(或头)。树的<code>head</code>是一个spaCy <code>token</code>对象,并且有子对象,您可以迭代这些子对象来检查依赖树上是否有其他标记。在</p>
^{3}$
<p>代码不是最漂亮的,但这是一种获取元组列表的方法,其中包含要检查的单词和相关的父标记。希望这对你有帮助</p>
<p>编辑:</p>
<p>为了更适合您的用例(并极大地简化了我最初的答案是什么):</p>
<pre><code># This will give you 'word':<spaCy doc object> key value lookup capability
tokens_lookup = {tok.text:tok for tok in doc}
if "misty" in tokens_lookup.get("ridge").children:
# Extra logic here
</code></pre>