Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transformar pdf em texto #35

Open
3 of 6 tasks
guilacerda opened this issue May 28, 2019 · 4 comments
Open
3 of 6 tasks

Transformar pdf em texto #35

guilacerda opened this issue May 28, 2019 · 4 comments
Assignees
Labels
bug Something isn't working Enhancement

Comments

@guilacerda
Copy link
Contributor

guilacerda commented May 28, 2019

Descrição
Foi identificado que o parser do pdf para tsv gera uma desordem nas tabelas, e isso causa um caos que não é interpretável, é um padrão que muda a cada pdf que é transformado em tsv, insustentável manter. Uma segunda estratégia é transformar o próprio pdf em texto e tentar criar um padrão para gerar o cardápio de modo adequado ao bot.

Tarefas

  • Transformar o pdf em txt (library tika)
  • Criar um padrão para interpretar as colunas (dias)
  • Expor os dados via api para ser consumido pelo bot

Critérios de Aceitação

  • O bot consegue responder o cardápio do dia
  • O bot consegue responder o cardápio da semana
  • O bot consegue responder cada refeição separadamente
@guilacerda guilacerda added bug Something isn't working Enhancement labels May 28, 2019
@guilacerda
Copy link
Contributor Author

A primeira tarefa era utilizar a biblioteca tika para transformar pdf em texto. Foi uma recomendação que encontramos na internet que é muito boa, porque ele gera um txt muito bem estruturado, sem nenhum erro de faltar alguma palavra e tudo mais. Foi super adequado ao nosso contexto, tendo em vista que o pdf é muito mal estruturado...

@guilacerda
Copy link
Contributor Author

Então, utilizando a tika ele transforma tudo em texto, porém a separação de cada coluna é feita por espaço em branco, então encontramos uma gambiarra/padrão, que será necessária para dar tempo de apresentarmos na Campus Party 2019 BSB, que todo início de coluna é inicializada com uma letra maiúscula. Então começamos a separar cada início de coluna a partir da primeira letra maíuscula. Porém identificamos um problema, as vezes o "ser" que elabora o cardápio coloca no meio do nome uma letra maíuscula (no segundo nome, geralmente quando é composto). Com isso fizemos alguns filtros que não permite pegar nenhuma palavra que inicia com letra maiúscula vem após algum tipo de conector, por exemplo: de, e, ",", com, ...

@guilacerda
Copy link
Contributor Author

Após fazer esse filtro, conseguimos fazer a separação de cada refeição corretamente. Com isso já estamos expondo todo o conteúdo na rota cardapio//<refeição>

@guilacerda
Copy link
Contributor Author

Agora o que está faltando é unir todo o trabalho com a stack do Lino.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Enhancement
Projects
None yet
Development

No branches or pull requests

2 participants