【发布时间】:2018-12-11 10:53:48
【问题描述】:
我的目标是确定两个句子是否重复。
我正在尝试比较两个句子的解析器树。 我从解析器树中提取了以下格式的标签
['ROOT', 'SBARQ', 'WHADVP', 'WRB', 'SQ', 'VP', 'VBP', 'ADJP', 'RB', 'JJ', 'NP', 'NNP', 'NP', 'NP', 'NNS', 'VP', 'VBG', 'NP', 'NP', 'NNS', 'SBAR', 'WHNP', 'WDT', 'S', 'VP', 'VBP', 'ADVP', 'RB', 'VP', 'VBN', 'PP', 'IN', 'NP', 'NNP', '.']
['ROOT', 'SBARQ', 'WHADVP', 'WRB', 'SQ', 'VBP', 'NP', 'NNS', 'VP', 'VB', 'NP', 'NP', 'NNP', 'NNS', 'SBAR', 'WHNP', 'WDT', 'S', 'VP', 'MD', 'VP', 'VB', 'VP', 'VBN', 'ADVP', 'RB', 'PP', 'IN', 'NP', 'NNP', '.']
我想获取两个列表的公共子列表的长度。在上述情况下,结果将是 4('ROOT', 'SBARQ', 'WHADVP', 'WRB')+5('SBAR', 'WHNP', 'WDT', 'S', 'VP') +2('ADVP', 'RB')+5('PP', 'IN', 'NP', 'NNP', '.')。
或者你有任何其他的解决方案可以利用解析树来计算两个句子的相似度。 另一个问题是,获取解析树的最快方法是什么?因为我有超过 300,000 个句子对要比较...
提前致谢!
【问题讨论】:
-
这些是 POS 标签,不是解析树。你确定你正在解决正确的问题吗?
-
这些是我从解析树中得到的 pos 标签。我认为 pos 标签列表的公共子列表会很有用......你有一些见解可以分享我应该如何使用解析树来确定句子是否重复?
-
由于您不是简单地逐字比较句子,我不知道您所说的“重复”是什么意思。对于“重复的细微变化”,我会对句子进行单词级差异。所以不,我不能提供任何建议。编辑您的问题以澄清您的意思,也许有人可以提出一种方法。
标签: python parsing nlp nltk stanford-nlp