"""
Natural Language Model Improver
Eden's 3rd Autonomous Goal
"""
from typing import List, Dict
import json
from pathlib import Path

class NLPImprover:
    def __init__(self):
        self.conversation_data = []
        self.patterns = {}
        self.data_file = Path('/Eden/DATA/conversation_logs.json')
        self.data_file.parent.mkdir(exist_ok=True)
    
    def collect_conversation(self, user_input: str, response: str):
        """Collect training data from conversations"""
        self.conversation_data.append({
            'input': user_input,
            'response': response,
            'timestamp': str(Path().stat().st_mtime)
        })
        
        # Save to file
        with open(self.data_file, 'w') as f:
            json.dump(self.conversation_data, f, indent=2)
    
    def analyze_patterns(self) -> Dict[str, int]:
        """Analyze common patterns in conversations"""
        if not self.conversation_data:
            return {}
        
        # Count word frequencies
        word_freq = {}
        for conv in self.conversation_data:
            words = conv['input'].lower().split()
            for word in words:
                word_freq[word] = word_freq.get(word, 0) + 1
        
        return dict(sorted(word_freq.items(), key=lambda x: x[1], reverse=True)[:20])
    
    def suggest_improvements(self) -> List[str]:
        """Suggest NLP improvements based on data"""
        patterns = self.analyze_patterns()
        suggestions = []
        
        if len(self.conversation_data) < 100:
            suggestions.append("Collect more conversation data for training")
        
        if patterns:
            top_words = list(patterns.keys())[:5]
            suggestions.append(f"Focus on understanding: {', '.join(top_words)}")
        
        return suggestions
