是否可以获取 Spacy 中实体的 dependency/pos 信息?

Is possible to get dependency/pos information for entities in Spacy?

我正在研究从科学文本中提取实体(我正在使用 scispacy),稍后我会想使用手写规则来提取关系。我已经成功地提取了实体和它们的字符跨度,而且我还可以获得标记和名词块的 pos 和依赖标签。所以两个任务分开我觉得很舒服,但是我想把两个放在一起也卡了一段时间

我的想法是我希望能够编写如下规则:(只是一个例子)如果在 sentence/clause 中有两个实体,其中第一个是 'DRUG/CHEMICAL' + 是subject,第二个是 'DISEASE' + 是 object --> (then) infer 'treatment'两者的关系。

如果有人对如何完成此任务有任何提示,我将不胜感激。谢谢!

S.

我正在做什么以提取实体

doc = nlp(text-with-more-than-one-sent)

for ent in doc.ents:

`... (get information about the ent e.g. its character span)`

获取依赖信息(对于名词块和标记):

for chunk in doc.noun_chunks:

print(f"Text: {chunk.text}, Root text: {chunk.root.text}, Root dep: {chunk.root.dep_}, Root head text: {chunk.root.head.text}, POS: {chunk.root.head.pos_}")

_

for token in doc:

print(f"Text: {token.text}, DEP label: {token.dep_}, Head text: {token.head.text}, Head POS: {token.head.pos_}, Children: {[child for child in token.children]}")

您可以使用 merge_entities mini-component 将实体转换为单个标记,这将简化您尝试做的事情。还有一个组件可以类似地合并名词块。