-
-
Notifications
You must be signed in to change notification settings - Fork 17
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
Integra base para segmentadores e segmentador da AMA #64
Commits on Dec 13, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4b5616d - Browse repository at this point
Copy the full SHA 4b5616dView commit details -
Configuration menu - View commit details
-
Copy full SHA for e08ba51 - Browse repository at this point
Copy the full SHA e08ba51View commit details -
Cria módulo de segmentação para suportar novos segmentadores
- Cria módulo `segmentation` para organizar o código dos segmentadores - O módulo segue o padrão de classe base e classes derivadas para cada segmentador específico - O primeiro segmentador base é o `AssociationSegmenter` para segmentar documentos de associações de municípios - Uma dataclass para segmentos `GazetteSegment` também foi criada - Os segmentadores são instanciados por meio de uma fábrica `get_segmenter`
Configuration menu - View commit details
-
Copy full SHA for acadf0e - Browse repository at this point
Copy the full SHA acadf0eView commit details -
Consolida as funcionalidades de segmentação de associações
Deleta módulo associations para usar o segmentation Remove arquivo sem uso Move funções relacionadas aos territórios para um único arquivo Move arquivo que lida com territórios para o módulo utils Atualiza referências para o módulo territories Troca referência para o módulo segmentation Remove atribuição da url para usar a url da associação Remove uso dos territórios nos módulos superiores aos de segmentação Remove tratamento de exceção para nomes errados na limpeza Refatora forma de obtenção dos dados dos territórios Corrige type hinting da segmentação da AMA Adiciona chamada para obter os territórios para os segmentadores Corrige type hint no módulo segmentation factory Remove tratamentos específicos de associações do módulo territories Adapta segmentador da AMA para obter o territory id dos segmentos Correções no processo de extração Remove construção da url ao fazer upload do conteúdo dos segmentos
Configuration menu - View commit details
-
Copy full SHA for 2db8615 - Browse repository at this point
Copy the full SHA 2db8615View commit details -
Refatora processo de Segmentação
Torna a busca pelos territórios em uma task Melhora a obtenção de dados do município a partir do nome Trata erros que ocorreram em diários recentes Lança exceção ao obter território se este não for encontrado Faz ajustes para não ser preciso instanciar a database no segmentador Refatora bifurcação entre diários normais e de associações Modifica uso de territories e gazette por segmentadores Territories agora são utilizados por segmentadores por meio de um atributo de instância criado na inicialização da classe. Também não parecia necessária a atribuição do objeto `Gazette` à instância do segmentador, então o objeto passa a ser usado apenas como argumento na `.get_gazette_segments()` e não mais na inicialização. Como a instância do segmentador pode ser reutilizada sem problemas, um padrão de singleton foi utilizado na criação das instâncias. Corrige segmentação com marcador de início falso Na edição de 7 de Dezembro de 2023 do diário da Associação dos Municípios Alagoanos, o diário de Dois Riachos possui o cabeçalho ``` ESTADO DE ALAGOAS PREFEITURA MUNICIPAL DE EDUCAÇÃO SECRETARIA MUNICIPAL DE EDUCAÇÃO DE DOIS RIACHOS ``` no meio do texto de um ato. Isso fazia com que a segmentação fosse engatilhada novamente, resultando em um segmento anterior quase vazio (praticamente apenas o cabeçalho) e o segmento atual com o nome de município incorreto ("EDUCAÇÃO"). Agora, a palavra EDUCAÇÃO foi inserida no regex como uma exceção notável. Refatora mapeamento de município para python-slugify Biblioteca já implementa as transformações que usamos e ainda provê mais funcionalidades. Agora, a chave criada para um município fica em formato mais clássico de slug ("uf-nome-municipio"). Refatora split_text de al_associacao_municipios O método `split_text_by_territory()` estava com problemas de extração incompleta. Ex: ``` { "_index" : "querido-diario", "_type" : "_doc", "_id" : "7b7ed1557de74c25cff6a04023ed525f", "_score" : null, "_source" : { "id" : 6, "territory_name" : "Maribondo", "source_text" : "Alagoas , 02 de Outubro de 2023 • Diário Oficial dos Municípios do Estado de Alagoas • ANO XI | Nº 2145", "date" : "2023-10-02", "edition_number" : "2145", "is_extra_edition" : false, "power" : "executive_legislative", "file_checksum" : "7b7ed1557de74c25cff6a04023ed525f", "scraped_at" : "2023-12-11T20:25:43.705771", "created_at" : "2023-12-11T20:25:45.500616", "processed" : true, "file_path" : "2700000/2023-10-02/a4c2994ffab9f0dabc0d2c3ad46436f917d61efb.pdf", "file_url" : "https://www-storage.voxtecnologia.com.br?m=sigpub.publicacao&f=9878&i=publicado_91279_2023-09-29_564051d01bafcfea6f84735fc59f4d94.pdf", "state_code" : "AL", "territory_id" : "2704807", "file_raw_txt" : "/2704807/2023-10-02/7b7ed1557de74c25cff6a04023ed525f.txt", "url" : "http://google.com/2700000/2023-10-02/a4c2994ffab9f0dabc0d2c3ad46436f917d61efb.pdf" }, ``` Neste caso, o `source_text` está apenas com o cabeçalho. Além disso, o código estava um pouco confuso, então uma refatoração foi realizada para simplificar a segmentação, passando a utilizar mais `re.split()` ao invés de iterar diretamente linha-a-linha. Outra consequência dessa mudança é que além de mais segmentos estarem sendo coletados, os textos dos segmentos refletem o texto original mais fielmente, pois o tratamento de espaços em branco e quebras de linha não está sendo feito linha-a-linha no corpo do segmento. Refatora gazette_text_extraction por conta de associações O fluxo da task estava um pouco confuso, especialmente na bifurcação entre arquivo de diário agregado ou diário completo. Essa refatoração tem como objetivo simplificar esse fluxo e por consequência, assim como a task, os segmentadores também foram simplificados. Refatora criação de índices para tasks Corrige slug na segmentação Para eliminar a necessidade de exceções por conta de municípios com alguma palavra separada por espaço em seu nome indevidamente, o slug agora não utiliza mais um separador e concatena tudo. Ex: - al-senador-rui-palmeira -> alsenadorruipalmeira - al-senador-rui-palme-ira -> alsenadorruipalmeira
Configuration menu - View commit details
-
Copy full SHA for 299d323 - Browse repository at this point
Copy the full SHA 299d323View commit details
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.