Skip to main content

Ferramentas básicas para Processamento de Linguagem Natural

Este pacote é um kit de ferramentas (variadas funções) para execução de processos básicos relacionados as etapas iniciais de processamento de linguagem natural.

Versão em inglês (clique para expandir)

🤩 Funcionalidades

  • Limpeza e padronização de texto;
  • Análise quantitativa de palavras no texto;
  • Pré-processamento de texto (tokenização) para posterior inserção em modelos de treinamento de linguagem natural;
  • Fácil integração com outros programas Python por meio da importação do(s) módulo(s) ou função desejada.

📦 Instalação

A instalação deste pacote se dá por meio do comando "pip install"

pip install pre-processing-text-basic-tools-br

Mais informações sobre o pacote no Pypi: pre-processing-text-basic-tools-br pypi package

📜 Uso/Exemplos

⚙️ Funções básicas ⚙️

Removendo caractéres especiais do texto (clique para expandir)
from pre_processing_text_basic_tools_br import removerCaracteresEspeciais

texto = "Este é um $ exemplo, de texto? com caractéres# especiai.s. Quero limpá-lo!!!"

texto_limpo = removerCaracteresEspeciais(texto)

print(texto_limpo)



>>>"Este é um exemplo de texto com caractéres especiais Quero limpá-lo"
Observação importante sobre palavras com hífen (clique para expandir)
É importante destacar que as funções foram pensadas para aplicações diretas para a língua portuguesa. Com isso, palavras com hífen, como sexta-feira, não tem seu caracter especial "-" removido por padrão, mas pode-se optar pela remoção dos hífens de tais palavras usando o parâmetro remover_hifen_de_palavras, passando para True. Ainda, se quiser que os hífens não sejam substituídos por um espaço " ", pode-se passar o parâmetro tratamento_personalizado para False, o qual substitui caractéres "/", "\" e "-" para " ".

from pre_processing_text_basic_tools_br import removerCaracteresEspeciais

texto = '''Hoje é sexta-feira e dia 09/03/2024! Ou ainda 09-03-2024.'''


texto_limpo = removerCaracteresEspeciais(texto,remover_hifen_de_palavras=True)

print(texto_limpo)



>>>"Hoje é sexta feira e dia 09 03 2024 Ou ainda 09 03 2024"
Formatação e padronização total do texto (clique para expandir)
from pre_processing_text_basic_tools_br import formatacaoTotalDeTexto

texto = "Este é um $ exemplo, de texto? que/ que.ro# formatar e&*. padronizar!?"

texto_formatado = formatacaoTotalDeTexto(texto=texto,
                                         padronizar_texto_para_minuscula=True,
                                         remover_caracteres_especiais=True,
                                         remover_caracteres_mais_que_especiais=True,
                                         remover_espacos_em_branco_em_excesso=True,
                                         padronizar_com_unidecode=True)

print(texto_formatado)



>>>"este e um exemplo de texto que quero formatar e padronizar"
Padronização de elementos específicos - aplicação de máscara (clique para expandir)
from pre_processing_text_basic_tools_br import formatacaoTotalDeTexto

texto = '''Se eu tiver um texto com e-mail tipo esteehumemail@gmail.com ou 
noreply@hotmail.com ou até mesmo emaildeteste@yahoo.com.br.
Além disso terei também vários telefones do tipo +55 48 911223344 ou 
4890011-2233 e por que não um fixo do tipo 48 0011-2233?
Pode-se ter também datas como 12/12/2024 ou 2023-06-12 em variados tipos 
tipo 1/2/24
E se o texto tiver muito dinheiro envolvido? Falamos de R$ 200.000,00 ou 
R$200,00 ou até com 
a formatação errada tipo R$   2500!
Além disso podemos simplesmente padronizar números como 123123 ou 24 ou 
129381233 ou até mesmo 1.200.234!'''

texto_formatado = formatacaoTotalDeTexto(texto=texto,                                        
                                         padronizar_com_unidecode=True,
                                         padronizar_datas=True,
                                         padrao_data='_data_',
                                         padronizar_dinheiros=True,
                                         padrao_dinheiro='$',
                                         padronizar_emails=True,
                                         padrao_email='_email_',
                                         padronizar_telefone_celular=True,
                                         padrao_tel='_tel_',
                                         padronizar_numeros=True,
                                         padrao_numero='0',
                                         padronizar_texto_para_minuscula=True)

print(texto_formatado)



>>>"""se eu tiver um texto com e-mail tipo _email_ ou _email_ ou ate mesmo _email_
alem disso terei tambem varios telefones do tipo _tel_ ou _tel_ e por que nao um fixo do tipo _tel_
pode-se ter tambem datas como _data_ ou _data_ em variados tipos tipo _data_
e se o texto tiver muito dinheiro envolvido falamos de $ ou $ ou ate com 
a formatacao errada tipo $
alem disso podemos simplesmente padronizar numeros como 0 ou 0 ou 0 ou ate mesmo 0"""
Contagem de frequência de palavras no texto (clique para expandir)

Este kit de funções permite realizar a contagem de palavras em um texto. Por padrão, ele elimina da contagem as palavras contidas na lista de palavras de escape para calcular a frequência: lista_com_palavras_de_escape_padrao_frequencia. Caso queira desativar esta funcionalidade, basta passar como parâmetro "remover_palavras_de_escape=True". Abaixo temos um exemplo de um uso simples da função de contar a frequência de uma palavra numa determinada frase:

from pre_processing_text_basic_tools_br import contarFrequenciaDePalavras

texto = '''Aqui vai mais um exemplo de texto de exemplo para uma 
demonstração de contagem de palavras num texto de exemplo com 
várias palavras.'''

frequencias = contarFrequenciaDePalavras(texto=texto)

for freq in frequencias:
    print(freq)


>>>('exemplo', 3)
('texto', 2)
('palavras', 2)
('aqui', 1)
('vai', 1)
('demonstração', 1)
('contagem', 1)
('várias', 1)

Podemos também selecionar palavras específicas para realização da contagem, passando a lista de palavras no parâmetro palavras_especificas:

from pre_processing_text_basic_tools_br import contarFrequenciaDePalavras

texto = '''Aqui vai mais um exemplo de texto de exemplo para uma 
demonstração de contagem de palavras num texto de exemplo com 
várias palavras.'''

frequencias = contarFrequenciaDePalavras(texto=texto,
                                         palavras_especificas=['aqui','vai','texto','exemplo','contagem'])

for freq in frequencias:
    print(freq)

  
>>>('exemplo', 3)
('texto', 2)
('aqui', 1)
('vai', 1)
('contagem', 1)

Ainda, pode-se solicitar que seja retornado apenas um valor x de resultados do topo da listagem de frequências. No exemplo abaixo, queremos apenas os top 3 mais frequentes da listagem passada (caso a listagem de palavras específicas não seja passada, o valor n_top sera da listagem padrão de todas as palavras do texto).

from pre_processing_text_basic_tools_br import contarFrequenciaDePalavras

texto = '''Aqui vai mais um exemplo de texto de exemplo para uma 
demonstração de contagem de palavras num texto de exemplo com 
várias palavras.'''

frequencias = contarFrequenciaDePalavras(texto=texto,
                                         palavras_especificas=['aqui','vai','texto','exemplo','contagem'],
                                         n_top=3)

for freq in frequencias:
    print(freq)


>>>('exemplo', 3)
('texto', 2)
('aqui', 1)

⚙️ Funções mais complexas ⚙️

Tokenização de textos (clique para expandir)
from pre_processing_text_basic_tools_br.main import tokenizarTexto

texto = '''Este é mais um texto de exemplo para a tokenização!!! Vamos usar caractéres, 
especiais também @igorc.s e segue lá?!'''

tokenizacao = tokenizarTexto(texto)

print(tokenizacao)



>>>['este', 'é', 'mais', 'um', 'texto', 'de', 'exemplo', 'para', 'a', 'tokenização', 'vamos', 'usar', 'caractéres', 'especiais', 'também', 'igorcs', 'e', 'segue', 'lá']

Tokenização removendo palavras de escape/stopwords (clique para expandir)
Palavras de escape ou stopwords são palavras que não apresentam muito significado em frases, dessa forma algumas aplicações, a fim de otimizarem seu processamento e tempo de treinamento, removem tais palavras do corpus de texto. Alguns exemplos de stopwords comuns são artigos e preposições.

  from pre_processing_text_basic_tools_br import tokenizarTexto

  texto = '''Este é mais um texto de exemplo para a tokenização!!! Vamos usar caractéres, 
  especiais também @igorc.s e segue lá?!'''

  tokenizacao = tokenizarTexto(texto,remover_palavras_de_escape=True)

  print(tokenizacao)



  >>>['este', 'é', 'mais', 'um', 'texto', 'exemplo', 'para', 'tokenização', 'vamos', 'usar', 'caractéres', 'especiais', 'também', 'igorcs', 'segue', 'lá']
Tokenização removendo palavras de escape/stopwords com lista de stopwords personalizada (clique para expandir)
Podemos também selecionar uma lista de stopwords personalizada, adicionando ou removendo da lista padrão lista_com_palavras_de_escape_padrao_tokenizacao ou até mesmo criando uma lista totalmente única.

from pre_processing_text_basic_tools_br import tokenizarTexto
from pre_processing_text_basic_tools_br import lista_com_palavras_de_escape_padrao_tokenizacao

texto = '''Este é mais um texto de exemplo para a tokenização!!! Vamos usar caractéres, 
especiais também @igorc.s e segue lá?!'''

lista_stop_words_personalizada = lista_com_palavras_de_escape_padrao_tokenizacao + ['este','mais','um','para','também','lá']

tokenizacao = tokenizarTexto(texto,remover_palavras_de_escape=True,lista_com_palavras_de_escape=lista_stop_words_personalizada)

print(tokenizacao)



>>>['este', 'é', 'texto', 'exemplo', 'tokenização', 'vamos', 'usar', 'caractéres', 'especiais', 'igorcs', 'segue']
Tokenização mais completa (clique para expandir)
Pode-se também utilizar uma formatação prévia antes do processo de tokenização. No exemplo abaixo passa-se o texto para a forma canônica antes de tokenizá-lo. Ou seja, palavras como "coração" passam a ser "coracao", perdendo seus acentos, "ç", etc.

from pre_processing_text_basic_tools_br import tokenizarTexto
from pre_processing_text_basic_tools_br import lista_com_palavras_de_escape_padrao_tokenizacao

texto = '''Este é mais um texto de exemplo para a tokenização!!! Vamos usar caractéres, 
especiais também @igorc.s e segue lá?!'''

lista_stop_words_personalizada = lista_com_palavras_de_escape_padrao_tokenizacao + ['este','mais','um','para','também','lá']

texto = formatacaoTotalDeTexto(texto,padronizar_forma_canonica=True)

tokenizacao = tokenizarTexto(texto=texto,
                             remover_palavras_de_escape=True,
                             lista_com_palavras_de_escape=lista_stop_words_personalizada,
                             desconsiderar_acentuacao_nas_palavras_de_escape=True)

print(tokenizacao)



>>>['texto', 'exemplo', 'tokenizacao', 'vamos', 'usar', 'caracteres', 'especiais', 'igorcs', 'segue']

😁 Autores

🤝 Usado por

  • Esse projeto é usado na etapa de pré-processamento de textos no projeto WOKE do Grupo de Estudos e Pesquisa em IA e História da UFSC.

Metadata

Release files for pre-processing-text-basic-tools-br 0.9.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pre-processing-text-basic-tools-br 0.9.4
File Size Uploaded Provenance Actions
pre_processing_text_basic_tools_br-0.9.4.tar.gz 14.1 kB Without provenance Details for pre_processing_text_basic_tools_br-0.9.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pre-processing-text-basic-tools-br 0.9.4
File Interpreter ABI Platform Actions
pre_processing_text_basic_tools_br-0.9.4-py3-none-any.whl Python 3 none any Details for pre_processing_text_basic_tools_br-0.9.4-py3-none-any.whl

Total release size: 25.4 kB

Release files / pre_processing_text_basic_tools_br-0.9.4.tar.gz

Download URL pre_processing_text_basic_tools_br-0.9.4.tar.gz
Size 14.1 kB
Tags Source
SHA-256 checksum
How to use checksums
baa1293efe633cc942445d84e32bfca285065df1e486ea4378335888a91ac661
BLAKE2b-256 checksum
How to use checksums
5988a33f74190a73647da24b1d821c1a71941b72d13b14440030229df481de7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.1

Release files / pre_processing_text_basic_tools_br-0.9.4-py3-none-any.whl

Download URL pre_processing_text_basic_tools_br-0.9.4-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0343da427be3bbde8603eca619a968364049e1cc354f81e39fde2bbd9512a3bc
BLAKE2b-256 checksum
How to use checksums
3c7dec3ecbc183125928554caee3837dc607a60aee3ded0b7bf20e3259aaf60a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.1

Security for pre-processing-text-basic-tools-br 0.9.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page