Chu-LiuEdmonds算法之无环解析

本文详细介绍了Chu-Liu/Edmonds算法在无环解析中的应用,首先介绍了数据结构——Python嵌套字典,接着阐述了算法的两个关键步骤:移除进入根节点的弧和选择权重最大输入弧。博客主要关注无循环的依存树解析,并提供了代码示例和图形化解释。
摘要由CSDN通过智能技术生成

Chu-Liu/Edmonds算法之无环解析

本篇博客是进一步介绍Chu-Liu/Edmonds算法是如何实施的。

前期介绍

该实验用的数据结构是python的嵌套字典,形如:

graph = {‘root’: {‘w0’: 3, ‘w1’: 4, ‘w2’: 3}, ‘w0’: {‘root’: 9, ‘w1’: 30, ‘w2’: 11}, ‘w1’: {‘root’: 10, ‘w0’: 20, ‘w2’: 0}, ‘w2’: {‘root’: 9, ‘w0’: 3, ‘w1’: 30}}

其中外层字典的key值是依存对中的依赖项,内层字典的key值是依存对中的核心词,内层字典的value值是依存对的权重,也就是依存对成立的可能性的大小。Chu-Liu/Edmonds算法要做的就是为除了根节点以为的其他词找到核心词。该篇博客只谈没循环的依存树,之后再讲有循环的如何解析。

具体步骤

1、如果有进入根的弧,则将其全部丢弃;

这个步骤比较好处理,只有将字典中:’root’: {‘w0’: 3, ‘w1’: 4, ‘w2’: 3}这个部分删掉,就不存在进入根节点的弧了。

如下图,将红色弧去掉:
这里写图片描述
2、对于除根以外的每个节点,选择权重最大的输入弧,让所选的n-1个弧成为集合s

这一步写了一个循环,逐个比较内层字典的value值,选出最大的并且记录当前的key值,赋值给一个新图。

代码如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值