2013-03-18 99 views
0

我是NLP领域的新手,并对我的问题可能是愚蠢的或不正确的道歉。我期待着任何可以让我的运动矢量朝向正确方向的帮助。自然语言查询理解

现在我正在研究我的论文,并且有一个很重要的部分 - 自然语言查询解析器。以前我有一些搜索引擎算法的经验。但是现在我希望我的系统能够“理解”某些类型的查询,并且能够将它粗略地转换为数据库查询语言来执行结构化搜索。例如,对于“我在俄罗斯生活的朋友”这个查询,系统应该在表格中查找“人员”并选择“国家=俄罗斯”。

我清楚地知道,结构化搜索不像例如垃圾邮件过滤那样简单的NLP问题,但是现在有很多这样的系统:Siri,Google Now,Facebook Graph Search。他们能够“理解”查询,而不仅仅是给出排名结果列表(就像传统的搜索引擎那样),而是针对这些类型的信息进行适当的呈现。我对他们如何在里面工作感兴趣,但找不到足够的信息。

我会很感激任何信息,任何参考资料和书籍,可以帮助我研究这些系统和我的论文进展。最好那些可以在实践中应用,而不是国防部关闭发展:)

英语不是我的母语,对错误抱歉,我希望你能理解我的问题。

回答

2

您的问题过于宽泛。如果你想得到一个有用的答案,你必须更具体。


这里有一个想法:从查询中删除任何填充物的话得到的关键字,然后分析关键词,以确定其语义。例如:

my friends who live in Russia 

卸下填充词:

friends live Russia 

分析(使用同义词,语义和单词列表):

friends -> people, 
live -> location, 
Russia -> country 

然后构造查询。

+0

感谢您的回答。我知道我的问题很广泛,对不起,但我也不期望具体的答案,只是运动矢量。通过这个例子,我想到了同样的方向,只是想更多地了解在“分析”阶段可用的方法和算法。 “同义词,语义和单词列表”就像你说的那样。 – vas3k 2013-03-18 12:34:42

+0

@ vas3k这是最难的部分。国家名称列表可以帮助您找出名词是否是一个国家。同义词(如朋友)可以简化剩余的分析。然后你必须通过查看动词(即live)来找出用户想要的内容。这就是我所能告诉你的。 – Virtlink 2013-03-18 12:46:23

+0

@Virtlink幸运的是,为了这个目的,有[已经开发出的几个开源工具](http://stackoverflow.com/questions/6689344/analysing-meaning-of-publisher/40732225#40732225),他们可以使这个任务更容易。 – 2016-11-22 04:52:58