cuducos / pwned-antifas

https://projeto7c0.com.br/pwned-antifas/
GNU General Public License v3.0
50 stars 7 forks source link

[Feature Suggestion] Names padronization #7

Open ath67 opened 4 years ago

ath67 commented 4 years ago

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.

cuducos commented 4 years ago

Acredito que uma ideia melhor, que algumas pessoas sugeriram no Twitter, seja criar hashes das variações de nome:

Faz sentido?

ath67 commented 4 years ago

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(?)

cuducos commented 4 years ago

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.

ath67 commented 4 years ago

Agora entendi melhor. Sim faz sentido. Não seria algo difícil de fazer.

jeffersonvirgilio commented 4 years ago

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.

cuducos commented 4 years ago

CPF não tem um muitas pessoa da lista. Não seria muito efetivo por causa disso…

josecatalani commented 4 years ago

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:

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:

cuducos commented 4 years ago

Qual a vantagem e como isso melhoria o caso de uso, @josecatalani?

josecatalani commented 4 years ago

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?

cuducos commented 4 years ago

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.

josecatalani commented 4 years ago

Hmm agora ficou claro para mim! Apenas a entrada de hash, todo sentido.