所以,假設我有一個簡單的句子數組。根據用戶輸入搜索它的最好方法是什麼,並返回最接近的匹配項?PHP - 爲搜索項搜索句子數組?
Levenshtein函數看起來很有前途,但我不認爲我想用它們。用戶輸入可能很簡單,如highest mountain
,在這種情況下,我想要搜索highest mountain
的數組中的句子。如果該確切短語不存在,那麼我想要搜索具有highest
AND mountain
的句子,但不是背靠背的,依此類推。 Levenshtein函數在每個字符的基礎上工作,但我真正需要的是每個字的基礎。
當然,在某種程度上,Levenshtein函數可能仍然有用,因爲我還想考慮包含短語highest mountains
(注意S)或類似句子的可能性。
你有什麼建議?有沒有這樣做的PHP已經存在的任何系統? Levenshtein的功能會是一個適當的解決方案嗎?是否有一個我不知道的基於詞彙的Levenshtein函數?
謝謝!
EDIT - 我已經考慮兩者的MySQL全文檢索,並且還考慮打破兩個A)輸入端和B)每個句子成單詞的單獨的陣列的可能性,並且然後比較該方式,使用的Levenshtein功能以考慮在詞的變化。 (顏色,顏色,顏色等)但是,我擔心這種方法雖然可能很聰明,但可能會造成計算上的負擔。
爲什麼不這樣做的DB:文檔可以直接從一個HTML文件或字符串創建?數據的來源是什麼? – Niloct 2012-08-02 17:33:52
這比在PHP中手工構建的東西更適合在數據庫中進行全文搜索。 – 2012-08-02 17:35:02
我正在將維基百科文章解析爲句子。如果將這些數據存儲在數據庫,全文搜索,然後從數據庫中刪除這些條目會更快,我願意接受該解決方案,儘管我無法想象它非常高效。 – Nathanael 2012-08-02 17:35:10