Substantivo Proprio De Cidade - Substantivo Proprio De Cidade - MAGEDU
Substantivo Proprio De Cidade - MAGEDU

Trabalhando com nomes próprios de cidades em bases de dados

A maioria dos problemas que vejo surgem quando alguém tenta padronizar nomes de cidades vindos de fontes diferentes. O nome correto existe, mas na prática você vai esbarrar em variações constantes que ninguém se preocupa em documentar. Eu lido com isso há anos e a parte mais chata não é a regra gramatical. É lidar com a realidade suja dos dados.

O que realmente é um substantivo próprio de cidade

Um substantivo próprio de cidade é o nome singular e específico que identifica um município, bairro ou assentamento urbano. Em português, leva letra maiúscula no primeiro caractere e não recebe artigo integrado na grafia padrão. "Recife" é o nome. "O Recife" é uma construção com artigo, comum na fala mas diferente do substantivo puro. A armadilha mais comum é confundir a forma falada com a forma registrada. "Natal", "Salvador", "São Paulo" — todos são substantivos próprios, mas alguns carregam componentes que parecem comuns e geram dúvida na hora de tratar automaticamente.

Padroes práticos que funcionam

Na prática, eu sigo estes passos ao limpar uma lista de cidades: Tiro artigos antecipados. "A Bahia" vira "Bahia". "O Porto" vira "Porto". Isso simplifica a busca e o cruzamento.

Mantenho a grafia oficial do IBGE quando o dado for brasileiro. Eles publicam a relação completa e atualizada todo ano. Usem a versão mais recente, não a que já está na memória de ninguém. Unifiquem a acentuação. Dados vindos de planilhas antigas, importações de Excel mal feitas, exports de CRM — tudo isso gera "Sao Paulo" colado com "São Paulo". Remova a acentuação apenas para comparação, nunca para exibição final.

Tratem acento e cedilha como variantes ortográficas, não como erros. "Caieiras" não é erro de digitação de "Caiabras". Respeitem a grafia original até provar o contrário.

Um caso real que quase me custou semanas

Teve uma vez que importei dados de cadastro de clientes e a columna cidade vinha misturada com o nome da rua em cerca de 14% dos registros. Ninguém documentou o porquê, só vi depois. A tabela tinha "Sao Paulo Av. Paulista" colado. O sistema de limpeza padrão não separava, porque o delimitador esperado era vírgula e ali estava espaço. A solução foi rodar uma regex de captura que isolava os nomes oficiais do IBGE antes do espaço. Segue o padrão que usei, adaptado para Python:

carreguei a lista oficial do IBGE em um set. A listagem tem mais de 5.500 municípios. Perfeitamente tratável. Para cada registro sujo, busquei o prefixo que correspondia a algum municipio. Se achava, fatiava a string e limpava. Se não achava, deixava bruto mesmo.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Levou quatro horas para rodar a limpeza de 80 mil linhas. Antes, levava dois dias de trabalho manual e ainda assim errava.

O que ninguém te conta sobre nomes de cidade

Uma coisa importante: nomes de cidade mudam. Não é teoria. Mudei a grafia de "Santo Amaro" para "Santo Amaro" em um mapeamento e depois vi que a municipalidade correta era "Santo Amaro da Imperatriz". Duas cidades diferentes, mesma raiz. O outro ponto que as pessoas ignoram é a questão dos distritos. "Porto Alegre" é o município. "São João do Polêsine" é outro município completamente. Mas dentro de Porto Alegre existe o bairro "Porto Alegre" no Rio Grande do Sul que não é o centro. Em bases de dados sem hierarquia clara, você perde essa distinção.

A recomendação aqui é simples: se o sistema permite, armazene a cidade com o código do município. IBGE tem códigos numéricos de 7 dígitos. Um código não muda com grafia, não sofre com tradução, não tem acento que quebra.

Falhas que valem a pena conhecer

O método que descrevi tem limitações sérias. Se você trabalha com cidades de países que não usam o alfabeto latino, a abordagem de regex quebra. Beijing, Bei Jing, Pequin, Beking — tudo aparece em bases reais. Nenhum prefixo fixo resolve isso. A outra falha é com cidades que compartilham nome. Existem pelo menos cinco cidades chamadas "Florida" nos Estados Unidos sozinhas. Sem o estado ou a coordenada, você não sabe qual é. Minha experiência diz que pelo menos 3% dos cadastros genéricos de cidade têm essa ambiguidade silenciosa.

Se o seu cenário exige precisão geografica, o ideal é cruzar com GeoNames ou com a base do IBGE usando coordenadas. O custo é maior, mas o resultado é muito mais confiavel.

Como acessar a base oficial brasileira

O IBGE disponibiliza a Relação de Municípios em formato CSV e TXT diretamente no site deles. O link é direto, sem cadastro, sem bucle. A página é atualizada anualmente e costuma levar algumas semanas para refletir criações e extincoes de municipios. Para outros paises, o GeoNames oferece download gratuito com cobertura global. A licença permite uso em projetos internos sem custo. Para uso comercial de larga escala, vale verificar a politica especifica deles.

Resumo do que funciona no dia a dia

Use a fonte oficial quando existir. Mantenha a grafia original. Desacople codigo numerico do nome durante o armazenamento. Aceite que nomes sozinhos nao resolvem tudo. E tenha sempre uma lista de redundancias locais, porque existe cidade com nome igual em estados diferentes e isso vai morder voce no minimo sinal de fraqueza da sua validacao. Se o seu problema é especifico e voce quiser ajuda com um caso concreto, coloque os detalhes que a gente resolve.