public override bool EstaBatido( Indexacao indexacao, IList <PalavraReconhecida> palavrasReconhecidas) { if (string.IsNullOrEmpty(indexacao.ObterValorParaBatimento())) { return(false); } if (string.IsNullOrWhiteSpace(indexacao.ObterValorParaBatimento())) { return(false); } var palavrasParaAnaliseFullTextGenerica = this.batimentoFullText .ExtrairTextoGenerico(palavrasReconhecidas); var nomeCompleto = indexacao .ObterValorParaBatimento() .RemoveAcentuacao() .ToLower() .Trim() .Split(' ') .ToList(); var contadorMatch = 0; foreach (var nomeNoCadastro in nomeCompleto) { var resultado = palavrasParaAnaliseFullTextGenerica.Any(x => x.Texto.RemoveAcentuacao() == nomeNoCadastro); if (resultado) { contadorMatch++; } if (contadorMatch >= 2) { return(true); } } return(false); }
public override bool EstaBatido( Indexacao indexacao, IList <PalavraReconhecida> palavrasReconhecidas) { ////Encontra posicao da ultima palavra de rua na lista de palavras reconhecidas var indexacaoLogradouro = indexacao .Documento .Indexacao .FirstOrDefault(x => x.Campo.Id == Campo.CampoLogradouroComprovanteDeResidencia); if (indexacaoLogradouro.NaoTemConteudo()) { return(false); } if (indexacaoLogradouro.ValorFinal.NaoTemConteudo()) { return(false); } var posicaoNaLista = this.ObterPosicaoDoLogradouroEmPalavraReconhecida( indexacaoLogradouro.ValorFinal, palavrasReconhecidas); if (posicaoNaLista > 0) { var posicaoFinalNaLista = posicaoNaLista + 20 <= palavrasReconhecidas.Count ? posicaoNaLista + 20 : palavrasReconhecidas.Count; for (var i = posicaoNaLista; i <= posicaoFinalNaLista; i++) { if (this.CompareNumeros( indexacao.ObterValorParaBatimento().Trim(), palavrasReconhecidas[i - 1].Texto)) { return(true); } } } return(false); }
public override bool EstaBatido( Indexacao indexacao, IList <PalavraReconhecida> palavrasReconhecidas) { var listaLimpa = this.ObterListaLimpaDePalavras(palavrasReconhecidas); var valorCadastro = indexacao.ObterValorParaBatimento(); if (string.IsNullOrEmpty(valorCadastro)) { return(false); } valorCadastro = valorCadastro .RemoveAcentuacao() .ToLower() .Trim(); var listaNomes = valorCadastro .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var nomesNoCadastro = listaNomes; var encontrou = false; var ultimaPosicaoEncontrada = 0; var contadorMatch = 0; var posInicial = 0; var batido = false; foreach (var nomeNoCadastro in nomesNoCadastro) { for (var i = posInicial; i < listaLimpa.Count; i++) { var palavraReconhecida = listaLimpa[i].Texto.Trim().ToLower(); ////primeiro Nome if (!encontrou) { if (palavraReconhecida.Equals(nomeNoCadastro)) { encontrou = true; ultimaPosicaoEncontrada = i; contadorMatch++; posInicial = i + 1; break; } } else { //// segundo nome em diante if (palavraReconhecida.Equals(nomeNoCadastro)) { if (i - 1 != ultimaPosicaoEncontrada) { encontrou = false; break; } ultimaPosicaoEncontrada = i; contadorMatch++; posInicial = i + 1; break; } else { encontrou = false; break; } } } } batido = contadorMatch == nomesNoCadastro.Length; if (batido == false) { if (this.proximaTentativa.NaoTemConteudo() == false) { batido = this.proximaTentativa .EstaBatido(indexacao, palavrasReconhecidas); } } return(batido); }
public override bool EstaBatido(Indexacao indexacao, IList <PalavraReconhecida> palavrasReconhecidas) { var palavrasParaAnaliseFullTextGenerica = this.batimentoFullText .ExtrairTextoGenerico(palavrasReconhecidas); if (indexacao.ObterValorParaBatimento().NaoTemConteudo()) { return(false); } var nomeCompleto = indexacao .ObterValorParaBatimento() .RemoveAcentuacao() .ToLower() .Trim(); var listaNomes = nomeCompleto.Split(' ').ToList(); var encontrou = false; var ultimaPosicaoEncontrada = 0; var contadorMatch = 0; var posInicial = 0; foreach (var nomeNoCadastro in listaNomes) { for (int i = posInicial; i < palavrasParaAnaliseFullTextGenerica.Count; i++) { var palavraReconhecida = palavrasParaAnaliseFullTextGenerica[i].Texto.Trim().ToLower(); ////primeiro Nome if (!encontrou) { if (palavraReconhecida.Equals(nomeNoCadastro)) { encontrou = true; ultimaPosicaoEncontrada = i; contadorMatch++; posInicial = i + 1; break; } } else { if (palavraReconhecida.Equals(nomeNoCadastro)) { if (i - 1 != ultimaPosicaoEncontrada) { return(false); } ultimaPosicaoEncontrada = i; contadorMatch++; posInicial = i + 1; break; } return(false); } } if (!encontrou) { return(false); } } return(true); }
public override bool EstaBatido(Indexacao indexacao, IList <PalavraReconhecida> palavrasReconhecidas) { var palavrasParaAnaliseFullTextGenerica = this.batimentoFullText .ExtrairTextoGenerico(palavrasReconhecidas); if (indexacao.ObterValorParaBatimento().NaoTemConteudo()) { return(false); } var nomeCompleto = indexacao .ObterValorParaBatimento() .RemoveAcentuacao() .ToLower() .Trim(); var listaNomes = nomeCompleto.Split( new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var nomesNoCadastro = new List <string>(); nomesNoCadastro.Add(listaNomes.First()); nomesNoCadastro.Add(listaNomes.Last()); var encontrou = false; var contadorMatch = 0; var posInicial = 0; var batido = false; foreach (var nomeNoCadastro in nomesNoCadastro) { for (var i = posInicial; i < palavrasParaAnaliseFullTextGenerica.Count; i++) { var palavraReconhecida = palavrasParaAnaliseFullTextGenerica[i] .Texto .Trim() .ToLower(); ////primeiro Nome if (!encontrou) { if (palavraReconhecida.Equals(nomeNoCadastro)) { encontrou = true; contadorMatch++; posInicial = i + 1; break; } } else { //// segundo nome em diante if (palavraReconhecida.Equals(nomeNoCadastro)) { contadorMatch++; posInicial = i + 1; break; } } } } batido = contadorMatch == nomesNoCadastro.Count; if (batido == false) { if (this.proximaTentativa.NaoTemConteudo() == false) { batido = this.proximaTentativa .EstaBatido(indexacao, palavrasReconhecidas); } } return(batido); }