问题

我已经递交了一个有大约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