No assignment 3, desenvolvemos a extração de algumas informações adicionais sobre os verbetes do DHBB. Se juntarmos os arquivos do DHBB com os dados extraídos, temos agora para cada verbete:
document : 10
name : Armando Abílio Vieira
birthplace : Itaporanga (PB)
birthdate : 29/12/1944
parents :
- Argemiro Abílio de Sousa
- Luísa Bronzeado Vieira
title : ABÍLIO, Armando
natureza : biográfico
sexo : m
cargos :
- dep. fed. PB 1995-1999
- dep. fed. PB 1999-2003
- dep. fed. PB 2007-2011
- dep. fed. PB 2012
autor :
- Alan Carneiro
- Demian Melo (atualização)
text : >-
«Armando Abílio Vieira» nasceu em Itaporanga (PB) no dia 29 de
dezembro de 1944, filho de Argemiro Abílio de Sousa e de Luísa
Bronzeado Vieira.
Em 1962 ingressou, em Recife, na Faculdade de Ciências...
Temos 7709 verbetes no DHBB sendo aproximadamente 6746 biográficos (sobre pessoas) e foram estes os verbetes que utilizamos no assignment 3:
% egrep -c "natureza:[ ]*biográfico[ ]*$" *.text | awk -F ':' '{print $2}' | sort | uniq -c
963 0
6746 1
Sobre os verbetes temáticos, só temos a estrutura:
title : INSTITUTO NACIONAL DE PREVIDÊNCIA SOCIAL (INPS)
natureza : temático
tipo :
- Organização
subtipo :
- Empresa
autor :
- Alzira Alves de Abreu
text : >-
Órgão criado pelo Decreto nº 72, de 21 de novembro de 1966 ...
Neste projeto, queremos desenvolver uma interface de busca sobre estes dados.
O demo atual tem como backend o sistema Elastic Search baseado no Lucene. Outro sistema baseado no Lucene é o Solr.
Na primeira parte do projeto, seu objetivo será estudar, instalar e indexar os dados do DHBB no Elastic Search ou Solr. Você deverá indexar os documentos da forma a permitir consultas como:
- documentos que contenham ‘Alzira’ no campo
autor
- documentos que a pessoa tenha nascido no ano de 1944 (campo
birthdate
) - documentos que a pessoa tenha nascido no estado do RJ (campo
birthplace
) - documentos cuja pessoa tenha sido dep. (deputado) (campo
cargos
) - documentos que contenham a palavra ‘professor’ no
text
- documentos que contenham a palavra ‘faculdade’ e ‘medicina’ no
mesmo parágrafo ou sentença (campo
text
).
Isto é, queremos permitir buscas por tokens nos campos ‘autor’, ‘cargos’, ‘birthplace’, ‘birthdate’ e minimamente buscas boleanas no campo ‘text’.
Idealmente, você precisará desenvolver uma UI (frontend) para que os seus usuários possam submeter consultas e ver resultados. Para isso, você terá total liberdade de criar, desde uma simples interface texto: um script que pode ser executado da linha de comando, execute a consulta e devolva os resultados imprimindo na saida; ou um notebook com instruções claras de como o usuário deve preparar o ambiente para usar o notebook e com exemplos de uso; ou uma simples interface web usando bibliotecas como Flask (ou qualquer similar).
Campos como tipo
, subtipo
, natureza
e sexo
não precisam ter
os valores processados, isto é, iremos assumir que a busca por um
destes campos será sempre baseada na localização de um de seus
valores exatos. Ex: uma busca no campo ‘tipo’ sempre será para
retornar os documentos cujo valor seja exatamente o informado, por
exemplo, todos os verbetes cujo tipo seja ‘Organização’.
Em https://web.stanford.edu/class/cs276/, você pode escolher fazer o ‘Programming assigment #1’
Obviamente, a entrega será feita sem seguir as intruções do curso de Stanford, apenas descomprimir o conteúdo do assignmente neste repo e trabalhar no repositório. Ignorar instruções sobre entrega e autograde.
Note que os dados de trabalho sugeridos no assignment original do curso de Stanford podem ser substituídos pelo DHBB (neste caso o campo ‘text’ apenas, ignorando os demais campos). Você deve adaptar as instruções para usar os textos dos 6746 verbetes biográficos ou trabalhar nos dados de Stanford reportando e justificando exatamente o problema que teve para adaptar o código para uso dos textos do DHBB.
Você será avaliado sobre:
- clareza e organização do seu repositório e código.
- precisa documentação do que foi feito e como devemos usar seu código.
- resultados do seu código em relação a tarefa.