歐洲很多語言都是變形的。這意味着一個單詞可以用多種形式寫在文本中。例如,在波蘭的「電腦服務」字「計算機」有多種形式:「komputera」,「komputerowi」,「komputerem」,「komputery」等。Django + Haystack +飛快移動:如何處理語言變形
我應該如何使用Django +草垛+嗖正確處理語言轉折?
每當我搜索任何形式的「komputer」,「komputera」,「komputerowi」我的意思是同樣的事情 - >「komputer」。
在NLP中,基於詞幹(裁減後綴)的基本方法是將表單轉換爲基本形式(「komputerowi」=>「komputer」)。有一些圖書館可以提供幫助。
我的第一個想法是準備一些特殊的模板過濾器,它將給定變量中的每個識別的單詞轉換爲帶有基本形式而不是形式的文本。然後我可以在django + haystack的搜索索引模板中使用它。如果搜索查詢也會在轉換之前轉換爲whoosh引擎,這應該很好。見例如:
haystack search index template:
{{some_indexed_text|convert_to_base_form_filter}}
text to index: "Nie ma komputera" => "Nie ma komputer" <- this is really indexed
search query: "komputery" => "komputer" <-- this will match
但我不認爲這是這個問題的「優雅」的解決方案,也有一些其他功能將無法正常工作 - 像提示拼寫錯誤的建議。
那麼 - 我該如何解決這個問題?也許我應該使用其他搜索引擎而不是whoosh?
謝謝!我根本不知道誰有這個詞根。 – thedk 2010-10-10 15:12:06
不幸的是,該鏈接不再工作 – Rost 2012-12-06 13:15:54