我試圖清理一個數據庫,這些年來,已經獲得了許多重複記錄,名稱略有不同。例如,在公司表中,有「Some Company Limited」和「Some Company LTD!」等名稱。找到接近重複記錄的技巧
我的計劃是將違規表導出爲R,將名稱轉換爲小寫,替換常見同義詞(如「limited」 - >「ltd」),去掉非字母字符,然後使用agrep
來查看外觀類似。
我的第一個問題是agrep
只接受匹配的單個模式,並且循環每個公司名稱以匹配其他公司名稱很慢。 (要清洗一些表將有幾十,甚至幾百個幾千名的檢查。)
我很簡單的看了看tm
包(JSS article),而且看起來很強大,但對分析的大塊減速文字,而不僅僅是名字。
我有幾個相關的問題:
是
tm
包適合這種任務的?有沒有更快的選擇
agrep
? (該函數使用 的Levenshtein編輯距離是閒談慢。)從
agrep
和tm
是否有R以外的合適的工具,除了?我應該甚至在R這麼做,或者應該直接在數據庫中做這種事情嗎? ? (這是一個Access數據庫,所以我最好 而儘可能避免觸碰它。)
相關[如何測量字符串之間的相似性?] (http://stackoverflow.com/questions/6044112/r-how-to-measure-similarity-between-strings) –