No project description provided
Project description
Berna TJGO DIACDE Lib
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.2spacy>=3.7.5nltk>=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
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.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9e0bd3d9a0d951c8146f810cf7c1f9b73d290cf68ef795c4219958bcc354ddb
|
|
| MD5 |
85e5cdb4614183bb94c882a81458f8ca
|
|
| BLAKE2b-256 |
a9ec7d2c726adc164dbe9d10987f18cae887ba5d5e8cf399268ae08c0666dcb9
|
File details
Details for the file berna_tjgo_diacde_lib-1.1.1-py3-none-any.whl.
File metadata
- Download URL: berna_tjgo_diacde_lib-1.1.1-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78553419858c6beb6f694072a5ba34fe51f41228936a6a47315bf74f82ab56ec
|
|
| MD5 |
4d70e76f64ef2eed163b16ea40bfc465
|
|
| BLAKE2b-256 |
d61dae6c3808e3fd7bfc01ac50b1f25f8ab492b13a67fc12b5bd1a1dd93ceae4
|