Ir para conteúdo
FabianoSouza

Aplicar gênero / dicionário de nomes

Recommended Posts

Pessoal, tenho uma lista com 100.000 nomes.

Preciso colocar o campo sexo para esses registros.

 

Os colegas sabem dizer se há alguma técnica, ferramenta ou função para realizar esse trabalho?

 

Tive uma ideia de fazer uma comparação usando  um "dicionário de nomes". Isso seria um caminho viável? Alguém teria um dicionário para disponibilizar?

 

 

Grato.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já viu este ?

 

O problema talvez seja o(a)s

José Maria

Maria José

 

basicamente obter o primeiro nome aplicar a lista , se o percentual de um gênero for alto aplica, senão deixa null, depois um ajuste manual corrige os faltantes.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela informação, @Motta.
Baixei os arquivos (CSV) .
Mas olhando os arquivos ainda não compreendi como utilizar. Pois não consegui identificar um padrão.
Por exemplo, no arquivo há linhas assim:

 

,M,ABENONE,,23,23,23,ABENONE,1.0

ABEROALDO|ADERALDO|ADERILDO|ADEROALDO,M,ABERALDO,,117,117,4190,ADERALDO,1.0

ADEVALDO,M,ABEVALDO,,22,22,6386,ADEVALDO,1.0

ABIGAEL|ABIGAL|ABIGUAIL|HABIGAIL,F,ABIGAIL,10122,181,10303,10483,ABIGAIL,0.9824323012714743

 

Quero saber se esses números que existem tem alguma finalidade ou se posso descartar essa parte da string.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu importaria para uma tabela temporária

 

faria um cursor do tipo

 

select primeiro_nome , chave from tabela


 

enquanto nao fim faça

   select * from temp where nome = cursor.primeiro_nome;

   se localizou

        update tabela set genero = temp.genero where chave = cursor.chave

se pode tratar também nomes como "alaor" que tem as duas frequencias e se optar por deixar nulo ou usar a mais frequente , aqui depende de como a informação vai ser usada , termos legais etc ...

 

a programação exata não sei pois não uso T/SQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por vicente386
      Ola. Tenho uma tabela no 3 campos que sao "LIVRO, POS, PAGINA" ao qual a logica e a seguinte: cada livro tem 100 paginas cada pagina tem 30 posiçoes tenho 8,364 registros pra inserir chegando a 100 paginas com 30 posiçoes cada passa para o livro 2 e como fazer o update na tabela inserindo nos campos LIVRO = 1, POS de 0 a 30 e PAGINA 1 para cada 30 registros logos apos pagina 2 ?
      estou tentando fazer assim:
      <?php > ini_set('max_execution_time', 2000); $pdo = new > DO(DB_SERVER.":host=".DB_HOST.";dbname=".DB_BASE,DB_USER,DB_PASSWORD); > $sql = $pdo->prepare("SELECT count(*) FROM tabela2018"); > $sql->execute(); > $livro = 1; > foreach($sql as $obj){ > $variavel = $obj[0]; > ceil((float)$variavel/100); > $qtdlaco = ceil((float)$variavel/100); > for ($id = 1; $id <= 35; $id++) { > for($L=1; $L < $qtdlaco; $L++) { > for ($P = 0; $P <= 30; $P++) { > $sql = $pdo->prepare("UPDATE tabela2018 SET LIVRO = :LIVRO, POS = :POS, PAGINA = :PAGINA WHERE idtabela2018 = $id"); > $sql->bindValue(':LIVRO', $livro); > $sql->bindValue(':POS', $P); > $sql->bindValue(':PAGINA', $L); > $sql->execute(); > } > } > } >} ?> mas na tebela so aparece: LIVRO POS PAGINA 1 30 83 1 30 83 1 30 83 e nao como deveria : LIVRO POS PAGINA 1 0 1 1 1 1 1 2 1
    • Por lezão
      Boa tarde, galera!
      Td bem com vcs?
       
      Estou precisando de um UPDATE que qnd eu seleciono o checkbox e clico no botão submit ele chama para a pagina que ira fazer a alteração.
      Tenho um exemplo só que  em asp, vejam abaixo:
      Imagem UPDATE
       
      espero ter explicado certo.
       
      obrigado!
       
    • Por Samuel Pietro
      Estou com a seguinte situação.
       
      Preciso que o Update só aconteça nos campos vazios. Por exemplo, tenho no CSV 
      id;a;b;c 1;1;;3 1;1;2;;  
      |id | a | b | c |
      | 1 | 1 |    | 3 |
      | 1 | 1 | 2 |  |
       
      Na primeira linha tenho o campo da coluna b em branco, logo ele irá inserir no banco de dados o conteúdo da primeira linha, quando ele ler a segunda linha irá ver que a minha key, que é a coluna id, já existe e irá atualizar, o problema é que eu preciso que  atualize apenas os campos em branco, pois se atualizar todos os campos ele iria substituir o campo da coluna c que ficaria em branco !
       
      O código que fiz até o momento! 
      INSERT INTO tabela (id, a, b, c) VALUES ('$column[0]','$column[1]','$column[2]','$column[3]') on duplicate key UPDATE id='$column[0]',a='$column[0]', b='$column[0]', c='$column[0]'  
      Gostaria da ajuda de vocês para saber como posso adequar esse código na minha necessidade, seria tipo adcionar is null UPDATE.. sei lá, tentei várias opções mas sem sucesso ainda! 
       
       
       
       
    • Por FERREIRA FILHO
      Estou tentando fazer um update de vários registros com checkbox, mais não está atualizando no banco de dados MySQL. Segue o meu código, desde já agradeço!
       
      <?php 
      include_once("../config/conexao.php");

      $nivel = $_SESSION['nivel'];
         
      if ($_SESSION['nivel'] == 4)
          {
      $sql = "SELECT ID, NOME, VOLUNTARIO FROM cidadao ORDER BY NOME";
      $res = mysql_query($sql) or die (mysql_error() );
      if (mysql_num_rows($res) > 0 )
      echo '<form method="post">';
      ?>
      <table width="431" border="0" align="center" cellpadding="0" class="bordaFina">
          <tr bgcolor="#999999" >
            <td width="302" align="center" valign="middle" bgcolor="#F0F0F0" class="style27">Nome  </td>
            <td width="123" align="center" valign="middle" bgcolor="#F0F0F0" class="style27">Voluntário</td>
          </tr>
          <?php
      while ($row = mysql_fetch_assoc($res))
          {     
          ?>
          <tr >
            <td><?php echo $row["NOME"];?></div></td>
        <td ><div align="center"> 
       <input type="checkbox" name= "VOLUNTARIOS[<?php  $row["ID"] ?>]" value="1" <?php if($row["VOLUNTARIO"] == 1){ echo "checked";} ?>> 
       <input type="hidden" name= "VOLUNTARIOS[<?php $row["ID"] ?>]" value="0" <?php if($row["VOLUNTARIO"] == 0){ echo ""; }  ?>>
        </div></td>
        </tr>
          <?php 
        }  //End While
        ?>
      </table>
        
      <p><div align="center"><?php echo '<input type="submit"name= "submit" value= "Salvar">';?></div>
        <?php
      if (isset ($_POST["submit"]))
      {        
              foreach($_POST['VOLUNTARIOS'] as $ID => $VOL) 
                {mysql_query("update cidadao SET VOLUNTARIO ='$VOL' WHERE ID='$ID'")or die(mysql_error()); }                    
                 echo "<meta HTTP-EQUIV='refresh' CONTENT='1;URL=teste.php'>";
      }
      ?>
      <?php
      echo'<br>';
      echo '</form>';
      }//endif
      ?>
       

    • Por unset
      Olá a todos, estou com uma dúvida ou probleminha e buguei aqui, se alguém puder ajudar, é o seguinte tem como eu fazer um update sem setar valor ou de alguma forma não alterar o valor do campo se o campo tiver valor no banco?
       
      Exemplo
       
      Aqui eu recebo os dados pra cadastrar tudo certo
       
      public function update($dados) { $this->db->query("UPDATE posts SET capa = :capa, titulo = :titulo, texto = :texto WHERE id = :id"); $this->db->bind(":id", $dados['id']); $this->db->bind(":capa", $dados['capa']); $this->db->bind(":titulo", $dados['titulo']); $this->db->bind(":texto", $dados['texto']); }  
      Porém, o campo capa, ou seja o dado caba não é obrigatório então se ele vier com valor null, ou em branco etc deveria não alterar o valor no banco pois o mesmo ja esta preenchido, como fazer para que ele altera o valor no banco somente se for null
       
      Eu já tentei usar unset($dados['capa']); para remover a capa, mais ele deixa o campo do DB null mesmo quando tem valor lá, e também definir $dados['capa'] = null, em fim não da certo...
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.