3 回答

TA貢獻1802條經驗 獲得超5個贊
實際上,Google所做的工作非常重要,而且乍一看是違反直覺的。他們沒有像檢查字典那樣做任何事情,但是他們利用統計信息來識別返回比您的查詢更多結果的“相似”查詢,確切的算法當然是未知的。
這里有不同的子問題需要解決,作為所有自然語言處理統計數據的基礎,必須有一本書:統計自然語言處理基礎。
具體來說,為了解決單詞/查詢相似性的問題,我使用Edit Distance取得了很好的效果,Edit Distance是一種字符串相似性的數學度量,效果出乎意料。我曾經使用Levenshtein,但其他人可能值得研究。
根據我的經驗,Soundex很糟糕。
實際上有效地存儲和搜索大的拼寫錯誤的詞典,并且具有亞秒級的檢索功能也是不容易的,最好的選擇是利用現有的全文索引和檢索引擎(即不是數據庫的那個),Lucene當前是其中的一種最好的之一,巧合地移植到許多平臺上。

TA貢獻1966條經驗 獲得超4個贊
有人問到如何為搜索引擎創建最先進的拼寫建議系統,我感到非常驚訝。我在一家搜索引擎公司從事這一主題的工作已經一年多了,我可以指出有關該主題的公共領域信息。
如前一篇文章所述,Google(以及Microsoft和Yahoo!)既不使用任何預定義的字典,也不使用成群的語言學家來思考可能的拼寫錯誤的查詢。由于問題的嚴重性,這將是不可能的,而且還因為不清楚人們是否可以正確識別查詢的時間和是否拼錯。
相反,有一個簡單而有效的原則也適用于所有歐洲語言。假設參考查詢是計數最高的查詢,請在搜索日志中獲取所有唯一查詢,并計算所有查詢對之間的編輯距離。
這個簡單的算法非常適合許多類型的查詢。如果您想將其提高到一個新的水平,那么我建議您閱讀Microsoft Research關于該主題的論文。你可以在這里找到
本文有很好的介紹,但之后您將需要了解諸如隱馬爾可夫模型的概念。
- 3 回答
- 0 關注
- 446 瀏覽
添加回答
舉報