我正在尝试为本地搜索网站构建查询解析算法,该算法可以将自由文本搜索查询(单输入文本框)分类为网站上可能的各种搜索类型。
例如用户可以在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个搜索字段,如name / cuisine / locality。
有没有更好/标准的方法来做到这一点。
答案 0 :(得分:-1)
关于拼写错误,您必须使用词典/词库。这可以是预处理和标准化的一部分。
关于您可以执行的多列查询;美食:中餐或餐馆名称:中文
你可以提升两个中的一个:美食:中文^ 0.8或餐馆名称:中文