2011-02-15 83 views
1

我想建立一个本地搜索网站的查询解析算法,该算法可以将自由文本搜索查询(单个输入文本框)分类为各种可能的搜索类型网站。解析solr的自由文本(自然语言)查询

例如,用户可以在xyz附近输入中国餐馆。我应该如何去将它分解到菜:“中国人”,局部性:“XYZ”因为

- there could be spelling mistakes 
- keywords may match in different columns e.g. a restaurant may have "chinese" in its name 

这是不是一个真正的自然语言解析问题,因为我们试图在一个非常有限的搜索的可能性

我最初的想法是从数据库中将特定类型的所有值转储到字段中,并使用用户查询来匹配所有这些字段。然后基于分数(和预先设定的置信度)将查询划分为3-4个搜索字段,例如名称/美食/地点。

是否有更好的/标准的方式来做到这一点。

回答

-1

关于拼写错误,你必须使用词典/同义词库。这可以是您的预处理和标准化的一部分。

关于在多列中查询,您可以执行;美食:中国或餐厅名称:中国

您可以提升其中的一种:料理:中餐^ 0.8或餐厅名称:中文