寻找coref实例Spacy和Neu中涉及的特定令牌

2024-04-25 19:53:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种合适的方法来寻找在我所看到的一些文档中,特定代词在指代实例中被使用的实例。一个是我的记忆有问题,这让我觉得我没有用一种非常经济的方式来做,但我也不确定我是否以正确的方式去做。我们的想法是识别它的所有实例,以及它们目前在共指代实例中的实例,但是我可能想扩展一下。然后我想继续用共指代这个词替换所有这些实例。在

目前我的代码如下:

import spacy
import neuralcoref
import en_coref_md
import os

nlp_en = en_coref_md.load()
path = './input_zenodo/'
filelist = os.listdir(path)

for file in filelist:
    try:
        file = open(path+file).read()
        doc = nlp_en(file)
        is_pronoun = 'it' 
    except MemoryError:
        print('MemoryError:'+file+'\n')  

    for token in doc:
        if token.text == is_pronoun:
                print(token._.in_coref)
                print(token._.coref_clusters)

如果有人能给我一些建议,说明如何更经济地完成这项工作,或者建议如何在一个文档中只替换这些共指集群,我将不胜感激。在


Tags: path实例in文档importtokenos方式
1条回答
网友
1楼 · 发布于 2024-04-25 19:53:36

如果您只想将每个引用替换为其头部,neuralcoref中有一个内置的coref_resolved属性:

import spacy
nlp = spacy.load('en_coref_lg')
text = "Rufus is my dog. He is a good boy."
doc = nlp(text)

print(doc._.coref_resolved)

退货

^{pr2}$

实现它的代码是here,如果您真的只想解析代词,而不是所有的coref,那么这里似乎是修改它的地方。在

相关问题 更多 >

    热门问题