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

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



