首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理自然语言查询?

如何处理自然语言查询?
EN

Data Science用户
提问于 2014-06-14 20:32:06
回答 4查看 9.9K关注 0票数 12

我对自然语言的查询很好奇。斯坦福大学拥有一套看起来很强大的自然语言处理软件。我也见过文本工程通用体系结构

自然语言处理的使用数量惊人,这使得这些项目的文档难以快速吸收。

你能帮我简化一下吗?在高层次上,你能勾勒出执行将简单问题转化为SQL所需的基本任务吗?

我的流程图上的第一个矩形有点神秘。

例如,我可能想知道:

代码语言:javascript
复制
How many books were sold last month?

我想把它翻译成

代码语言:javascript
复制
Select count(*) 
  from sales 
  where 
   item_type='book' and 
   sales_date >= '5/1/2014' and 
   sales_date <= '5/31/2014'
EN

回答 4

Data Science用户

回答已采纳

发布于 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‘

这是一个高层次的我将如何开始,而几乎我提到的每一步都是不平凡的,真正的兔子洞可以是无穷无尽的,这应该会给你许多点连接。

票数 7
EN

Data Science用户

发布于 2016-09-11 21:24:35

把简单的问题变成答案绝不是简单的事情。

第一个这样做的技术在整个技术和准确的将是一个大赢家。

然而,也有一些存在,用人工智能“回答问题”来填补空白(例如IBM和Amazon )。这需要解决与相关数据相关的语言复杂性,数据存储中的内容,以及什么是名词、动词和代词。

微软在这里冒险使用英语查询,但后来停了下来。Kueri.me是一个基于Python的平台,可以做同样的事情。

结构化查询语言( SQL )等,SOQL、MDX、Hive、Impala和更新的SQL都采用了老式的SQL。还没有取代很多东西,所有这些部分都是对更宏伟的“最终目标”的小修正,而人工智能(AI),特别是机器学习。

问题是:

“电脑能弄清楚你想要什么吗?”

还没。语言学家、数学家、工程师和更多的人都贡献了他们的一份蛋糕,这样我们就可以享受到一些甜蜜的人工智能和机器学习蛋糕。

票数 1
EN

Data Science用户

发布于 2018-01-05 12:25:33

有几种方法可以创建解析器,将纯文本消息解析为SQL。例如,您可以创建一个基于语法的解析器,并使用NLP算法构建结构化查询。如果您已经从一个领域(如电子商务)获得了大量的解析消息,那么您可以尝试一种机器学习方法,并将其用于进一步的解析。

然而,我认为最好的方法是将基于语法的文本到SQL翻译解析器和ML结合起来,通过修正语法、消除排字等来补充基于规则的语法。

了解有关这里不同方法的更多信息。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档