2015-04-30 23 views
1

我正在研究分析一些非常雜亂的僱主名稱數據(應用程序中的自由文本字段)的最佳方法。每個僱主在拼寫,縮寫甚至語言方面都可能有100種不同的變體。自然語言詞關係網絡如何到

解決此問題的最佳和最準確的方法是什麼?哪種工具最好?我目前正在使用Base SAS,但我不認爲這有能力做我需要的。

+1

在基地有一個稱爲SPEDIS的功能,即「確定兩個單詞匹配的可能性,表示爲兩個單詞之間的不對稱拼寫距離」。也許它可以用來清理數據?還有一些其他的文本比較函數可能需要查看:COMPLEV「返回兩個字符串之間的Levenshtein編輯距離」。 COMPGED:「返回兩個字符串之間的廣義編輯距離」 –

+0

另外'soundex()' - http://stackoverflow.com/a/29373722/214994 –

回答

0

我不知道有什麼工具可以神奇地爲你解決這個問題。如已經表明的那樣我會嘗試比較列表中的每個僱主名稱與其他每個僱主名稱,並檢查編輯距離。有一個很容易使用萊文斯坦功能對於這一點,只是:

import Levenshtein 
ed = Levenshtein.distance('someString', 'someOtherString') 

您可能希望的方式來規範這樣的:

normalized = ed/max(len('someString'), len('someOtherString')) 

然後通過列表和清理基於此。 做某種單詞或ngram頻率分析還可以迅速將您引入一些您可能想要統一的縮寫('inc。'和'incorporated','ltd。'和'limited'等)