écnicas para encontrar registros quase duplicad
Estou tentando limpar um banco de dados que, ao longo dos anos, adquiriu muitos registros duplicados, com nomes ligeiramente diferentes. Por exemplo, na tabela de empresas, existem nomes como "Some Company Limited" e "SOME COMPANY LTD!".
Meu plano era exportar as tabelas incorretas para R, converter nomes em minúsculas, substituir sinônimos comuns (como "limited" -> "ltd"), retirar caracteres não alfabéticos e usaragrep
para ver o que parece semelhante.
Meu primeiro problema é queagrep
aceita apenas um único padrão para corresponder, e o loop de todos os nomes de empresas para coincidir com os outros é lento. (Algumas tabelas a serem limpas terão dezenas, possivelmente centenas de milhares de nomes para verificar.)
Eu olhei muito brevemente para otm
pacote rtigo @JSS), e parece muito poderoso, mas voltado para a análise de grandes pedaços de texto, em vez de apenas nome
Tenho algumas perguntas relacionadas:
É otm
pacote apropriado para esse tipo de tarefa?
Existe uma alternativa mais rápida paraagrep
? (A referida função usa a distância de edição de Levenshtein, que é anedoticamente lenta.)
Existem outras ferramentas adequadas em R, além deagrep
etm
?
Eu deveria estar fazendo isso em R ou esse tipo de coisa deve ser feita diretamente no banco de dados? (É um banco de dados do Access, prefiro evitar tocá-lo, se possível.)