我試圖製作一個算法,可以輕鬆簡化並將同義詞(不匹配,首字母縮寫詞,縮略詞等)分組爲一個。我認爲應該存在一種標準的方法來構建這樣一種結構,即查找可能不匹配的字符串,如果字符串存在於結構中,它將返回標準化的字符串鍵。總之,有時候可以用幾種方式來寫同一個概念,但我只想保留這個概念。將多個字符串關聯到只有一個
例如:Supose我想正常化或簡化
"General Director", "General Manager", "G, Dtor", "Gen Dir", ...
的出場打入
"GEN_DIR"
,只保留這個結果作進一步參考。
順便說一句,我想,建設有鍵/值對的哈希像
hash["General Director"]="GEN_DIR"
hash["General Manager"]="GEN_DIR"
hash["G, Dtor"]="GEN_DIR"
hash["G, Dir"]="GEN_DIR"
可能是一個解決方案,但我懷疑有到更優雅或適當的解決辦法。
我還需要在沒有任何數據庫的情況下輕鬆地堅持這種關聯結構的方式,因爲它應該隨着我找到更多的相同單詞或句子的不匹配而增長。我認爲一種可能的方法是通過DSL來定義這種結構,但我願意接受建議。
正則表達式。 – 2011-05-24 00:18:16
甚至在考慮編碼之前,您必須顯示將「General Director」等連接到「GEN_DIR」的規則;那是你的責任。如果沒有這樣的規則,那麼你可以做到這一點的唯一方法是將它與先前設置的字典進行匹配,並且通常使用散列在ruby中完成。通過哈希查找顯示出良好的性能;你不必擔心散列的增長。 – sawa 2011-05-24 01:22:27