我正在构建一个将自然语言问题转换为SQL查询的系统。现在,我正在实现的是对自然语言问题的重构,使其更加结构化,这样我将可以更轻松地将其转换为sql语句。
重组后的语言将遵循以下规则:
他们想做的事。 “查找”“列表”“给予” 他们希望我们检索的属性。 SQL模式的表属性 他们希望我们在
上匹配的实体这种重构语言很棒,可以轻松地转换为SQL,但是问题是我正在创建所有名词块和实体的大型组合,这意味着很多句子。未来的发展将有助于最大程度地减少这些风险,但这将在以后出现。
因此,从大量的句子中,我需要找到与原始查询最相似的句子。
所以我的问题是,您会推荐什么样的相似性函数?例如解析树结构,语义和句法相似性...
感谢您的帮助,我正在为开放源代码构建它,因此任何帮助都将成为一个很好的理由
答案 0 :(得分:0)
您是否尝试过spaCy的.similarity方法?您可以使用spaCy的管道非常快地获取所有查询的nlp对象。然后,您将按照nlp_original_query.similarity(nlp_other_query)
的方式进行操作。在比较查询/关键字的相似性方面,我取得了很大的成功。