特征结构处理与基于特征的语法扩展
1. 特征结构的包含与合一
特征结构通常被视为提供关于某个对象的部分信息,我们可以根据特征结构的泛化程度对其进行排序。例如:
- [NUMBER = 74] 比 [NUMBER = 74, STREET = 'rue Pascal'] 更具泛化性(更不具体)。
- [NUMBER = 74, STREET = 'rue Pascal'] 又比 [NUMBER = 74, STREET = 'rue Pascal', CITY = 'Paris'] 更具泛化性。
这种排序关系被称为包含(subsumption),更具泛化性的特征结构包含较不泛化的特征结构。如果 FS0 包含 FS1(形式上写作 FS0 ⊑ FS1),那么 FS1 必须包含 FS0 的所有路径和路径等价关系,并且可能还有额外的路径和等价关系。不过,包含关系只是特征结构上的一种偏序关系,因为有些特征结构是不可比较的,比如 [TELNO = 01 27 86 42 96] 和 [NUMBER = 74] 就不存在包含或被包含的关系。
当我们想要对给定的特征结构进行细化时,可以使用合一(unification)操作。合一就是合并两个特征结构的信息,通过 unify() 方法实现。示例代码如下:
import nltk
fs1 = nltk.FeatStruct(NUMBER=74,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



