我正在尝试在动词对之间实现关系提取。我想使用从一个动词到另一个动词的依赖路径作为我的分类器的一个特征(预测关系X是否存在)。但我不确定如何将依赖路径编码为功能。以下是一些示例依赖路径,作为与StanfordCoreNLP Collapsed Dependencies的空格分隔关系注释:
nsubj acl nmod:from acl nmod:by conj:and
nsubj nmod:into
nsubj acl:relcl advmod nmod:of
重要的是要记住,这些路径是可变长度,并且关系可以重新出现而没有任何限制。
我想到的两种对此功能进行编码的折衷方法是:
1)忽略序列,每个关系只有一个特征,其值是它在路径中出现的次数
2)有一个长度为n的滑动窗口,每个可能的关系对都有一个特征,其值是这两个关系连续出现的次数。我想这是编码n-gram的方式。但是,可能关系的数量是50,这意味着我不能真正采用这种方法。
欢迎任何建议。
答案 0 :(得分:4)
我们有一个基于依赖路径构建分类器的项目。我问开发该系统的小组成员,他说:
整个路径的指标功能
因此,如果你有训练数据点(verb1 -e1-> w1 -e2-> w2 -e3-> w3 -e4-> verb2,relation1),那么这个特征就是(e1-e2-e3 -E4)
他也做了ngram序列,所以对于同一个数据点,你也会有(e1),(e2),(e3),(e4),(e1-e2),(e2-e3) ),(e3-e4),(e1-e2-e3),(e2-e3-e4)
他还建议折叠同位边以使路径更小。
另外,我应该注意到他为每个关系开发了一套高精度规则,并用它来创建一大组训练数据。