Estoy tratando de analizar algunos datos que tengo pero hay muchas inconsistencias en mis datos.
Tengo una tabla SQL que estoy tratando de analizar.
La tabla es una tabla de universidades con la siguiente estructura: el name:string, city:string, state:string, country:string
nombre siempre está presente, sin embargo, puede faltar la ciudad, el estado o el país. Mi principal problema es que hay un montón de errores tipográficos y una declinación diferente del nombre de una universidad. Por ejemplo, aquí está la declinación de la Universidad de Standford que encuentro cuando lo hago 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
Todos son la misma universidad, pero algunos tienen errores tipográficos, algunos tienen nombres diferentes, algunos no tienen ciudades, algunos tienen las ciudades equivocadas, ... Los datos no son excelentes.
Entonces estoy tratando de arreglarlo. ¿Cómo puedo consolidar estos datos?
Respuestas:
Dado que este conjunto de datos ya está organizado en una tabla, puede aprovechar las funciones estándar de SQL para realizar una gran parte de la limpieza. Un registro parece estar compuesto de 4 campos, por ejemplo:
Puede seguir estos pasos para obtener una representación más limpia de este conjunto de datos:
fuente
Esto es bastante difícil de hacer sin estructurar primero su conjunto de datos. Hay una razón por la que los conjuntos de datos limpios cuestan miles de dólares porque intentan solucionar estos problemas por usted.
Lo que puedes probar es crear primero un sistema de taxonomía. Primero le da a la "universidad de Stanford" una identificación de "1". Algo así como la "escuela de negocios de posgrado de Stanford" obtendría la identificación "1.2.5", donde el nuevo "2" se refiere a la división de escuela de posgrado, "5" se refiere a la categoría de escuela de negocios. Realmente depende de cuál es tu objetivo final. En resumen, configure una lista de ID para posibles subdivisiones, "Graduado, pregrado, etc." y luego más subdivisiones.
Para las ubicaciones, generalmente puede definir una ubicación "primaria" y "secundaria", es decir, "Palo Alto" y "Stanford", que puede determinar mediante histogramas para cada uno y seleccionando los dos primeros.
Para corregir errores ortográficos, puede usar la API de búsqueda de Google y explotar el "Mostrando resultados para ..." que le daría la ortografía correcta.
fuente