algorithm - 自然语言查询理解

标签 algorithm nlp search-engine nltk structured-data

<分区>

我是 NLP 领域的新手,很抱歉我的问题可能很愚蠢或不正确。我期待任何可以给我正确方向的运动矢量的帮助。

现在我正在写我的论文,其中有一个重要的部分——自然语言查询解析器。以前我对搜索引擎算法有一些经验。但现在我希望我的系统能够“理解”某些类型的查询,并且能够将其粗略地转换为数据库查询语言以执行结构化搜索。例如,对于查询“我住在俄罗斯的 friend ”,系统应该简单地查看表“people”并选择“country = Russia”的人。

我清楚地知道结构化搜索并不像垃圾邮件过滤那样简单的 NLP 问题,但现在已经诞生了很多这样的系统:Siri、Google Now、Facebook Graph Search。他们能够“理解”查询,而不仅仅是给出排名结果列表(就像经典搜索引擎所做的那样),而且还可以适本地呈现被请求的信息类型。我对它们的内部工作原理很感兴趣,但找不到足够的信息。

如果有任何信息、引用资料和书籍可以帮助我研究这些系统和论文取得进展,我将不胜感激。最好那些可以在实践中应用,而不是国防部封闭的开发:)

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

最佳答案

您的问题过于宽泛。如果您想获得有用的答案,您必须更加具体。


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

my friends who live in Russia

去除填充词:

friends live Russia

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

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

然后构造查询。

关于algorithm - 自然语言查询理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15475948/

相关文章:

java - 排序算法实现

algorithm - 替换嵌套循环的设计模式

keras - GlobalAveragePooling1D 在 keras 中做什么?

nlp - 有谁知道有什么好的词义消歧软件吗?

c - 使用编辑距离生成摘录

algorithm - 什么时候非二进制数据结构比二进制数据结构更好? (即堆、BST 等)

java - Spring Boot 将值从 Controller 更改为另一个

python - 合并相似的字符串 Python

string - 为什么最长公共(public)子串不是词干提取算法的解决方案?

mysql - 如何在 Coldfusion/MySQL 中跟踪产品搜索引擎中的通用点击?