【问题标题】:compare TypedDependencies from Stanford NLP dependency parser tree比较来自斯坦福 NLP 依赖解析器树的 TypedDependencies
【发布时间】:2015-08-10 10:38:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: nlp stanford-nlp text-mining


    【解决方案1】:

    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

    【讨论】:

    • 感谢您的建议。在“相似”中,我的意思是找到确切的依赖关系,即州长词、依赖词和它们之间的关系应该匹配。我将创建一个自定义评分函数。
    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多