-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
🚀 Fase 1.2: Criar Módulo text_preprocessing.py
📝 Descrição
Criar novo módulo para centralizar funcionalidades de pré-processamento de texto (stemming e lemmatization).
🎯 Objetivos
- Criar arquivo
src/cluster_facil/text_preprocessing.py - Definir interfaces abstratas para processadores
- Implementar classe base e utilitários
- Estrutura para futuras implementações
🔧 Implementação Técnica
Estrutura do módulo:
# src/cluster_facil/text_preprocessing.py
from abc import ABC, abstractmethod
from typing import List, Optional
import logging
class TextProcessor(ABC):
"""Interface base para processadores de texto."""
@abstractmethod
def process_text(self, text: str) -> str:
"""Processa um texto individual."""
pass
@abstractmethod
def process_batch(self, texts: List[str]) -> List[str]:
"""Processa um lote de textos."""
pass
class NoProcessor(TextProcessor):
"""Processador que não faz nada (padrão atual)."""
def process_text(self, text: str) -> str:
return text
def process_batch(self, texts: List[str]) -> List[str]:
return texts
# Funções utilitárias
def is_spacy_available() -> bool:
"""Verifica se spaCy está disponível."""
def check_spacy_model(model_name: str) -> bool:
"""Verifica se modelo spaCy está instalado."""
def download_spacy_model(model_name: str) -> bool:
"""Download automático do modelo spaCy."""✅ Critérios de Aceitação
- Arquivo criado com estrutura base
- Interfaces bem definidas
- Funções utilitárias implementadas
- Documentação inline completa
- Testes unitários básicos
- Compatível com Python 3.10+
🔗 Relacionado
- Issue principal: Adicionar stemming/lemmatization #13
- Anterior: Fase 1.1: Adicionar dependências opcionais (spaCy) ao pyproject.toml #19 (dependências opcionais)
- Próxima: Implementar LemmatizerPT
⏱️ Estimativa
4 horas - Estrutura base e utilitários
🧪 Testes
- Interfaces funcionam corretamente
- Utilitários detectam spaCy adequadamente
- NoProcessor mantém comportamento atual
- Documentação está completa
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request