Como aprendemos a processar rapidamente as verificações

Neste artigo, mostrarei como aprendemos a reconhecer as verificações (ou melhor, os deslizes), que tipo de rake eles pisaram e que tipo de eficiência alcançamos.

Vou começar com uma breve introdução. Ganhamos promovendo promoções para fabricantes e vendedores de uma variedade de bens de consumo. Como regra, isso é algo da categoria de "compre mercadorias - encontre o código - envie-nos - ganhe um prêmio". Nosso principal produto é uma plataforma que gera, aceita, processa esses códigos, ajuda a se comunicar com os participantes, paga bônus e faz muito mais.

Recentemente, começamos a ver cada vez mais promoções de colegas da loja, onde a confirmação da compra não era um código promocional, como no exemplo acima, mas uma foto de um cheque. E agora o fenômeno se espalhou. Não era permitido ficar longe.

Antes de tudo, registrei-me em todos os compartilhamentos com os cheques que descobri (bem, para ser sincero, de maneira alguma, em algum lugar na área dos dez segundos, eu me cansei). Acho que você não tinha nenhum cheque, e decidi usar a foto de um gato em um plano de fundo abstrato em vez de um cheque. Imagine minha surpresa quando, em todas as ações, exceto uma, meu gato foi aceito e admitido para mim antes do sorteio. E, em alguns lugares, eles até emitiram um prêmio instantâneo na forma de um código promocional para a biblioteca on-line. Honestamente, nessa ação, o gato também foi aceito, mas prometeu enviá-lo com moderação e dentro de 8 (!) Horas para resolver o problema de minha participação na ação.

Esta opção obviamente não nos convinha. Em primeiro lugar, não é bom permitir que uma pessoa jogue em qualquer foto. Ele pode, desde que a plataforma permita o upload de uma foto do mesmo cheque, aumentando repetidamente suas chances de conseguir uma vitória. Quando um desses pedidos vence, o original desse cheque único é apresentado e o prêmio é recebido. Claro, há uma chance de ganhar duas vezes e se trair, mas já estamos empolgados com isso. Em segundo lugar, oito horas sem dar feedback às pessoas parecem zombadoras em um mundo em que um visitante que passou mais de 15 segundos em um site é considerado alvo. Em terceiro lugar, dar um prêmio por uma foto de um gato significa mostrar a si mesmo que não é um organizador muito competente. A propósito, aqui está ele.



A conclusão foi óbvia: precisamos aprender a reconhecer cheques. A tarefa é difícil, por isso fomos aos profissionais - uma empresa bem conhecida. Felizmente, eles tinham uma solução para reconhecer cheques, que, infelizmente, não estavam localizados no mercado russo. Em homenagem a isso, eles nos deram 1000 tentativas gratuitas para reconhecer o cheque, uma promessa de ajudar com conselhos e desejaram boa sorte a eles.

Nesse momento, uma solicitação do cliente apareceu. Nossa tarefa era realizar uma ação para uma grande rede de lojas de varejo. No futuro, direi que eles aceitaram até 1.000 registros por dia. Para se qualificar para prêmios em promoções, você tinha que comprar algo a um custo de N rub a partir de um determinado período de tempo. e não se esqueça de pagar pela sua compra com um cartão VISA. A foto obtida ao comprar um boleto deve ser carregada em nosso site promocional. Se você foi reconhecido como vencedor, tinha de apresentar um boleto e um cartão VISA nas bilheterias e receber o prêmio. Uma foto - uma chance de ganhar. O vencedor é calculado entre todos os participantes que carregaram os boletos corretos, de acordo com uma fórmula especial. Nossa tarefa, nesta fase, é aceitar o deslize e permitir / não permitir que uma pessoa participe do desenho. Ao mesmo tempo, é desejável cortar ao máximo os truques que podem tentar nos escorregar um deslize duas vezes, deslizar o deslizamento impresso antes do início da ação e muitas outras coisas interessantes, incluindo, entre outras, a foto do gato.

Testes múltiplos de um produto de uma grande empresa mostraram que ele determina o valor da compra, tipo de cartão, número do cartão, hora e data da impressão. E parece que: duplicamos (para isso, calculando os hashes dos parâmetros reconhecidos e a própria imagem), reconhecemos o valor, a data, o sistema de pagamento e o número do cartão. É verdade que é reconhecido com erros ... e não com todos.

Deixe-me lembrá-lo de que, ao emitir um prêmio, o vencedor verificou o valor e o cartão do boletim, ou melhor, os últimos 4 dígitos do número do cartão. Os dados foram verificados com o registro, que, de acordo com os resultados do sorteio, foi enviado automaticamente para a loja pelo nosso sistema. Ou seja, esses dados simplesmente devem estar corretos.

Tivemos que fazer o primeiro compromisso: pedimos ao participante que insira o valor da compra e os últimos 4 dígitos do número do cartão manualmente. Além disso, se o que a pessoa digitou e o que a máquina reconheceu coincidiu, e o sistema de pagamento e a data de impressão do boleto estiverem corretos, permitiremos que o participante desenhe.
Achamos que permitimos apenas 71% dos deslizamentos. Os 29% restantes são imagens incorretas ou de baixa qualidade e imagens corretas, mas reconhecidas incorretamente em uma proporção aproximada de 50/50.

E esses 14,5% dos cheques rejeitados por engano? A solução veio rapidamente, eles começaram a enviar um aplicativo manual para um contact center amigável. Das desvantagens: caras e longas. Se 71% dos sortudos obtiverem o resultado em um minuto, essas pessoas terão que relatar a espera de até 8 horas. Foi decidido tentar normalizar os resultados do reconhecimento em nosso sistema.

Ativamos a análise: verificamos manualmente os dados na foto e o resultado do reconhecimento. O resultado do reconhecimento chega da seguinte forma: separadamente os campos "data", "quantia" etc. e separadamente o texto completo, ou seja, em geral tudo o que foi encontrado na imagem. Freqüentemente, dados não contidos em um dos primeiros campos podem ser encontrados no texto completo através dos olhos. Com base na análise de várias centenas de boletos, decidimos fazer o seguinte:

1) Distinguimos o cheque do comprovante: entre todos os comprovantes aceitos, procuramos um comprovante com o número máximo de linhas. Para qualquer documento rejeitado (por qualquer motivo), consideramos o número de linhas, se exceder o máximo calculado anteriormente, dizemos à pessoa: “Talvez você esteja tentando fazer o download de um cheque, não de um recibo. Tire uma foto da nota separadamente da verificação e tente novamente. " Assim, uma pessoa entendeu melhor o que havia de errado com sua foto.

2) Se a data não for reconhecida: tentamos procurar no texto completo o fragmento pela máscara “XX / XX / XU”, onde X é qualquer número e Y é qualquer caractere. Ao encontrar o fragmento Y, altere-o para 6 (ou 7, dependendo do ano de verificação), considere o fragmento encontrado como a data em que o recibo foi impresso. Sim, sim, o sistema cortou a grama principalmente no último dígito da data. Ganhou 2%.

3) Se a quantia não for reconhecida: procure no texto completo a máscara "ZXXXX.XX RU", onde X é qualquer número e Z é qualquer caractere, incluindo um espaço ou a ausência de um caractere. O fragmento encontrado é comparado com o que o participante inseriu. Se houver uma discrepância, substitua todos os 6 por 8 caracteres no fragmento encontrado, um por um e compare com o que você inseriu. Por alguma razão, a máquina geralmente confunde exatamente 6 e 8, e não 8 e 6, ou seja, 6 e 8. O ganho é de cerca de 3%.

4) Número do cartão: procure no texto completo a máscara “** XXXX”, onde X é qualquer número. Entre os caracteres X pode haver espaços ou sinais de pontuação, nós os descartamos. O número resultante é comparado com o número do cartão inserido manualmente. + 1%.

5) Cartão de pagamento: procure no texto completo um dos fragmentos: “Cartão: V”, “Cartão: V”, “Cartão'V”, “VISH”. Se localizado, considere o cartão como um cartão VISA. + 3%.

Assim, aumentamos o número de solicitações aceitas em um minuto para 80%. Infelizmente, as possibilidades de normalização foram praticamente esgotadas, e passamos a aumentar a eficiência do reconhecimento manual (mas essa é outra história).

Em geral, até onde eu sei, acabamos sendo a primeira campanha no país com reconhecimento real de cheques por máquina. O resultado pela primeira vez não me parece ruim, mas no verão nosso parceiro prometeu melhorar significativamente a qualidade do reconhecimento enviando oficialmente a versão russa de seu serviço.

Source: https://habr.com/ru/post/pt401391/


All Articles