2011-02-15 68 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或餐廳名稱:中文