比较斯坦福 NLP 依赖解析器树中的 TypedDependencies
compare TypedDependencies from Stanford NLP dependency parser tree
我正在尝试通过比较依赖关系在两个句子之间进行语义匹配。
我从两个不同的句子中得到了两个斯坦福依赖树。我想比较句子之间的语义匹配并得到分数。
for(TypedDependency td1 : dependencyList1)
{
for(TypedDependency td2 : dependencyList2)
{
score = td1.compareTo(td2);
}
}
dependencyList1
和 dependencyList2
分别是句子 1 和句子 2 的所有依存关系列表。
我正在使用 compareTo
函数,它给出 -1,0,1
.
的分数
然后我将分数平均得出最终分数。
我不知道这些分数是如何计算的。
有没有更好的方法来比较和识别相似的依赖关系。
任何帮助将不胜感激。
compareTo()
为您提供依赖项之间的排序,例如排序(参见 https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html)。要找到相似的依赖关系,您首先需要将 "similar" 的确切含义形式化,然后制作自定义评分函数。
一个自然的指标,超越了简单的平等,正在瓦解像 *subj
(nsubj, nsubjpass, csubj, csubjpass) 和 *obj
(dobj, iobj) 这样的东西。如果您关心弧的端点,检查词条匹配而不是单词匹配可能是一个好的开始。向量中的相似性 space(例如,使用 word2vec 或 GloVE)也非常有效。
依赖列表,供参考,可在以下位置找到:http://universaldependencies.github.io/docs/u/dep/index.html
我正在尝试通过比较依赖关系在两个句子之间进行语义匹配。
我从两个不同的句子中得到了两个斯坦福依赖树。我想比较句子之间的语义匹配并得到分数。
for(TypedDependency td1 : dependencyList1)
{
for(TypedDependency td2 : dependencyList2)
{
score = td1.compareTo(td2);
}
}
dependencyList1
和 dependencyList2
分别是句子 1 和句子 2 的所有依存关系列表。
我正在使用 compareTo
函数,它给出 -1,0,1
.
的分数
然后我将分数平均得出最终分数。
我不知道这些分数是如何计算的。
有没有更好的方法来比较和识别相似的依赖关系。
任何帮助将不胜感激。
compareTo()
为您提供依赖项之间的排序,例如排序(参见 https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html)。要找到相似的依赖关系,您首先需要将 "similar" 的确切含义形式化,然后制作自定义评分函数。
一个自然的指标,超越了简单的平等,正在瓦解像 *subj
(nsubj, nsubjpass, csubj, csubjpass) 和 *obj
(dobj, iobj) 这样的东西。如果您关心弧的端点,检查词条匹配而不是单词匹配可能是一个好的开始。向量中的相似性 space(例如,使用 word2vec 或 GloVE)也非常有效。
依赖列表,供参考,可在以下位置找到:http://universaldependencies.github.io/docs/u/dep/index.html