Kit de ferramentas para processos básicos de Processamento de Linguagem Natural.
Project description
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 vetorização de palavras (Word Embeddings);
- Fácil integração com outros programas Python por meio da importação do(s) módulo(s) ou funções desejadas.
📦 Instalação
A instalação deste pacote se dá por meio do comando "pip install"
pip install ferramentas-basicas-pln
Se você estiver no GitHub mais informações sobre o pacote no Pypi: ferramentas-basicas-pln pacote pypi.
📜 Uso/Exemplos
⚙️ Funções básicas ⚙️
Removendo caracteres especiais do texto (clique para expandir)
from ferramentas_basicas_pln import removerCaracteresEspeciais
texto = "Este é um $ exemplo, de texto? com caracteres# especiai.s. Quero limpá-lo!!!"
texto_limpo = removerCaracteresEspeciais(texto)
print(texto_limpo)
Output:
"Este é um exemplo de texto com caracteres 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 caracteres "/", "\" e "-" para " ".
from ferramentas_basicas_pln 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)
Output:
"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 ferramentas_basicas_pln import formatarTexto
texto = "Este é um $ exemplo, de texto? que/ que.ro# formatar e&*. padronizar!?"
texto_formatado = formatarTexto(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)
Output:
"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 formatarTexto import formatarTexto
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 = formatarTexto(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)
Output:
"""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=False". Abaixo temos um exemplo de um uso simples da função de contar a frequência de uma palavra numa determinada frase:
from ferramentas_basicas_pln 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)
Output:
('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 ferramentas_basicas_pln 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)
Output:
('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 ferramentas_basicas_pln 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)
Output:
>>>('exemplo', 3)
('texto', 2)
('aqui', 1)
⚙️ Funções mais complexas ⚙️
Tokenização de textos (clique para expandir)
from ferramentas_basicas_pln import tokenizarTexto
texto = '''Este é mais um texto de exemplo para a tokenização!!! Vamos usar caracteres,
especiais também @igorc.s e segue lá?!'''
tokenizacao = tokenizarTexto(texto)
print(tokenizacao)
Output:
['este', 'é', 'mais', 'um', 'texto', 'de', 'exemplo', 'para', 'a', 'tokenização', 'vamos', 'usar', 'caracteres', '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 ferramentas_basicas_pln import tokenizarTexto
texto = '''Este é mais um texto de exemplo para a tokenização!!! Vamos usar caracteres,
especiais também @igorc.s e segue lá?!'''
tokenizacao = tokenizarTexto(texto,remover_palavras_de_escape=True)
print(tokenizacao)
Output:
['este', 'é', 'mais', 'um', 'texto', 'exemplo', 'para', 'tokenização', 'vamos', 'usar', 'caracteres', '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 ferramentas_basicas_pln import tokenizarTexto
from ferramentas_basicas_pln import lista_com_palavras_de_escape_padrao_tokenizacao
texto = '''Este é mais um texto de exemplo para a tokenização!!! Vamos usar caracteres,
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)
Output:
['este', 'é', 'texto', 'exemplo', 'tokenização', 'vamos', 'usar', 'caracteres', '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 ferramentas_basicas_pln import tokenizarTexto
from ferramentas_basicas_pln import lista_com_palavras_de_escape_padrao_tokenizacao
texto = '''Este é mais um texto de exemplo para a tokenização!!! Vamos usar caracteres,
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)
Output:
['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.
- Se você, sua empresa, organização, etc usarem este programa, por favor, notifique os autores para adição neste campo.
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
Hashes for ferramentas-basicas-pln-0.9.9.8.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a384f9eede090340118736f521445bb60bafc86a05b566ae05a0aa90fc951cb |
|
MD5 | a93b8b3e6ec456f1c38848954703c96d |
|
BLAKE2b-256 | dbbaf911aac2a12305ef3c497cd5d8f575806b05119f61cf5ae7015b85b36497 |
Hashes for ferramentas_basicas_pln-0.9.9.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a00daaf53a3ba9895f835e84bcae1659e22f38874e1d1beae8897ee7af36cad |
|
MD5 | 8cc3c292548df758f978c1bc2d501ae9 |
|
BLAKE2b-256 | 394d3c137070f62f657bd6546d03c74977ecc044c0ce4b77c83fbf5ceb9ea9cd |