Skip to main content

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:

  1. Interface Fluente (ProcessLinked): Para aplicações diretas e encadeadas.
  2. 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

Para instalar a biblioteca, utilize o gerenciador de pacotes pip:

pip install berna-tjgo-diacde-lib

Dependências

O projeto utiliza as seguintes bibliotecas:

  • spacy
  • nltk
  • beautifulsoup4
  • snowballstemmer

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:


*Contato oficial: estatistica@tjgo.jus.br*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

berna_tjgo_diacde_lib-1.2.1.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

berna_tjgo_diacde_lib-1.2.1-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file berna_tjgo_diacde_lib-1.2.1.tar.gz.

File metadata

  • Download URL: berna_tjgo_diacde_lib-1.2.1.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

Hashes for berna_tjgo_diacde_lib-1.2.1.tar.gz
Algorithm Hash digest
SHA256 12e8d25da5f48cca6f45aad8d35b441b6bc399d082161729838ddac9c4f1783a
MD5 90556adcfe6076960f10cfcd46781457
BLAKE2b-256 6355f808b7f03db7b7249623d71b608965f61b791c67d34de22f9f18cc575501

See more details on using hashes here.

File details

Details for the file berna_tjgo_diacde_lib-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for berna_tjgo_diacde_lib-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 da1a7b986c51fc9c0e90ae8cff77fcabc374f1daae479689728408e14ada1c8f
MD5 4b4f517587152805231a103d3d8841b4
BLAKE2b-256 37b5fb75d8ea73feab28b1beb414c6fd9b073d6d8dfb438afce8f3712065edfc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page