为搜索关键字指定不同的权重

时间:2018-03-20 15:29:50

标签: python nlp

我正在实施一个搜索引擎,到目前为止,我完成了网络抓取的部分,将结果存储在索引中并检索用户输入的搜索关键字的结果。但是我希望搜索结果更具体。假设我在搜索“海德拉巴的鞋店”。在python中是否有任何NLP库可以处理文本并为重要的单词分配更高的权重,例如“shoes”和“Hyderabad”。

感谢。

2 个答案:

答案 0 :(得分:0)

我认为一种方法不会解决整个问题。您的问题很广泛,需要多个步骤才能获得最佳效果。以下是我将如何解决问题

  1. 使用Lucene和查询创建N-gram分析器。 Lucene也允许 Phrase queriesShoe shops in Hyderabad非常适合。
  2. 使用余弦相似性同样对待Shoe shops in HyderabadFootwear shops in Hyderabad
  3. 还要想一些语言角度。简单的POS标记和基于角色的规则引擎可以帮助您为Shoe shops in HyderabadShoe under 500 bucks等查询获取更智能的结果,其中in, under, on etc的非常有限的单词集可以在location/ comparison上分配规则这一点假设你正在看英语。您必须为每种语言单独构建此图层。
  4. 希望这会有所帮助。

答案 1 :(得分:0)

我认为这个问题很好(我上周看到类似的东西)当然,正如其他人提到的那个问题太宽泛了。但我认为您可以使用信息检索系统来面对它。我可以推荐你Lemur项目和特别Indri,它包括很多查询的自定义功能,然后可以使用n-gram,tf-idf(作为前面两个答案建议)加权,或者只使用你自己的标准。如果你想使用Indri,请检查this是一个教程/介绍,有关加权的内容是第56页

好看!