Realizado

Desenvolver Programa Java

Publicado em 06 de Fevereiro de 2019 dias na TI e Programação

Sobre este projeto

Aberto

Descrição do Projeto
Desenvolver programa em Java para transcrever texto de documentos web (html, htm) ou pdf (com OCR) para arquivo estruturado no formato .csv, conforme especificações.
Deverá ser fornecido código fonte (arquivos java) do programa desenvolvido e arquivos .jar, caso utilize complementos externos. O programa deverá funcionar sem uso de internet, ou seja, não deve acessar complementos externos, como API, exceto aqueles contidos em arquivos .jar.


Todas as classes e métodos deverão conter comentários que expliquem sua função, parâmetros de entrada e de saída.
Os arquivos de entrada deverão ser lidos de uma pasta denominada “input” na raiz do programa.
Os arquivos de saída deverão ser salvos em uma pasta denominada “output” na raiz do programa.
O projeto tem como principais desafios:
•    conseguir tratar as especificidades de cada tipo de arquivo de entrada, de forma a conseguir segmentar o conteúdo principal do arquivo (títulos e itens, como artigos, parágrafos, subitens) de informações desnecessárias (índice, notas, paginação, figuras, bibliografia, etc).
•    Tratar arquivos PDF e quebras de página indesejadas.
•    Tratar erros de digitação, como falta de espaços.


Embora possa parecer simples, o projeto traz bons desafios ao programador.

Especificações

Especificação 1:
Os arquivos de entrada constituem-se de documentos da legislação brasileira, normativos, manuais e similares (códigos, leis, decretos, portarias, regimentos, manuais, entre outros). Vide exemplos no ANEXO I.
Os arquivos de saída contém texto estruturado, que deverá seguir o padrão abaixo.

Incluir uma coluna à esquerda com o nome do arquivo processado.
Vide exemplos no anexo ii.
Ord    id    id_ext    tipo    descricao
0    parte i    parte i    título    
1    livro único    livro único    item    
2    título i    título i    item    da aplicação da lei penal
3    subtítulo ii    subtítulo ii    item    
4    capítulo v    capítulo v    item    das espécies de pena
5    seção xx    seção xx    item    das penas restritivas de direitos
6    subseção x    subseção x    item    disposições gerais
7    art. 1°.

Art. 1°.    Item    A decretação da intervenção dependerá:
8    § 1°.

§ 1°.    Item    Cessados os motivos da intervenção, as autoridades afastadas de seus cargos a estes voltarão.
9    Parágrafo único.

Parágrafo único.    Item    Lei complementar disporá sobre:
10    Pena    Pena    Item    5 (cinco) anos de reclusão.
11    Medida Administrativa    Medida Administrativa    Item    Multa.


12    Meta    Meta    Item    100% dos domicílios atendidos.
13    I    I.    Item    É garantido ao servidor público civil o direito à livre associação sindical;
14    I a III    I.

A III.    Item    Revogados.
15    §§ 4º.

E 5°.    §§ 4º. E 5°.

Item    Vetados.
16    a)    Alínea a)    Item    Sessenta anos de idade e trinta e cinco de contribuição;
17    1    1.    Item    Maior de 65 anos;
18    1.1    1.1.

Item    Estados e municípios;
19    1)    1)    Item    Animais domésticos;
20        @@    Título    dos idosos
21        @@    item    frações não computáveis da pena
(vide tabela formatada no pdf da descrição)

especificação 2:
nos casos dos itens que não possuírem identificação, o campo id_ext deverá ser preenchido com “@@”.
Ex.:
Entrada:
Prazo de duração do contrato.
Saída:
ord    id    id_ext    tipo    descricao
0        @@    item    prazo de duração do contrato.
(Vide tabela formatada no PDF da descrição)

Especificação 3:
Nos casos dos itens ou títulos que não possuírem descrição, o campo deverá permanecer vazio.


Ex.:
Entrada:
Título Único
Saída:
ord    id    id_ext    tipo    descricao
0    título único    título único    título    
(vide tabela formatada no pdf da descrição)

especificação 4:
o texto da coluna descrição deverá ser formatado conforme se segue:
quando o tipo for título, exceto subtítulo e subseção: uppercase.
Quanto o tipo for TÍTULO, especificamente para subtítulo e subseção: Camel Case.
Demais casos: primeira letra da frase maiúscula.


Ex.:
Ord    id    id_ext    tipo    descricao
0    subseção x    subseção x    título    disposições gerais
1    art. 1°.    Art.

1°.    Item    A decretação da intervenção dependerá:
(vide tabela formatada no PDF da descrição)

Especificação 5:
A descrição de itens revogados ou vetados deverá ser substituída pelas respectivas expressões “Revogadas” ou “Vetadas”, respectivamente.
Ex.:


Entrada:
Art. 6° (V E T A D O)
Saída:
ord    id    id_ext    tipo    descricao
0    art. 6°.

Art. 6°.    Item    Vetado.


(Vide tabela formatada no PDF da descrição)

Especificação 6:
Itens revogados ou vetados dispostos em sequência no documento deverão ser agrupados.
Ex.:
I.    (Vetado).
II.    (Vetado).


III.    (Vetado).
Registro no arquivo de saída:
ord    id    id_ext    tipo    descricao
0    i a iii    i.

A III.    Item    Vetados.
(Vide tabela formatada no PDF da descrição)

Especificação 7:
Notas e observações referentes ao item do documento, normalmente incluídas no final da frase, entre parênteses, ou no rodapé dos documentos, deverão ser removidos do arquivo de saída.



Ex.:
(Redação dada pela Emenda Constitucional nº 49, de 2006)
(Vide Lei nº 13.105, de 2015)   
(Vigência)
(Regulamento)     
(Incluído pela Emenda Constitucional nº 45, de 2004) 
(Atos aprovados na forma deste parágrafo: dlg nº 186, de 2008, dec 6.949, de 2009, dlg 261, de 2015, dec 9.522, de 2018) 
(Produção de efeito)
(NR)

Obs.: A lista acima não é exaustiva e outros tipos de notas e observações devem ser removidos.
Especificação 8:
Excesso ou falta de espaços devem ser corrigidos.
E.X:
•    Art.7°. Corrigido para Art. 7°.


•    §3°. Corrigido para § 3°.

Especificação 9:
Símbolos transcritos incorretamente devem ser corrigidos pelo programa.
Ex.:
“Art. 1o” deve ser corrigido para “Art. 1°”.


Especificação 10:
Quando houverem 2 ou mais registros consecutivos do tipo TÍTULO, apenas o primeiro deve ser mantido com essa classificação. Os demais devem ser classificados como ITEM no arquivo de saída. Essa mudança de classificação não deve alterar a formatação do texto dos itens do tipo Título, reclassificados para item, que devem permanecer com caixa alta.


Especificação 11:
Conteúdo como índices, sumários, listas de figuras, legendas, notas de rodapé, numeração de páginas, gráficos, tabelas, fórmulas, datas por extenso (Brasília, 25 de janeiro de 1982), bibliografia, lista de autores não devem ser incluídos no arquivo estruturado.
Sugere-se usar uma abordagem que identifique divergências desse tipo de conteúdo com o padrão de conteúdo principal, a fim de permitir sua segmentação.
Note que a maior parte do texto poderá ser reconhecida pelos identificadores (Art.,

§, Incisos, alíneas, itens, capítulo, título, etc).
Esses identificadores poderão ser utilizados para determinar o início e o fim do documento, bem como distinguir o texto de interesse de áreas do documento que contenham tabelas, figuras, quadros, gráficos, notas de rodapé, páginas e legendas.
Especificação 12:
No tratamento de arquivos no formato pdf, observar que devem ser tratadas as quebras de linha indesejadas, inseridas durante o processo de conversão do formato pdf para texto (como aquelas encontradas no meio de palavras ou frases).


Prazo
O prazo de execução do projeto é de 5 semanas, conforme cronograma a seguir:
Semanas 1 e 2:  programa funcional para arquivos de entrada do tipo web (html e htm).
Semana 3: programa funcional para arquivos de entrada do tipo PDF. Execução de ajustes indicados pelo cliente, referente à entrega ocorrida nas semanas 1 e 2.


Semana 4: Execução de ajustes indicados pelo cliente, referente à entrega ocorrida nas semanas 1 a 3.
Semana 5:  Validação pelo cliente e ajustes finais.
Validação
Para validação, o cliente irá compilar e executar o programa com os arquivos de entrega indicados no Anexo III - Amostras de teste para validação, devendo obter como resultado arquivos estruturados, seguindo o padrão informado: anexo ii.


Além disso, irá executar o programa com outras amostras selecionadas aleatoriamente e avaliará o resultado final.
ANEXO I – Exemplos de Arquivos de Entrada
CF88.html
L8666.hmt
MRPR.pdf
Euff.pdf
anexo ii – exemplos de arquivos de saída
output.Csv
anexo iii – amostras de teste para validação
nos casos em que o programa apresentar comportamento diferente do previsto, será solicitado o ajuste.

Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Alteração média
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário
Funções necessárias Desenvolvedor

Prazo de Entrega: Não estabelecido

Habilidades necessárias