使用spaCy查找单词是否在两个实体的依赖路径上 - python

我正在研究一个nlp问题,给定一个带有两个实体的句子,我需要为每个单词生成一个布尔值,指示每个单词是否位于这些实体之间的依赖路径上。

例如:

'有雾的山脊从浪涌升起'

我想对每个单词进行迭代,并确定它是否在e1和e2之间的依赖路径上

两个重要注意事项:

-如果您想帮助我(首先感谢),请不要考虑使用和进行xml标记,我真的很感兴趣如何找到一个单词是否在任意两个给定单词之间的依赖路径上借助spaCy,我可以自己照顾哪些单词

-因为我不是nlp专家,所以我对“在依赖路径上”的含义感到困惑,并且很抱歉,如果不清楚的话(这些是我的导师使用的词)

提前致谢

python大神给出的解决方案

所以我的解决方案是使用that post找到的
有一个专门针对空间的答案
查找给定句子中两个单词之间的依存关系路径的实现:

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

输出:

['Ships', 'carrying', 'for', 'troops']

它的实际作用是首先为句子构建一个非定向图,其中单词是节点,单词之间的依存关系是边缘,然后找到两个节点之间的最短路径
对于我的需求,我只是检查每个单词是否在生成的依赖路径(最短路径)上

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

Python:同时在for循环中添加到列表列表 - python

我想用for循环外的0索引值创建一个新列表,然后使用for循环添加到相同的列表。我的玩具示例是:import random data = ['t1', 't2', 't3'] masterlist = [['col1', 'animal1', 'an…

查找字符串中的行数 - python

我正在创建一个python电影播放器​​/制作器,我想在多行字符串中找到行数。我想知道是否有任何内置函数或可以编写代码的函数来做到这一点:x = """ line1 line2 """ getLines(x) python大神给出的解决方案 如果换行符是'\n',则nlines …