No project description provided
Project description
Berna TJGO DIACDE Lib
Biblioteca desenvolvida pelo TJGO (Diretoria de Inteligência Artificial, Ciência de Dados e Estatística). Este pacote oferece ferramentas robustas para pré-processamento de texto e cálculo de similaridade textual, essenciais para processamento de linguagem natural (NLP) e preparação de dados para LLMs.
O núcleo das operações de texto é fornecido pela classe TextUtils, acessível através de duas interfaces:
- Interface Fluente (
ProcessLinked): Para aplicações diretas e encadeadas. - Processador Baseado em Pipeline (
ProcessPipeline): Para workflows configuráveis e reprodutíveis.
Para cálculo de similaridade textual, a biblioteca disponibiliza a classe Berna.
Nota: Este repositório público contém uma seleção de ferramentas usadas internamente pelo TJGO.
Instalação
- PyPI: berna-tjgo-diacde-lib
Para instalar a biblioteca, utilize o gerenciador de pacotes pip:
pip install berna-tjgo-diacde-lib
Dependências
O projeto utiliza as seguintes bibliotecas:
spacynltkbeautifulsoup4snowballstemmer
Nota: Alguns modelos do spaCy (como pt_core_news_sm) podem precisar ser baixados separadamente.
Módulo de Pré-Processamento
1. Interface Fluente com ProcessLinked
Ideal para transformações rápidas de forma legível.
from berna_tjgo_diacde_lib import ProcessLinked
text = " Olá, mundo! Este é um teste com números 123. E e-mail: test@example.com. "
processed_text = (
ProcessLinked(text)
.filter_email() # Remove e-mails
.filter_spaces() # Remove múltiplos espaços
.filter_special_characters() # Remove pontuações
.filter_numbers() # Remove números
.stemming() # Reduz palavras à raiz (ex: 'correndo' -> 'corr')
.as_str() # Obtém a string final
)
print(processed_text)
# Saída: Olá mund Este é um test com númer E email
2. Pipeline Declarativo com ProcessPipeline
Ideal para definir fluxos complexos via configuração de lista, reutilizando pipelines.
from berna_tjgo_diacde_lib import ProcessPipeline
text = " Olá, mundo! Este é um teste com números 123. E e-mail: test@example.com. "
pipeline_config = [
{"name": "filter_email"},
{"name": "filter_spaces"},
{"name": "filter_special_characters"},
{"name": "filter_numbers"},
{"name": "remove_stopwords", "language": "portuguese"},
{"name": "stemming"}
]
processor = ProcessPipeline(pipeline_config)
processed_text = processor.process(text)
print(processed_text)
Métodos Disponíveis (via TextUtils)
| Método | Descrição |
|---|---|
filter_special_characters |
Remove pontuação e caracteres especiais. |
filter_spaces |
Padroniza múltiplos espaços para um único espaço. |
filter_numbers |
Remove caracteres numéricos. |
filter_links |
Remove URLs e links. |
filter_email |
Remove endereços de e-mail. |
filter_cnpj/cpf/rg |
Filtros específicos para documentos brasileiros. |
filter_cep/oab |
Filtros para códigos postais e registros da OAB. |
remove_stopwords |
Remove palavras comuns (ex: "e", "de", "o"). |
remove_html |
Remove tags HTML via BeautifulSoup. |
lemmatize |
Reduz palavras à forma base (lema) usando spaCy. |
stemming |
Reduz palavras à raiz usando snowballstemmer. |
tokenize |
Divide o texto em uma lista de tokens (palavras ou sentenças, dependendo da implementação interna do NLTK). |
Módulo de Cálculo de Similaridade
Este módulo oferece funcionalidades para calcular a similaridade textual entre dois documentos utilizando diferentes métricas. A classe Berna é o ponto de entrada para estas operações, utilizando internamente o método TextUtils.tokenize para preparar o texto antes da comparação.
Classe Berna
A classe Berna permite comparar duas strings e retorna o percentual de similaridade com base em métricas comuns:
- Similaridade de Cosseno (
sim_cosseno): Mede o cosseno do ângulo entre dois vetores não nulos em um espaço multidimensional. - Índice de Jaccard (
sim_jaccard): Mede a similaridade entre dois conjuntos finitos, sendo definida como o tamanho da interseção dividido pelo tamanho da união dos conjuntos.
Exemplo de Uso:
from berna_tjgo_diacde_lib import Berna
doc1 = "Este é o primeiro documento para teste de similaridade."
doc2 = "Este documento é o segundo para testar a similaridade textual."
similarity_calculator = Berna(doc1, doc2)
cosine_similarity = similarity_calculator.sim_cosseno
jaccard_similarity = similarity_calculator.sim_jaccard
print(f"Similaridade de Cosseno: {cosine_similarity:.2f}%")
print(f"Similaridade de Jaccard: {jaccard_similarity:.2f}%")
# Saída esperada (aproximada):
# Similaridade de Cosseno: XX.XX%
# Similaridade de Jaccard: YY.YY%
Licença
Este projeto está licenciado sob a MIT License. Você é livre para usar, modificar e distribuir o software, desde que mantenha os avisos de copyright.
Créditos e Desenvolvedores
Desenvolvido pelo Tribunal de Justiça do Estado de Goiás - Diretoria de Inteligência Artificial, Ciência de Dados e Estatística.
Time de Desenvolvimento:
- Antônio Pires -
<apcastro@tjgo.jus.br> - Milton Ávila -
<miltonavila.dev@gmail.com> - João Gabriel -
<grandottojoao@gmail.com> - Wesley Oliveira -
<wesley@woliveira.me>
*Contato oficial: estatistica@tjgo.jus.br*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file berna_tjgo_diacde_lib-1.2.tar.gz.
File metadata
- Download URL: berna_tjgo_diacde_lib-1.2.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f862ff4fedb839f9267ec6cf0f8fe6abd2a73841651ad8d404bd25f123b375de
|
|
| MD5 |
19bded567cf231bd0f50b724ae59723d
|
|
| BLAKE2b-256 |
cc80acdc20d7b54dad2a164f20c35ef6f44b832b4532fad6293a017cf2b2c6de
|
File details
Details for the file berna_tjgo_diacde_lib-1.2-py3-none-any.whl.
File metadata
- Download URL: berna_tjgo_diacde_lib-1.2-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b345e914f03b18999772d563b62f47f5970b365851cb02b7f6d8e699c21044a
|
|
| MD5 |
f98ebe298a66376cf0dc93f160f3b0b0
|
|
| BLAKE2b-256 |
36091e148f18943757f1eb5501d6a8e0240322a2a817ae9bbffd26e4894580f5
|