擅长:python、mysql、java
<p>所以我的解决方案是用<a href="https://stackoverflow.com/questions/32835291/how-to-find-the-shortest-dependency-path-between-two-words-in-python?rq=1">that post</a>找到的</p>
<p>有一个答案专门针对空间</p>
<p>我的<strong>在给定句子中查找两个单词之间的依赖路径的实现</strong>:</p>
<pre><code>import networkx as nx
import spacy
enter code here
doc = nlp("Ships carrying equipment for US troops are already waiting off the Turkish coast")
def shortest_dependency_path(doc, e1=None, e2=None):
edges = []
for token in doc:
for child in token.children:
edges.append(('{0}'.format(token),
'{0}'.format(child)))
graph = nx.Graph(edges)
try:
shortest_path = nx.shortest_path(graph, source=e1, target=e2)
except nx.NetworkXNoPath:
shortest_path = []
return shortest_path
print(shortest_dependency_path(doc,'Ships','troops'))
</code></pre>
<p>输出:</p>
^{pr2}$
<p>它实际做的是先为单词为节点,单词之间的依赖关系为边的句子建立一个无向图,然后找出两个节点之间的最短路径</p>
<p>为了我的需要,我只需检查每个单词是否在生成的依赖路径(最短路径)上</p>