-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
🚀 Fase 1.3: Implementar Classe LemmatizerPT com spaCy
📝 Descrição
Implementar lemmatization para português usando spaCy e modelo pt_core_news_lg.
🎯 Objetivos
- Implementar classe
LemmatizerPT - Integração com modelo spaCy português
- Otimizações para performance
- Tratamento robusto de erros
- Cache de resultados
🔧 Implementação Técnica
Classe LemmatizerPT:
import spacy
from typing import List, Optional, Dict
from .text_preprocessing import TextProcessor
class LemmatizerPT(TextProcessor):
def __init__(self,
model_name: str = "pt_core_news_lg",
cache_enabled: bool = True,
preserve_entities: bool = False):
self.model_name = model_name
self.cache_enabled = cache_enabled
self.preserve_entities = preserve_entities
self._cache: Dict[str, str] = {}
self._load_model()
def _load_model(self):
"""Carrega modelo spaCy com fallback."""
def process_text(self, text: str) -> str:
"""Lemmatiza texto individual."""
def process_batch(self, texts: List[str]) -> List[str]:
"""Lemmatiza lote otimizado."""
def _lemmatize_with_cache(self, text: str) -> str:
"""Lemmatização com sistema de cache."""Funcionalidades:
- Cache inteligente: Armazena resultados para textos já processados
- Processamento em lote: Otimizado para múltiplos textos
- Preservação de entidades: Opção para manter nomes próprios
- Fallback graceful: Volta ao texto original se lemma falhar
- Auto-download: Baixa modelo automaticamente se necessário
✅ Critérios de Aceitação
- Lemmatização funcional para textos em português
- Sistema de cache implementado e testado
- Auto-download do modelo pt_core_news_lg
- Preservação opcional de entidades nomeadas
- Performance aceitável (benchmark vs baseline)
- Tratamento de erros robusto
- Testes com textos jurídicos
🔗 Relacionado
- Issue principal: Adicionar stemming/lemmatization #13
- Anterior: Fase 1.2: Criar módulo text_preprocessing.py #20 (módulo text_preprocessing)
- Próxima: Sistema de download automático
⏱️ Estimativa
8 horas - Implementação complexa com otimizações
🧪 Testes
- Lemmatização básica funciona
- Cache melhora performance significativamente
- Preservação de entidades funciona
- Fallback em casos de erro
- Performance aceitável em datasets grandes
- Qualidade das lemmas para vocabulário jurídico
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request