# ═══════════════════════════════════════════════════════════ # Fake News Detection System — Configuration # ═══════════════════════════════════════════════════════════ paths: # Raw dataset root (relative to project root) dataset_root: "../Dataset" # Processed data output processed_dir: "data/processed" # Train/val/test splits splits_dir: "data/splits" # Saved model weights models_dir: "models/saved" # Logs logs_dir: "logs" # GloVe embeddings glove_path: "../glove.6B.100d.txt" dataset: min_domain_samples: 20 dedup_threshold: 0.92 dedup_batch_size: 64 preprocessing: max_tfidf_features: 50000 lstm_max_len: 256 bert_max_len: 128 short_text_threshold: 50 min_word_count: 3 training: lstm_batch_size: 64 lstm_epochs: 10 bert_batch_size: 8 bert_epochs: 3 lr_learning_rate: 2e-5 roberta_learning_rate: 1e-5 inference: true_threshold: 0.55 fresh_threshold: 0.70 outdated_threshold: 0.40 undated_freshness_score: 0.35 max_multiplier: 10 rag: top_k: 5 max_result_age_days: 90 support_threshold: 0.65 conflict_threshold: 0.30 drift: word_count_std_alert: 2.0 fake_ratio_upper: 0.80 fake_ratio_lower: 0.20 rolling_window: 100 holdout: stratified_test_size: 0.10 random_state: 42