問題

我已經遞交了一個有大約18000行的表.每個記錄描述了一個客戶的位置.問題是,當人建立表時,他們沒有為“Company Name”新增欄位,只有“Location Name”,一個公司可以有很多位置.

例如,以下是描述相同客戶的一些記錄:

地點表

  ID  Location_Name     
 1   TownShop#1        
 2   Town Shop - Loc 2 
 3   The Town Shop     
 4   TTS - Someplace   
 5   Town Shop,the 3   
 6   Toen Shop4        
 

我的目標是讓它看起來像:

地點表

  ID  Company_ID   Location_Name     
 1   1            Town Shop#1       
 2   1            Town Shop - Loc 2 
 3   1            The Town Shop     
 4   1            TTS - Someplace   
 5   1            Town Shop,the 3   
 6   1            Toen Shop4        
 

公司表

  Company_ID  Company_Name  
 1           The Town Shop 
 

沒有“Company”表,我必須從代表多個位置的最描述性或最佳位置名稱生成Company Name列表.

目前我想我需要生成一個類似的位置名稱列表,然後手工處理該列表.

關於如何處理這個問題的任何建議表示讚賞.

@Neall,謝謝您的發言,但不幸的是,每個位置名稱都是不同的,沒有重複的位置名稱,只是類似的.因此,在語句“repcount”的結果是每行1.

@yukondude,你的步驟4是我的問題的核心。

  最佳答案

請更新問題,您是否有可用的CompanyNames列表?我問,因為您可能使用Levenshtein algo找到您的CompanyNames和LocationNames列表之間的關係.


更新

沒有公司名稱列表,我必須從代表多個位置的最描述性或最佳位置名稱生成公司名稱.

好的...嘗試這個:

  1. 透過查詢主要或全部字母字元組成的LocationNames來構建候選CompanyNames列表.您可以使用正則表示式.將此列表儲存在單獨的表中.
  2. 按字母順序排序列表,並(手動)確定哪些條目應該是 CompanyNames。
  3. 將每個CompanyName比較到每個LocationName並提出匹配分數(使用 Levenshtein 或其他匹配algo的字串).將結果儲存在單獨的表中.
  4. 設定一個門檻分,以便任何 MatchScore 不會被認為是給定 CompanyName 的匹配。
  5. 透過CompanyName | LocationName | MatchScore手動檢查LocationNames,並弄清楚哪些實際匹配.由MatchScore訂購應該減少程序的痛苦.

上述操作的全部目的是自動化部件並限制問題的範圍,這遠非完美,但希望能夠幫助你手工完成18K的記錄。

  相同標籤的其他問題

database