[Música] Bom dia e meu nome é ern eu faço parte do da equipe do Vasco né do projeto Justiça 4.0 esse primeiro momento a gente escolheu falar do trat texto em lote E aí eu pedi que o o Eric foi a pessoa que desenvolveu comigo o trata texto em lote ah fizesse uma apresentação para vocês basicamente de como é que funciona e tudo mais as coisas vamos lá então Eh como o Ernesto disse hoje é o trat texto em lote O que é o trat texto em lote né é uma biblioteca que a gente desenvolveu
no Python que Ela utiliza expressões regulares personalizadas para o linguajar jurídico ela tem como objetivo padronizar referências as legislações jurisprudências presentees e um grande conjunto de petições Deixa eu só colocar uma coisa aqui que talvez seja importante né como A Raquel falou ontem ou anteontem eu não tô lembrando ao certo a gente encontra melhores resultados no classificador quando a gente aplica ela a gente viu isso empiricamente né que quando a gente passava o trat texto em lote naquela massaroca de dados que ela tinha a o classificador ele performa melhor né tipo alguns pontos mas performa
melhor por isso que a gente tentou dar ênfase também ao trates lot Eu acho que isso já ficou Claro mas é só para ter um registro né e além da da função no classificador eh quando se a a na pesquisa a gente vai fazer análise estatística dessas petições e tudo mais é imprescidível que a gente tenha uma padronização dessas informações eh que foi eh conseguida graças a o desenvolvimento desse trata texto em lote então Eh atualmente ele tá disponibilizado lá no sinapsis nesse endereço aqui então vamos lá começar na estrutura dele né Eh o trat
texto ele é ele tem uma função principal chamada trat texto e essa função ela vai chamando um pipeline de funções que vão tratando essa esses nossos dados eh de maneira sequencial então ele ele tem aqui Plata for matação trata B viatura trata trata sigla trata caracter especial trata termo trata legislação e trata jurisprudência eu acho importante eh ter em mente que o trat texto ele meio que funciona como uma biblioteca modular você pode usar ela completa passar como a gente eh idealizou mas se você quiser usar uma dessas funções ou retirar uma dessas funções do
pipeline ele é é é é bem simples quando se usa Claro pelo pelo github baixando a biblioteca e tudo mais no caso da do sinapsis não é o pipeline inteiro só uma coisa a ideia principal do trat texto Então o input sempre é um string é um texto e o output sempre é um string é um texto mais tratado né então é basicamente isso é como se fosse um é um pipeline de tratamento de texto que ele entrada é texto sair da texto sempre de todas as funções isso acontece certo então agora vamos começar entrar
nessas funções né Eh só para mostrar aqui como eu falei eu vou aumentar um pouquinho aqui a a fonte o trat texto como a gente disse essa aqui é a função principal você vê aqui na esquerda e ela é um pipeline que vai passando ele pega um texto de entrada passa por uma função sai texto pega esse texto passa paraa próxima até retornar o texto final ele é bem transparente nisso e a gente tem as outras funções aqui organizado nas pastinhas cada uma separada justamente para ficar fácil de você ah eu não quero usar essa
quero usar aquela eu quero modificar alguma coisa só nessa função ele já tá todo organizado desse jeito então vamos lá a primeira aqui da ordem seria o trata formatação como a gente pode ver aqui então a gente vem na pasta dele e ele tem algumas outras funções dentro o trata formatação Ele simplesmente Vai formatar o texto em relação a linhas Pular linha espaços duplos linha repetida aí depois no final e que ele ele vai separar o código ou o texto todo em linhas né numa lista de linhas e depois junta no final Então vamos paraa
primeira parte aqui ou padroniza linha nova Ele simplesmente tá vendo no texto os diferentes caracteres que seria quebra de linha e ele substitui por barra n por quê Eh esses dados o as petições a gente viu que eles têm diferentes padrões dessa quebra de linha às vezes ele vem de um ocr eh às vezes não o texto já tava digitalizado antes já já já veio de uma fonte digital e eh apresentaram diferentes maneiras de quebrar a linha então a gente botou tudo Opa qualquer um desses aqui vai ser barra N sem distinção Essa é simplesmente
a primeira parte Ok então depois de padronizar os barra nes a gente vai para esse tira espaço que toda linha agora que ele quebra né que agora a gente sabe que é a única quebra é o Barra n a gente vai separar numa lista e depois junta elas pelo barra n porque às vezes tinham espaços que faltava aqui no começo no fim da lista e a gente fazia esse split via os elementos da da lista que ficava espaço no começo ou no fim desnecessário tirava isso e juntou de novo num texto separado por barra n
Então esse espaço Extra aí sumiu tira espaço duplicado mesma coisa só que quando a gente vai olhar para um quando tinha um espaço ou esse barra T né que é o tab então ele foi convencionado simplesmente para um espaço esse aqui é um esforço que não é tão simples também tirar linhas repetidas essa parte do código ele foi feito e meio que para tentar eliminar os cabeçalhos rodapés E então a gente fez de uma maneira bem simples na realmente a gente separa o texto pelos barra né uma lista de de de frases ou orações e
se a lista for exat igual um elemento da lista foi exatamente igual o outro a gente retira a gente sabe que às vezes o cabeçalho muda e esse aqui foi o jeito mais simples de garantir que a gente não tava mexendo em nada que não devia também correto Heron foi esse foi meio complicado Exatamente é porque a gente fez um tratamento antes que não vamos tentar identificar realmente o que é um rodapé e o que é um um cabeçalho e a gente viu que a gente poderia reex é uma coisa muito delicada eu acho que
vocês todos sabem né modificar muito o texto Então a gente tentou ser você tem que modificar mas você não pode ser invasivo E aí o a abordagem que a gente tava usando para tentar realmente de fato identificar um um um cabeçalho no rodapé Ficava muito invasivo e a gente ficou com medo porque a gente não tem como saber se a gente tá editando uma cor numa petição em 300.000 petições que a gente não devia então a gente não vamos tentar usar sempre abordagem mais simples e tentar fazer só as coisas ou tentar ser o menos
invasivo possível aí essa foi uma delas que a gente olha basicamente se a linha é toda repetida se ela for toda repetida a gente deixa só uma só a primeira a gente poderia ter feito uma uma similaridade de string Mas a gente não fez porque a gente queria tentar manter essa simplicidade né é sempre perigoso acrescentar mas generalizar esse preocupado muito com performance também que a gente tinha que rodar a gente imaginava no início que a gente teria que rodar isso aqui online o tempo todo e tipo a gente não vamos tipo Pode ser que
o dado seja muito grande você vai demorar horas e horas para rodar eh e aí talvez não seja legal questão de consumo na Amazon também a estava preocupado com performance também nessa época né E no final desse esse módulo temos o junta linha que a gente pega os barra NS e transforma em espaço então vai ficar o blocão de texto sem sem quebra linha sem nada tudo separado por um espaço que é para ficar ali só o texto que importa mesmo para os as análises eh computacionais os modelos como a falou não não fica bonito
para se ler a gente perde essa coisa das sessões que poderia ter mas eh para para o computador é algo que não importa tanto [Música]