我需要爲我的應用程序創建簡單的搜索引擎。讓我們簡化爲以下內容:我們有一些文本(很多),我需要搜索並顯示相關結果。信息檢索中的Porter stemmer算法
我基於這個偉大的article擴展了一些東西,它適用於我。
但我有詞幹術語的問題。舉例言之「註釋」,「註釋」等將被梗爲「ANNOT」,但是想象一下,你嘗試搜索一些東西,你會看到意想不到的結果:
- 「阿魯」 - 沒有什麼
- 「annota 「 - 無 等
只有單詞」annot「會給出相關結果。那麼,我應該如何改進搜索以提供預期的結果?因爲「annot」包含「anno」,「annota」比「annot」略多。使用包含所有的時間顯然不是解決方案
如果在第一種情況下,我可以使用一些Ternary search tree,在第二種情況下,我不知道該怎麼辦。
任何想法都會非常有幫助。
UPDATE
oleksii指出我的n-gram here,這可能對我的作品,但我不知道如何正確地指數正克。
所以問題:
- 哪些數據結構是最適合我的需要
- 如何正確索引我正克
這使得sence,謝謝。也許你可以指出如何執行n-gram的索引? – nrudnyk