import spacy
nlp = spacy.load('en')
sent = "Modi is a great leader.He has made India proud. Rahul Gandhi is naive . He is not fit to be prime minister."
doc=nlp(sent)
sub_toks = [tok for tok in doc if ((tok.dep_ == "nsubj") )]
print(sub_toks)
nc= [x for x in doc.noun_chunks]
print(nc)
l=[]
for i,token in enumerate(doc):
if token.pos_ in ('PROPN','PRON'):
l.append([token.text,i,token.pos_])
在NLP中,它被称为共参考解析。python中有一个名为neuralcoref的包。git。在
一般来说,大多数启发式应用程序在给定堆栈中使用某种焦点。堆栈是一个实体的列表,这些实体可能被引用回指(回指解析是您在这里触及的主题)。这张表包含了名词、代词和事件等抽象实体,撇开抽象回指不谈,抽象回指是其中最复杂的应用领域,检查焦点(最新的或最突出的)中的候选对象和堆栈中最近向后的其余部分的一致性(在人称和数字上的语法一致性),以便匹配最佳。别忘了更新堆栈,也就是删除未在后续引用的实体。 结果不好是很正常的,因为这仍然是一个活跃的研究领域,没有应用程序可以给你完美的回忆和精确性。如果你得到70%的正确率,你已经可以算是成功了。在
如果需要更高的精度,可以尝试找到一个关于回指解析的语料库来训练机器学习模型。今天它更受欢迎和有希望,特别是当学习像上面这样的老的启发式方法时。在
我正在研究类似的问题,它与tweets有关。person包含多个人称引用,我需要找到哪个代词代表who,这样我就可以用名词替换它,从而对情感进行相应的分类。在
这给了我一个想要的细节列表,但是我仍然需要找到一种方法来实现我的想法,因为我有超过5万条tweet,每个句子都有多个循环需要很长时间。在
相关问题 更多 >
编程相关推荐