Estou tentando analisar alguns dados que tenho, mas há muitas inconsistências nos meus dados.
Eu tenho uma tabela SQL que estou tentando analisar.
A tabela é uma tabela de universidades com a seguinte estrutura: O name:string, city:string, state:string, country:string
nome está sempre presente, mas cidade, estado e país podem estar ausentes. Minha questão principal é que existem muitos erros de digitação e declinação diferente de um nome de universidade. Por exemplo, aqui está a declinação do Standford Unversity que encontro quando o faço SELECT "universities".* FROM "perm_universities" WHERE (name like '%stanford%')
:
stanford university - stanford - ca - united states of america
the leland stanford junior university - stanford - ca - united states of america
leland stanford jr. university - stanford - ca - united states of america
stanford university graduate school of business - stanford - ca - united states of america
the leland stanford junior university (stanford university) - stanford - ca - united states of america
leland stanford junior university - stanford - ca - united states of america
stanford university - stanford - -
leland stanford jr. university, graduate school of business - stanford - ca - united states of america
stanford law school - stanford - ca - united states of america
stanford - stanford - ca - united states of america
stanford university, graduate school of business - stanford - ca - united states of america
stanford graduate school of business - stanford - ca - united states of america
stanford univerity - stanford - ca - united states of america
stanford university (the leland stanford junior university) - stanford - ca - united states of america
the leland stanford jr. university - palo alto - ca - united states of america
leland stanford junior university, school of law - stanford - ca / n/a - united states of america
stanford universit - stanford - ca - united states of america
the leland stanford university - stanford - ca - united states of america
leland standford stanford junior university - stanford - ca - united states of america
stanford university - cambridge - ma - united states of america
the leland stanford junior university 'stanford university' - stanford - ca - united states of america
stanford university school of law - stanford - ca - united states of america
stanford univresity - stanford - ca - united states of america
the leland stanford jr. university (stanford university) - stanford - ca - united states of america
leeland stanford junior university - stanford - ca - united states of america
leland stanford junion university - - ca - united states of america
leland stanford junior university (stanford university) - stanford - ca - united states of america
the leland stanford junior university - stanford - -
stanford university - graduate school of business - stanford - ca - united states of america
graduate school of business, stanford university - stanford - ca - united states of america
stanford universoty - stanford - ca - united states of america
leland stanford junior university - stanford - -
stanford univeristy - palo alto - ca - united states of america
leland stanford university - palo alto - ca - united states of america
stanford university - stanford - ca / n/a - united states of america
the leland stanford junior university, stanford university - stanford - ca - united states of america
the leland stanford junior university graduate school of business - stanford - ca - united states of america
stanford universtiy - stanford - ca - united states of america
stanford univerisity - stanford - ca - united states of america
stanford university - stanford - ct - united states of america
stanford law scool - stanford - ca - united states of america
mba: stanford university - stanford - ca - united states of america
Eles são todos da mesma universidade, mas alguns têm erros de digitação, outros têm nomes diferentes, outros não têm cidades, outros têm cidades erradas ... Os dados não são bons.
Então, eu estou tentando consertar isso. Como posso consolidar esses dados?
Respostas:
Como esse conjunto de dados já está organizado em uma tabela, você pode aproveitar as funções SQL padrão para executar uma grande parte da limpeza. Um registro parece ser composto por 4 campos, por exemplo:
Você pode seguir estas etapas para obter uma representação mais limpa desse conjunto de dados:
fonte
Isso é bastante difícil sem primeiro estruturar seu conjunto de dados. Há uma razão pela qual os conjuntos de dados limpos custam milhares de dólares porque tentam limpar esses problemas para você.
O que você pode tentar é primeiro criar um sistema de taxonomia. Primeiro, você atribui à "Universidade Stanford" um ID "1". Algo como a "escola de administração de pós-graduação de Stanford" obteria o ID "1.2.5", onde o novo "2" se refere à divisão de pós-graduação, "5" se refere à categoria de escola de negócios. Realmente depende de qual é seu objetivo final. Em resumo, configure uma lista de IDs para possíveis subdivisões, "Pós-graduação, graduação, etc." e depois subdivisões adicionais.
Para locais, geralmente você pode definir um local "primário" e "secundário", ou seja, "Palo Alto" e "Stanford", que podem ser determinados por histograma para cada um e selecionando os dois primeiros.
Para corrigir erros de ortografia, você pode usar a API de pesquisa do Google e explorar a seção "Mostrando resultados para ...", que fornecerá a ortografia correta.
fonte