📚 /text-cleaner-for-py
🧹 /text-cleaner-for-py é um pacote Python leve e eficiente para limpeza e normalização de text. Ele oferece recursos para remoção de HTML, acentos, caracteres especiais, além de filtros, normalização e remoção de stopwords.
✨ Funcionalidades
- 🔡 Normalização de text:
- Conversão para minúsculas.
- Remoção de acentos e caracteres especiais.
- 🧹 Limpeza avançada:
- Remoção de HTML e tags indesejadas.
- Redução de múltiplos espaços e quebras de linha.
- 🔍 Filtros de text:
- Manutenção de letras e números.
- Remoção de stopwords com suporte a múltiplos idiomas.
- 🚀 Funcionalidades Avançadas:
- Detecção automática de idioma
- Remoção de emojis e emoticons
- Remoção de URLs e emails
- Normalização de números, datas e valores monetários
- Correção de erros comuns de digitação
- Remoção de texto duplicado
- Normalização de abreviações
- Stemming e lematização
⚡ Instalação
Instale o pacote diretamente do PyPI:
pip install text_cleaner_for_py
O pacote depende de
nltk,beautifulsoup4,emojielangdetect.
💡 Como Usar
🧹 Uso Básico:
from text_cleaner_for_py.cleaner import clean_text
text = "Olá, mundo! Bem-vindo ao Text Cleaner 🧹✨"
print(clean_text(text)) # Saída: ola mundo bem vindo ao text cleaner
🚀 Uso Avançado:
from text_cleaner_for_py.advanced_cleaner import AdvancedTextCleaner
cleaner = AdvancedTextCleaner()
# Limpeza completa com opções padrão
text = "Olá! 👋 Visite https://exemplo.com ou envie email para teste@exemplo.com. Data: 25/12/2023. Preço: R$ 1.234,56. vc sabe pq?"
cleaned = cleaner.clean_advanced(text)
print(cleaned)
# Limpeza personalizada
options = {
'remove_emojis': True,
'remove_urls': False,
'normalize_dates': True,
'remove_typos': True
}
cleaned = cleaner.clean_advanced(text, options)
print(cleaned)
🔡 Normalização de text:
from text_cleaner_for_py.cleaner_v1 import normalize_text
text = "<p>Olá, Mundo!</p> Bem-vindo ao /text-cleaner-for-py! 🧹✨"
texto_normalizado = normalize_text(text)
print(texto_normalizado) # Saída: ola mundo bem vindo ao text cleaner for py
🌐 Removendo HTML:
from text_cleaner_for_py.cleaner_v1 import remove_html_tags
html_text = "<div><p>Texto <b>importante</b></p></div>"
print(remove_html_tags(html_text)) # Saída: Texto importante
🧹 Reduzindo espaços:
from text_cleaner_for_py.cleaner_v1 import clean_whitespace
text = "Texto com espaços e \n\n quebras."
print(clean_whitespace(text)) # Saída: Texto com espaços e quebras.
🔠 Filtrando letras e números:
from text_cleaner_for_py.cleaner_v1 import filter_letters, filter_numbers
text = "Telefone: 123-456-789"
print(filter_letters(text)) # Saída: Telefone
print(filter_numbers(text)) # Saída: 123456789
📝 Removendo stopwords:
from text_cleaner_for_py.cleaner_v1 import remove_stopwords
text = "Este é um text simples para teste de stopwords."
print(remove_stopwords(text, language='portuguese')) # Saída: text simples teste stopwords.
🚀 Funcionalidades Avançadas:
from text_cleaner_for_py.advanced_cleaner import AdvancedTextCleaner
cleaner = AdvancedTextCleaner()
# Detecção de idioma
print(cleaner.detect_language("Olá, como vai você?")) # Saída: pt
# Remoção de emojis
text = "Olá! 👋 Como vai você? 😊"
print(cleaner.remove_emojis(text)) # Saída: Olá! Como vai você?
# Normalização de números
text = "1º lugar, 2º lugar, 3º lugar"
print(cleaner.normalize_numbers(text)) # Saída: primeiro lugar, segundo lugar, terceiro lugar
# Normalização de datas
text = "Data: 25/12/2023"
print(cleaner.normalize_dates(text)) # Saída: Data: 25 de dezembro de 2023
# Correção de erros comuns
text = "vc sabe pq isso aconteceu?"
print(cleaner.remove_typos(text)) # Saída: você sabe porque isso aconteceu?
# Stemming e lematização
text = "correndo pulando saltando"
print(cleaner.stem_text(text)) # Saída: corr pul salt
print(cleaner.lemmatize_text(text)) # Saída: correr pular saltar
🚀 Casos de Uso
📊 Processamento de Grandes Volumes de Texto
from text_cleaner_for_py.performance_cleaner import PerformanceTextCleaner
# Inicializa o limpeza com performance otimizada
cleaner = PerformanceTextCleaner()
# Processa múltiplos textos em paralelo
texts = [
"Olá, mundo! 🧹✨",
"Bem-vindo ao Text Cleaner!",
"Teste de performance"
]
cleaned_texts = cleaner.clean_texts_parallel(texts)
print(cleaned_texts) # ['ola mundo', 'bem vindo ao text cleaner', 'teste de performance']
# Processa um texto grande dividindo em chunks
large_text = "Olá, mundo! " * 1000
cleaned_large_text = cleaner.clean_large_text(large_text, chunk_size=1000)
print(len(cleaned_large_text)) # Tamanho do texto limpo
🔄 Cache para Textos Frequentes
from text_cleaner_for_py.performance_cleaner import PerformanceTextCleaner
cleaner = PerformanceTextCleaner()
# O mesmo texto será processado apenas uma vez
text = "Olá, mundo! 🧹✨"
result1 = cleaner.clean_text_cached(text) # Processa o texto
result2 = cleaner.clean_text_cached(text) # Usa o cache
assert result1 == result2 # True
⚙️ Limpeza com Opções Específicas
from text_cleaner_for_py.performance_cleaner import PerformanceTextCleaner
cleaner = PerformanceTextCleaner()
# Limpeza com opções específicas
text = "Olá! 👋 Visite https://exemplo.com"
options = {
'remove_emojis': True,
'remove_urls': True
}
cleaned_text = cleaner.clean_text_with_options(text, options)
print(cleaned_text) # 'ola visite'
📈 Benchmark de Performance
import time
from text_cleaner_for_py.performance_cleaner import PerformanceTextCleaner
cleaner = PerformanceTextCleaner()
# Teste de performance com texto grande
large_text = "Olá, mundo! " * 10000
# Tempo sem processamento paralelo
start_time = time.time()
result1 = cleaner.clean_text_cached(large_text)
end_time = time.time()
print(f"Tempo sem paralelismo: {end_time - start_time:.2f} segundos")
# Tempo com processamento paralelo
start_time = time.time()
result2 = cleaner.clean_large_text(large_text)
end_time = time.time()
print(f"Tempo com paralelismo: {end_time - start_time:.2f} segundos")
🔧 Configuração Avançada
from text_cleaner_for_py.performance_cleaner import PerformanceTextCleaner
# Configura o número de workers para processamento paralelo
cleaner = PerformanceTextCleaner(max_workers=4)
# Processa textos com configuração personalizada
texts = ["Texto 1", "Texto 2", "Texto 3"]
cleaned_texts = cleaner.clean_texts_parallel(texts)
🚀 Casos de Uso Avançados e Performance
🧵 Processamento Paralelo de Textos
from text_cleaner_for_py.performance_cleaner import PerformanceTextCleaner
cleaner = PerformanceTextCleaner()
texts = [
"Olá, mundo! 🧹✨",
"Bem-vindo ao Text Cleaner!",
"Teste de performance"
]
cleaned = cleaner.clean_texts_parallel(texts)
print(cleaned)
🧩 Processamento de Texto Grande em Chunks
large_text = "Olá, mundo! " * 1000
cleaned_large = cleaner.clean_large_text(large_text, chunk_size=1000)
print(len(cleaned_large))
🧠 Cache Local de Limpeza
text = "Olá, mundo! 🧹✨"
result1 = cleaner.clean_text_cached(text)
result2 = cleaner.clean_text_cached(text)
assert result1 == result2
🧬 Remoção de Ruído de OCR
text = "H3ll0 W0rld! Th1s 1s 4 t3st."
print(cleaner.remove_ocr_noise(text)) # Saída: Hello World! This is a test.
⚖️ Normalização de Unidades de Medida
text = "O produto pesa 1.5kg e mede 2.5m"
print(cleaner.normalize_measurements(text)) # Saída: O produto pesa 1.5 quilogramas e mede 2.5 metros
🔁 Remoção de Conteúdo Duplicado
text = "Olá mundo! Olá mundo! Como vai você?"
print(cleaner.remove_duplicates(text)) # Saída: Olá mundo! Como vai você?
🏷️ Normalização de Nomes Próprios
text = "joão da silva e maria santos"
print(cleaner.normalize_proper_names(text)) # Saída: João da Silva e Maria Santos
⚙️ Limpeza com Opções Específicas
text = "Olá! 👋 Visite https://exemplo.com"
options = {'remove_emojis': True, 'remove_urls': True}
print(cleaner.clean_text_with_options(text, options)) # Saída: ola visite
Correção Ortográfica
from text_cleaner_for_py.spell_checker import SpellCheckerCleaner
spell_checker = SpellCheckerCleaner(language='pt')
texto = "Olá mundu! Como vai vc?"
# Verificar erros ortográficos
erros = spell_checker.check_text(texto)
print(erros) # {'mundu': [...], 'vc': ['você']}
# Corrigir texto automaticamente
corrigido = spell_checker.correct_text(texto)
print(corrigido) # Olá mundo! Como vai você?
# Sugestões para uma palavra
sugestoes = spell_checker.get_suggestions('mundu')
print(sugestoes) # ['mundo', ...]
Processamento de Documentos
from text_cleaner_for_py.document_processor import DocumentProcessor
processor = DocumentProcessor()
# Ler um arquivo TXT
conteudo = processor.read_document('exemplo.txt')
print(conteudo)
# Ler um arquivo PDF
# conteudo_pdf = processor.read_document('exemplo.pdf')
# print(conteudo_pdf)
# Ler um arquivo DOCX
# conteudo_docx = processor.read_document('exemplo.docx')
# print(conteudo_docx)
# Extrair metadados
metadados = processor.extract_metadata('exemplo.txt')
print(metadados)
# Extrair tabelas de um DOCX
# tabelas = processor.extract_tables('exemplo.docx')
# print(tabelas)
🧪 Testes
Execute os testes com pytest:
pytest tests/
Para execução detalhada:
pytest -v
🏗 Estrutura do Projeto
text_cleaner_for_py/
│
├── text_cleaner_for_py/ # 📦 Código do pacote
│ ├── __init__.py
│ ├── cleaner_v1.py # ⚡ Funções básicas de limpeza
│ ├── cleaner.py # ⚡ Funções principais de limpeza
│ └── advanced_cleaner.py # 🚀 Funções avançadas de limpeza
│
├── tests/ # 🧪 Testes unitários
│ ├── test_cleaner_v1.py
│ ├── test_cleaner.py
│ └── test_advanced_cleaner.py
│
├── pyproject.toml # ⚙️ Configuração do pacote
├── README.md # 📚 Documentação do pacote
├── LICENSE # 📜 Licença MIT
└── MANIFEST.in # 📋 Inclusão de arquivos extras
📝 Licença
Distribuído sob a Licença MIT. Veja o arquivo LICENSE para mais informações.
👨💻 Autor
Desenvolvido por Roberto Lima 🚀✨
💬 Contato
- 📧 Email: robertolima.izphera@gmail.com
- 💼 LinkedIn: Roberto Lima
- 💼 Website: Roberto Lima
- 💼 Gravatar: Roberto Lima
⭐ Gostou do projeto?
Deixe uma ⭐ no repositório e compartilhe com a comunidade! 🚀✨
Metadata
Release files for text-cleaner-for-py 1.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| text_cleaner_for_py-1.5.1.tar.gz | 26.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| text_cleaner_for_py-1.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 49.4 kB
Release files / text_cleaner_for_py-1.5.1.tar.gz
| Download URL | text_cleaner_for_py-1.5.1.tar.gz |
|---|---|
| Size | 26.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2684ed9b7e25148c2baf24b97c4aa374fae4bb1233450930a32d3c8dee790b09
|
|
BLAKE2b-256 checksum How to use checksums |
bd4c1548b2556335f627e8cc5be435eb00cef85700b6aaf098f208094c82ae7d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / text_cleaner_for_py-1.5.1-py3-none-any.whl
| Download URL | text_cleaner_for_py-1.5.1-py3-none-any.whl |
|---|---|
| Size | 22.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9705cb47a6f0b21e9d11fb46cd5b96e6434730c2ff4f79a63ee9dd85f0e3ee60
|
|
BLAKE2b-256 checksum How to use checksums |
bb462d480ebffc89a08eb5d9bf1dc7e1cc3250e5fd3046639f93622f83151c7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Security for text-cleaner-for-py 1.5.1
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.