2010-12-19 57 views
0

可能重複:
How do you implement a 「Did you mean」?如何實施谷歌風格的「你的意思」?

是否有一個Web服務或公共的API,可以讓你的應用程序中的著名人物的姓名檢查出明顯的拼寫錯誤:

Mikul Jaxon 
Prinz Charlz 
Britnie Speers 

或者這是否需要建立自己的數據庫?

我想要Google的「Did you mean ... ?」功能,當你拼錯某些東西時,他們會建議更正。在我的情況下,我只需要它爲着名人士。

+0

名人姓名拼寫檢查是一個非常具體的要求。看一下Peter Norvig的算法:http://norvig.com/spell-correct.html – McDowell 2010-12-19 13:12:07

+0

Mikul Jaxon不會被Google拿起 - 它只會查找少量字母不同的單詞。 – Skilldrick 2010-12-19 13:14:01

回答

0

你應該檢查apache solr/lucene的fuziness搜索。 maby模糊搜索或自動完成是一個更好的apporach,因爲它會更快。

然而,我所看到的最簡單且仍然非常快速的實現方式是建立一個由相關性加權的令牌文檔索引。

然後你可以在「or-conjunction」中對該表運行你的查詢並獲取你的字符串包含多少個標記的結果。

然後,您可以通過計算Levenshtein_distance來輕鬆確定哪個單詞對應於您的查詢中的單詞。