Skip to content

Melhoria para geração qualificada de dados #42

@thiagodp

Description

@thiagodp

Issue gerada a partir de #17


Uma ideia para melhorar a qualidade dos dados gerados pela abordagem é utilizar uma biblioteca de geração de dados fictícios como a Faker, fazer um mapeamento de palavras para a API dela (Português e Inglês) e calcular a distância de palavras usando js-levenshtein por exemplo.

Exemplo:

const langs = {
   'pt': {
       'nome': '{{name.firstName}} {{name.lastName}}',
       'cep': '{{address.zipCode}}',
       'cidade': '{{address.city}}'
   },
   'en': {
       'name': '{{name.firstName}} {{name.lastName}}',
       'zip': '{{address.zipCode}}',
       'city': '{{address.city}}'
   },   
};

function dado( idOuNomeDoCampo, idioma ) {
  const lang = langs[idioma]; // TO-DO: validar
  if ( lang[ idOuNomeDoCampo ] ) { // correspondência exata
    return faker.fake( lang[ idOuNomeDoCampo ] );
  }
  // Varre definições
  for ( const chave in lang ) {
      // 80%+ de similaridade
      if ( levenshtein( lang[ chave ], idOuNomeDoCampo ) ) <= 2 ) {
         return faker.fake( lang[ idOuNomeDoCampo ] );
      }
  }
  // Retorna `undefined` ao não encontrar
}

Dá pra melhorar a função para também considerar o tipo do campo, como tipo tel, email, etc., incluindo a chave correspondente no objeto com as palavras e comparando.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions