比较Stanford NLP依赖解析器树中的TypedDependencies

时间:2015-05-28 05:19:30

标签: nlp stanford-nlp text-mining

我通过比较依赖性来尝试两个句子之间的语义匹配 我从两个不同的句子得到两个斯坦福依赖树。我想比较并获得句子之间语义匹配的分数。

for(TypedDependency td1 : dependencyList1)
    {
        for(TypedDependency td2 : dependencyList2)
        {
            score = td1.compareTo(td2);
        }
    }

dependencyList1dependencyList2分别是来自句子1和句子2的所有依赖项的列表。   我使用compareTo函数,它给出了-1,0,1的分数 然后我将得分平均得出最终得分 我不知道如何计算这些分数。
是否有更好的方法来比较和识别相似的依赖关系 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

compareTo()为您提供依赖关系之间的排序,例如排序(请参阅https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html)。要找到类似的依赖关系,首先需要将“类似”的确切形式化,然后制作自定义评分函数。

除了简单的平等之外,自然度量标准正在折叠*subj(nsubj,nsubjpass,csubj,csubjpass)和*obj(dobj,iobj)等内容。如果你关心弧的端点,检查引理匹配而不是字匹配可能是一个好的开始。向量空间中的相似性(例如,使用word2vec或Glove)也非常有效。

可以在以下位置找到依赖项列表供参考:http://universaldependencies.github.io/docs/u/dep/index.html