Tendo como foco a operacionalização do processamento de textos de um domínio específico, contendo possíveis termos especializados e erros de digitação/grafia produzidos por agentes humanos ou conversão automática de formato (por exemplo, de PDF para TXT), este artigo apresentou um pipeline de preparação/correção de textos. Esse pipeline tem a grande vantagem de evidenciar os erros dos textos, separando o que é de fato erro e o que não é, além de oferecer sugestões para a correção humana.
Antes de executar o projeto, certifique-se de ter os seguintes requisitos atendidos:
- Python 3 instalado
- Léxico do POeTISA (POrtuguese processing: Towards Syntactic Analysis and parsing)
- JSON com lista de Países em pt-BR e seus respectivos Gentílicos, Siglas e Nome Internacional - Possui todos os países do Google Maps
- Dicionário de frequências de palavras em pt-BR disponibilizado pela Linguateca
- Base de termos específicos da agropecuária disponibilizado pela Embrapa
Vale ressaltar que o arquivo word_frequency_linguateca.txt
poossui o mesmo conteúdo que formas.totalbr.txt
(que é o dicionário extraído da Linguateca), porém em outro formato (sem as frequências numéricas) para correta utilização por parte de uma das funções do pipeline.
- Clone este repositório para o seu ambiente local:
git clone https://github.com/LALIC-UFSCar/pie-embrapa-pln.git
- Crie um ambiente virtual (opcional)
python3 -m venv pipeline
source pipeline/bin/activate
- Instale as dependências do projeto:
pip install -r requirements.txt
Para utilizar a ferramenta do pipeline é preciso somente rodar o seguinte comando indicando a pasta com os textos a serem analisados:
- Certifique-se de ter uma pasta com os textos que deseja-se analisar.
- Execute o seguinte comando:
python3 pipeline_categorizacao.py <pasta-de-arquivos-txt-corpus>
Opcionalmente, podem ser passados mais dois parâmetros:
python3 pipeline_categorizacao.py <pasta-de-arquivos-txt-corpus> <arquivo-unico-opcional> <anotado>
onde <arquivo-unico-opcional>
indica o nome de um único arquivo de texto txt
(caso deseje-se rodar o pipeline em apenas 1 texto) e <anotado>
é qualquer string, indicando se o córpus possui anotação ou não. Caso o córpus seja anotado, palavras anotadas entre <
e >
serão desconsideradas.
É possível que quando o pipeline for iniciado tenham problemas de conexão SSL, para obtenção de dados pela API. Nesse caso, o indicado é seguir os seguintes passos:
- Crie um arquivo
openssl.cnf
com o seguinte conteúdo:
openssl_conf = openssl_init
[openssl_init]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
Options = UnsafeLegacyRenegotiation
- Exportar o arquivo de configuração no seu ambiente com o comando:
export OPENSSL_CONF=/path/to/file/openssl.cnf