我对自然语言的查询很好奇。斯坦福大学拥有一套看起来很强大的自然语言处理软件。我也见过库和文本工程通用体系结构。
自然语言处理的使用数量惊人,这使得这些项目的文档难以快速吸收。
你能帮我简化一下吗?在高层次上,你能勾勒出执行将简单问题转化为SQL所需的基本任务吗?
我的流程图上的第一个矩形有点神秘。

例如,我可能想知道:
How many books were sold last month?我想把它翻译成
Select count(*)
from sales
where
item_type='book' and
sales_date >= '5/1/2014' and
sales_date <= '5/31/2014'发布于 2014-06-14 21:39:15
自然语言查询带来了许多复杂的问题,很难概括。从一个较高的层次上讲,我首先要试着用名词和动词来思考事物。
那么对于这句话:上个月卖了多少本书?
首先,使用解析器分解句子,解析器将返回类似于以下内容的树格式:

你可以看到,有一个主题书籍,一个复合动词短语表示过去的行动出售,然后一个名词短语,其中你有一个月的时间重点。
我们可以进一步细分修饰语的主题:“多少”用于书籍,“持续”为月份。
一旦您分解了这个句子,您就需要将这些元素映射到sql语言中,例如:多少=>计数、图书=> book、售出的=> sales、month => sales_date (interval)等等。
最后,一旦您拥有了语言的元素,您只需要为不同的实体之间的交互方式制定一套规则,这就留给了您:
从销售中选择count(*),其中item_type='book‘和sales_date >= '5/1/2014’和sales_date <= '5/31/2014‘
这是一个高层次的我将如何开始,而几乎我提到的每一步都是不平凡的,真正的兔子洞可以是无穷无尽的,这应该会给你许多点连接。
发布于 2016-09-11 21:24:35
把简单的问题变成答案绝不是简单的事情。
第一个这样做的技术在整个技术和准确的将是一个大赢家。
然而,也有一些存在,用人工智能“回答问题”来填补空白(例如IBM和Amazon )。这需要解决与相关数据相关的语言复杂性,数据存储中的内容,以及什么是名词、动词和代词。
微软在这里冒险使用英语查询,但后来停了下来。Kueri.me是一个基于Python的平台,可以做同样的事情。
结构化查询语言( SQL )等,SOQL、MDX、Hive、Impala和更新的SQL都采用了老式的SQL。还没有取代很多东西,所有这些部分都是对更宏伟的“最终目标”的小修正,而人工智能(AI),特别是机器学习。
问题是:
“电脑能弄清楚你想要什么吗?”
还没。语言学家、数学家、工程师和更多的人都贡献了他们的一份蛋糕,这样我们就可以享受到一些甜蜜的人工智能和机器学习蛋糕。
发布于 2018-01-05 12:25:33
有几种方法可以创建解析器,将纯文本消息解析为SQL。例如,您可以创建一个基于语法的解析器,并使用NLP算法构建结构化查询。如果您已经从一个领域(如电子商务)获得了大量的解析消息,那么您可以尝试一种机器学习方法,并将其用于进一步的解析。
然而,我认为最好的方法是将基于语法的文本到SQL翻译解析器和ML结合起来,通过修正语法、消除排字等来补充基于规则的语法。
了解有关这里不同方法的更多信息。
https://datascience.stackexchange.com/questions/371
复制相似问题