Skip to main content

No project description provided

Project description

Berna TJGO DIACDE Lib

PyPI version License Python versions

Documentation

Biblioteca desenvolvida pelo TJGO, Diretoria de Inteligência Artificial, Ciência de Dados e Estatística. Este pacote inclui o módulo de pré-processamento de texto e a classe Berna para cálculo de similaridade entre textos.

Esse repositório público contém algumas das ferramentas usadas internamente. Por enquanto, ele conta apenas com um módulo para pré-processamento de texto e um módulo secundário para cálculo de similaridade entre textos.

Esse repositório representa apenas uma parte do processo de padronização textual utilizado internamente e não contém nenhuma parte do código da BERNA.

Github

https://github.com/TJGO-DIACDE/berna_tjgo_diacde_lib

Instalação

Para instalar a biblioteca, use o comando abaixo:

pip install berna-tjgo-diacde-lib

Dependências

Este projeto depende das seguintes bibliotecas:

  • pandas>=2.2.2
  • spacy>=3.7.5
  • nltk>=3.8.1

Módulo de Pré-Processamento

Módulo que conta com uma função principal que engloba e executa funções auxiliares.

Importação

Para usar o módulo de pré-processamento, importe da seguinte maneira:

from berna_tjgo_diacde_lib import preProcessamento as prep

clear:

Método principal do módulo de pré-processamento que engloba e executa todas as funções. Recebe a string a ser processada e uma série de valores booleanos correspondentes às funções aplicadas durante o processamento.

def clear(
    txt: str | list[str],
    preset: list[str] = [],
    no_ponctuation: bool = False,
    no_loose_letters: bool = False,
    no_multiple_spaces: bool = False,
    replace_synonym_by_dict: bool = False,
    no_html: bool = False,
    no_email: bool = False,
    no_numbers: bool = False,
    no_stopwords: bool = False,
    only_latin: bool = False,
    lemmatize: bool = False,
    stemming: bool = False
) -> str | list[str]:

Argumento preset

O argumento preset permite configurar previamente um conjunto de métodos de pré-processamento de texto, evitando que o usuário precise especificá-los manualmente em cada chamada da função.

Como usar

Ao definir um preset, a função será configurada para sempre utilizar os métodos especificados, aplicando-os na ordem definida. Isso garante consistência no processamento sem a necessidade de repetir os argumentos a cada uso.

Exemplo de preset

from berna_tjgo_diacde_lib import preProcessamento as prep

preset = ["no_ponctuation", "no_multiple_spaces", "only_latin"]
text = "Hello!!   This is an   example."

clean_text = prep.clear(text, preset)  
print(clean_text)  # Saída esperada: "Hello This is an example"

Os métodos são aplicados na sequência em que são passados no preset. Isso significa que a ordem irá impactar o resultado final.

Por exemplo:

preset1 = ["tokenize", "stemming"]
preset2 = ["stemming", "tokenize"]

No primeiro caso, o texto será primeiro tokenizado (dividido em palavras) e depois passado pelo stemming (reduzido à raiz da palavra). No segundo caso, o stemming será aplicado antes da tokenização, o que pode alterar significativamente o resultado.

Ao definir um preset, certifique-se de que a ordem dos métodos faz sentido para o processamento desejado.

Exemplo de Uso sem Presets:

texto_limpo = prep.clear(
    "Seu texto aqui",
    no_punctuation=True,
    no_stopwords=True,
    lemmatize=True,
    replace_synonym_by_dict=True,
)

Módulo de Similaridade

Para utilizar a classe Berna de similaridade, importe a biblioteca da seguinte forma:

import berna_tjgo_diacde_lib as brn

Instanciação:

A classe Berna é definida com duas strings obrigatórias e um valor booleano opcional indicando a utilização do pré-processamento, considerado falso por padrão. Lança um Erro caso alguma das duas sentenças for falsa.

calc1 = brn.Berna('Texto de exemplo 1', 'Texto de exemplo 2', True)

Métodos

Similaridade Jaccard:

Obtém o coeficiente de similaridade Jaccard, em porcentagem, entre as duas strings de entrada:

similaridade_jaccard = calc1.get_similaridade_jaccard()     # Retorno: 50.0

Similaridade por Cosseno:

Obtém o valor de similaridade por cosseno, em porcentagem, entre as duas strings de entrada:

similaridade_cosseno = calc1.get_similaridade_cosseno()     # Retorno: 66.6667

Transformação de texto para vetor:

Método estático para converter um texto em vetor. Pode ser usado diretamente ou pela instância da classe:

vetor = brn.Berna.texto_para_vetor(None, "*Texto de Exemplo*", True)     # Retorno: ['texto', 'exemplo']

Exemplos Práticos:

# Import da classe Berna
import berna_tjgo_diacde_lib as brn

# Import do módulo de Pré-processamento
from berna_tjgo_diacde_lib import preProcessamento as prep

# Instância
berna = Berna('Eu sou o primeiro texto de Antonio Pires', 'Eu sou o segundo texto de antonio pires', True)

# Teste init
print(f'\nFrase 1: {berna.vec_terms1}')
print(f'Frase 2: {berna.vec_terms2}')
print(f'Preprocessamento: {berna.pre_process}')

# Teste cálculos Similaridades 
print('\nCálculo de Similaridade')
print(f'Jaccard: {berna.get_similaridade_jaccard()}')
print(f'Cosseno: {berna.get_similaridade_cosseno()}')
# Resultados esperados:
# se Preprocess True: 60.0 e 75.0
# se Preprocess False: 45.4545 e 62.5

# Teste métodos módulo Pré Processamento
print('\nFrase sem pontuações: ', prep.clear("Eu sou o primeiro texto de antonio pires, incluindo leis, resoluções, normas legais."))
print('Frase com sinonimos filtrados e lematização: ', prep.clear("Eu sou o primeiro texto de antonio pires, incluindo leis, resoluções, normas legais.", lemmatize=True, only_latin=True))
print('Frase com sinonimos filtrados por dicionário e stemming: ', prep.clear("Eu sou o primeiro texto de antonio pires, incluindo leis, resoluções, normas legais.", stemming=True, replace_synonym_by_dict=True))

Saída Esperada:

Frase 1: ['prim', 'text', 'antoni', 'pir']
Frase 2: ['segund', 'text', 'antoni', 'pir']
Preprocessamento: True

Cálculo de Similaridade
Jaccard: 60.0
Cosseno: 75.0

Frase sem pontuações: eu sou o primeiro texto de antonio pires, incluindo leis, resoluções, normas legais.
Frase com sinonimos filtrados e lematização: eu ser o primeiro texto de antonio pires , incluir lei , lei , lei legal .
Frase com sinonimos filtrados por dicionário e stemming: eu sou o prim text de antoni pires, inclu leis, leis, lei legais.

Utilizando text_para_vetor estaticamente: ['prim', 'text', 'antoni', 'pir', 'inclu', 'lei', 'lel', 'lel', 'legal']

Licença

Este projeto está licenciado sob a Licença Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

Domingo, 21 de Julho de 2024, às 09:54:07

Você pode:

  • Compartilhar — copiar e redistribuir o material em qualquer formato ou mídia.
  • Adaptar — remixar, transformar e construir sobre o material.

Sob as seguintes condições:

  • Atribuição — Você deve dar o crédito apropriado, prover um link para a licença, e indicar se mudanças foram feitas. Você pode fazê-lo de qualquer forma razoável, mas não de forma que sugira que o licenciador endossa você ou seu uso.
  • Não Comercial — Você não pode usar o material para fins comerciais.
  • Compartilhar Igual — Se você remixar, transformar ou criar a partir do material, deve distribuir suas contribuições sob a mesma licença que o original.

Para mais detalhes, consulte o texto completo da licença no arquivo LICENSE ou visite CC BY-NC-SA 4.0 Legal Code.

Créditos

A biblioteca Berna TJGO DIACDE foi desenvolvida pelo Tribunal de Justiça do Estado de Goiás, pela Diretoria de Inteligência Artificial, Ciência de Dados e Estatística - TJGOdiacde@tjgo.jus.br.

Desenvolvedores:

Antônio Pires - apcastro@tjgo.jus.br
Milton Ávila - milton.estudantil@gmail.com
João Gabriel - grandottojoao@gmail.com
Wesley Oliveira - wesley@woliveira.me

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.1.1.tar.gz (11.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.1.1-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: berna_tjgo_diacde_lib-1.1.1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.4

File hashes

Hashes for berna_tjgo_diacde_lib-1.1.1.tar.gz
Algorithm Hash digest
SHA256 c9e0bd3d9a0d951c8146f810cf7c1f9b73d290cf68ef795c4219958bcc354ddb
MD5 85e5cdb4614183bb94c882a81458f8ca
BLAKE2b-256 a9ec7d2c726adc164dbe9d10987f18cae887ba5d5e8cf399268ae08c0666dcb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for berna_tjgo_diacde_lib-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 78553419858c6beb6f694072a5ba34fe51f41228936a6a47315bf74f82ab56ec
MD5 4d70e76f64ef2eed163b16ea40bfc465
BLAKE2b-256 d61dae6c3808e3fd7bfc01ac50b1f25f8ab492b13a67fc12b5bd1a1dd93ceae4

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