Nlp 自然语言搜索(用户意图搜索)

Nlp 自然语言搜索(用户意图搜索),nlp,search-engine,keyword,voice-recognition,naturallyspeaking,Nlp,Search Engine,Keyword,Voice Recognition,Naturallyspeaking,我正在尝试建立一个搜索引擎,允许我的用户使用自然语言命令进行搜索,就像谷歌现在一样。除此之外,我的搜索引擎稍有限制,因为它主要用于电子商务网站,允许用户搜索某些设备 我想提供的一些功能包括: 1) 允许用户按品牌进行搜索 2) 按模式 3) 按价格范围 4) 通过3g/4g能力 5) 按操作系统 等等等等 我创建了一个模拟版本,使用它查找某些关键字,如“价格”、“成本”、“iPhone5”等 建立自己的字典/关键字数组是实现这一目标的最佳方式吗 或者是否有现有的词典/API来帮助解析用户的搜索查

我正在尝试建立一个搜索引擎,允许我的用户使用自然语言命令进行搜索,就像谷歌现在一样。除此之外,我的搜索引擎稍有限制,因为它主要用于电子商务网站,允许用户搜索某些设备

我想提供的一些功能包括:

1) 允许用户按品牌进行搜索 2) 按模式 3) 按价格范围 4) 通过3g/4g能力 5) 按操作系统

等等等等

我创建了一个模拟版本,使用它查找某些关键字,如“价格”、“成本”、“iPhone5”等

建立自己的字典/关键字数组是实现这一目标的最佳方式吗

或者是否有现有的词典/API来帮助解析用户的搜索查询并返回适当的信息。


我想你会想要这样的东西。

参见以下示例:

“给我找一部具有4 gb内存和至少16 gb存储空间的android手机。”

首先,您需要一个单词列表,可以直接从输入中提取并插入到搜索查询中。这是最简单的部分

“给我找一部安卓手机,内存为4 gb,存储空间至少为16 gb。”

接下来,输入中将有数字

“给我找一部安卓手机,内存4gb,存储空间至少16gb。”

到现在为止,您已经提取了“android”和“phone”这两个词。现在你必须提取数字,以及前后的2或3个单词

“给我找一部安卓手机,其内存为4 gb存储空间至少为16 gb

下一步是弄清楚这些数字的含义。为此,您需要一个如下表:(让我们称此表为“属性”)

将上表与从输入中提取的数字周围的数字和文字进行比较:

4---手机,带,gbram 6---至少,gb,存储

通过使用一个合适的算法和属性表,您可以很容易地找出数字的含义。只需将每个数字与每个属性进行比较-首先检查数字是否在属性范围内,然后检查输入中数字周围的单词是否与属性的标记匹配。 现在您知道了每个数字的含义(4=ram,6=存储),您必须检查输入中的不平等性

检查不等式:

如果存在诸如“至少”、“不超过”、“最多”等短语,则存在一个不等式。在我们的例子中,在数字4附近找不到这样的词,但在数字6附近可以找到术语“至少”。这意味着用户希望手机的ram正好为4 gb(使用==),但内部存储空间可能大于或等于6 gb(使用>=)

还要注意的是,如果您无法将某个数字与某个属性相关联,则该数字很可能就是价格

您可以添加更多功能。。例如,允许用户按属性的递增/递减顺序对结果进行排序。例如:

“给我找一部具有4 gb内存和至少16 gb存储空间的android手机。先展示便宜的手机