okfn-brasil / querido-diario-data-processing

Text processing repository to free brazilian municipal gazettes from closed file formats for the Querido Diário project.
MIT License
20 stars 17 forks source link

fix: atualiza versão do Apache Tika em uso. #74

Closed jvanz closed 1 month ago

jvanz commented 7 months ago

Quando tentado rodar o Apache Tika versão 1.9.4 atualmente em uso no container para rodar o servidor o comando falha. Parece que o binário está corrompido. Por isso, esse commit atualiza o Apache Tika em use para a versão 2.9.1.

Fix #73

jvanz commented 7 months ago

AINDA PRECISO TESTAR ESSA ALTERAÇÃO PARA VER SE O EXTRATOR AINDA FUNCIONA. Então, não podemos fazer o merge dessa PR ainda. Se mais alguém pode testar, seria muito bom.

ogecece commented 7 months ago

Também não testei, mas desconfio que não dá certo, pois a partir de alguma versão o tika mudou o endpoint pra extrair o texto puro. Esse processamento deve estar extraindo o conteúdo do arquivo como html.

xxggabriel commented 5 months ago

Também não testei, mas desconfio que não dá certo, pois a partir de alguma versão o tika mudou o endpoint pra extrair o texto puro. Esse processamento deve estar extraindo o conteúdo do arquivo como html.

Testei o Apache Tika essa semana com a versão 2.9.2 e percebi que, durante a extração de texto, o conteúdo estava sendo extraído como XML. Para corrigir esse problema, adicionei o "Accept": "text/plain" na header do request da função _try_extract_text e funcionou corretamente.

A função da classe ApacheTikaTextExtractor ficou da seguinte forma:

def _try_extract_text(self, filepath: str) -> str:
      if self.is_txt(filepath):
          return self._return_file_content(filepath)
      with open(filepath, "rb") as file:

          headers = {
              "Content-Type": self._get_file_type(filepath),
              "Accept": "text/plain",
          }
          response = requests.put(f"{self._url}/tika", data=file, headers=headers)
          response.encoding = "UTF-8"
          return response.text
ogecece commented 1 month ago

Testei aqui e vou mesclar. Obrigado @xxggabriel !