如何判断两个自然语言查询是否具有相同的含义



我正在构建一个系统,将自然语言问题转换为SQL查询。现在我正在实现的是重构自然语言问题,使其更加结构化,以便我更容易将其转换为 sql 语句。

重组后的语言将遵循以下规则:

他们想做什么,例如"查找"列表"给" 他们希望我们检索的属性 ex.SQL 架构中的表属性 他们希望我们匹配的实体

这种重构的语言很棒,可以很容易地转换为SQL,但问题是我正在创建所有名词块和实体的大型组合,这意味着很多句子。未来的发展将有助于最大限度地减少这些,但那是以后的事。

因此,我需要从大量的句子中找到哪一个与原始查询最相似。

所以我的问题是,你会推荐什么样的相似性函数?例如解析树结构、语义和句法相似性......

感谢您的帮助,我正在为开源构建它,因此任何帮助都将是一个好的原因

你试过spaCy的.similarity方法吗?您可以使用spaCy的管道非常快速地获取所有查询的nlp对象。然后,您将按照nlp_original_query.similarity(nlp_other_query)的思路做一些事情。我用它来比较查询/关键字的相似性取得了很大的成功。

相关内容

最新更新