Open ath67 opened 4 years ago
Acredito que uma ideia melhor, que algumas pessoas sugeriram no Twitter, seja criar hashes das variações de nome:
Faz sentido?
Acho que padronizar os nomes antes de criar hashes é melhor, porque o usuário só precisa pesquisar uma variação. Ou voce teria que de alguma forma atrelar os hashes das variações a um mesmo resultado. Por ex: Não importa se o usuário pesquisar o hash de JOAO ou joao que tendo um dos dois na base já daria a resposta positiva.
Não sei qual o mais fácil de implementar. Se estiver usando python mesmo (não conferi a execução do código) ai seria só criar um dict ou uma lista de listas(?)
Acho que padronizar os nomes antes de criar hashes é melhor, porque o usuário só precisa pesquisar uma variação
Não. Teríramos “todos” os hashes, e não importa como o usuário digitar, acharíamos o match.
Agora entendi melhor. Sim faz sentido. Não seria algo difícil de fazer.
Todos esses problemas são evitados se a busca for feita pelo CPF, identificador único. O nome completo inclusive não é um identificador único. Mas não sei se na lista tem estrangeiros sem CPF.
CPF não tem um muitas pessoa da lista. Não seria muito efetivo por causa disso…
Acho interessante uma abordagem de remover acentos, depois join
por -
e se possível, abrir uma possibilidade de campo extra (temos no dataset? como o colega apontou acima).
Por exemplo:
fulano-dampario-do-rosario
patricia-da-rosa-matos
Pergunto do campo extra, pela possibilidade de pessoas com nomes iguais, pelo menos no começo do nome, existir uma separação que faça essa unicidade.
Outra questão que me ocorreu, é que na base de dados do governo (sus, ministério do trabalho etc), já vi acontecer de em nomes com apóstrofo, ele "separarem" a letra inicial do restante do sobrenome, ex:
roberto-d-alessandro
.Qual a vantagem e como isso melhoria o caso de uso, @josecatalani?
Qual a vantagem e como isso melhoria o caso de uso, @josecatalani?
Vantagem que vejo é na assertividade: Como no exemplo do Roberto D'Alessandro, padronizando esses símbolos(apóstrofos etc) em um hash clean ainda que amigável para depois fazer a hash, facilite. O usuário pode digitar o nome como: Dalessandro, DAlessandro, D Alessandro e D'Alessandro; Tanto quando a base (que é governamental (?)) pode estar cadastrado diferente do usual.
Se com campo extra existente, é mais uma garantia em caso de nomes duplos.
O que acha?
O usuário pode digitar o nome
Não. A ideia não é o usuário digitar o nome. Não queremos esse dado na nossa plataforma, não queremos criar o hábito de digitar nome em qualquer plataforma que não seja muito conhecida e confiável (a nossa, acho, é confiável, mas não é conhecida hehehe…).
Preferimos manter como está hoje: o usuário não digita nome, apenas (parte do) hash. Por segurança, faz sentido.
Hmm agora ficou claro para mim! Apenas a entrada de hash, todo sentido.
Why not process the text from the names before creating the hashes so you turn everything to lower case or upper case? This would make the search easier and less time consuming. Also would grant a more accurate result. Would need to explain in the webpage that is needed to hash the user name in the same pattern processed in the tool instead of advising to do multiple searches.