我正在尝试为本地搜索网站构建一个查询解析算法,它可以将自由文本搜索查询(单输入文本框)分类为网站上可能进行的各种类型的搜索。
例如,用户可以输入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个搜索字段,如名称/菜肴/位置。
有没有更好的/标准的方法来做到这一点。
发布于 2011-02-18 02:38:41
关于拼写错误,你必须查字典/同义词词典。这可能是预处理和标准化的一部分。
关于可以执行的多列查询;菜式:chinese OR restaurant_name:chinese
你可以选择两个之一:菜肴:China^0.8或者restaurant_name:chinese
https://stackoverflow.com/questions/5000911
复制相似问题