如何过滤掉无效输入的弹性搜索

时间:2018-02-20 18:11:12

标签: python elasticsearch nlp

我们目前正在尝试处理用户输入并检查用户是否使用弹性搜索输入了食物项目。

通过弹性搜索,我们可以获得广泛术语的结果:大蒜,大蒜提取物等......

我们应该如何处理用例例如。蓝莓洗碗皂或苹果液皂。我们如何省略这些搜索?

当我搜索蓝莓洗碗皂时,我仍然可以获得与蓝莓相关的搜索结果

1 个答案:

答案 0 :(得分:1)

您的目标要求您对查询执行词性标注,然后使用这些标记来识别名词。

然后,您需要将提取的名词与预先列出的食物字符串列表进行比较,并在识别出非食物的名词后,删除这些名词作为主语的条款和/或它们的短语对象。

此功能未内置于elasticsearch中。根据您处理查询的语言,有各种用于词性标注和字符串操作的库。

更新回答:

请仔细阅读并意识到这个答案并不是很好。解决此问题的最佳方法是使用文档/短语矢量化。正确地矢量化,你应该能够将名词短语'蓝莓'和'蓝莓洗碗肥皂'编码为非常不同的载体,然后你可以采取各种方法来推断这些载体的分类。