【问题标题】:Natural Language Search (user intent search)自然语言搜索(用户意图搜索)
【发布时间】:2015-05-29 05:26:37
【问题描述】:

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

我想提供的一些功能是:

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

等等。等等

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

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

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

【问题讨论】:

    标签: nlp search-engine keyword voice-recognition naturallyspeaking


    【解决方案1】:

    请看下面的例子:

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

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

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

    接下来,输入中会有数字。

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

    您现在已经提取了“android”和“phone”这两个词。现在您必须提取数字 - 以及它们之前和之后的 2 或 3 个单词。

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

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

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

    4---phone,with,gb,ram 6---至少,gb,存储

    通过使用合适的算法和属性表,您可以轻松找出数字的含义。只需将每个数字与每个属性进行比较 - 首先检查数字编号是否在属性范围内,然后检查单词是否输入中的数字与属性的标签匹配。 现在您知道每个数字的含义(4=ram,6=storage),您必须检查输入中的不等式。

    检查不等式:

    如果有“至少”、不超过”、“最多”等短语,那么你有一个不平等。在我们的例子中,您在数字 4 附近找不到这样的词,但您可以在数字 6 附近找到术语“至少”。这意味着用户想要一部具有正好 4 GB 内存的手机(使用 == ),但是内部存储空间可能大于或等于 6 GB(使用 >=)。

    另请注意,如果您无法将数字与房产相关联,则该数字很可能就是价格。

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

    “给我找一部 4 GB 内存和至少 16 GB 存储空间的安卓手机。显示便宜first

    【讨论】:

      【解决方案2】:

      http://www.nltk.org/

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

      【讨论】:

        猜你喜欢
        • 2016-11-17
        • 2011-06-24
        • 1970-01-01
        • 2020-08-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-09
        • 2017-04-03
        相关资源
        最近更新 更多