瑞典语NLP产品搜索引擎与结构化数据

问题描述:

我目前正在一个项目中,我有一个数据库与1000产品(洗衣机),其中每个有21个产品属性(如重量,尺寸,颜色, 。功耗等) 我的目标是用NLP,使用户能够通过自然语言查询来搜索产品的数据库,如:瑞典语NLP产品搜索引擎与结构化数据

“找一台洗衣机可以加载至少8公斤的衣物,高度不超过60厘米,前面有不锈钢“

”我正在寻找一台洗衣机,它的价格低于n 6000瑞典克朗,并在前面开放,不在顶部“

此NL查询需要转换为一个SQL查询与我的数据库一起使用。问题是我需要它用瑞典语工作。 我发现了一个很棒的API(https://json-tagger.com/),它为我执行句子的预处理,标记和标记瑞典语中的词性。谢谢!但是现在我真的很想谈谈如何最好地使用它来将它转换为SQL查询?

我想我需要提取用户输入的关系和语义以查询数据库,但我不知道如何做到这一点。由于这是一个相当有限的领域(洗衣机产品搜索),我希望我能够为此做出一些规则,但我不确定这是否正确。任何帮助或想法都非常感谢! :)

我是一种新的NLP,并且会更喜欢在Python3中工作。谢谢!

如果我正确地理解了这个问题,您正在寻找一个瑞典语义解析器,它将自然语言句子翻译为您的产品的SQL查询套件。这项任务非常大,可能是一个巨大的项目。如果你正在寻找一个快速解决方案跳转到最后一段。

计算语义学中一种很好的旧标准方法是为解析器编写语法并将每个单词翻译成数据库。例如有this NLTK package的例子。

这样的路径的挑战是,您需要手动硬编码单个语法文件中的所有可能的词汇。更高级的类似解决方案是使用Grammatical Framework并在GF中编写受控语言。在那里你可以从他们的大型资源语法开始,你不需要担心不同语言的语法。这将是一个你可以添加到你的Python程序或类似的软件包。

如果控制语言的解决方案不能满足你的需要,还有其他选项,如概率CCG解析器翻译自然语言SQL(例如English-to-SQLother ideas),您可能需要训练它自己。而且,如果您有很多带注释的数据,并且您想拥有最先进的技术,那么您可以使用神经机器翻译器查看解析器,例如, neural programmer

最后,如果你想有一个快速的解决方案,为你知道的模式写正则表达式。结果可能会变得非常类似于WolframAlpha查询。您甚至可以根据数据库中的已知名称实体使这些正则表达式中的一部分动态化。希望这会回答你的问题。