Doninha / train_l4_russell.py
0danielfonseca's picture
Upload 42 files
cf52a55 verified
"""
Treino da camada L4 a partir de russell.txt — Base teórica de equivalência
============================================================================
Constrói a base de conceitos russellianos (RussellConceptBase) a partir do
arquivo data/russell.txt e salva para uso pela L4.
Conceito central (Russell, The Problems of Philosophy, Cap. XII):
- Verdade = correspondência entre crença e fato.
- Equivalência (para a IA) = grau de correspondência entre a proposição
refinada (L1–L3) e os "fatos" representados no banco de conhecimento.
- A síntese L4 passa a usar um cálculo fundamentado em conceitos
(correspondência crença–fato) e não somente análise estatística.
Uso:
python train_l4_russell.py
python train_l4_russell.py --data data/russell.txt --out l4_russell_concepts.json
"""
from __future__ import annotations
import argparse
import os
import sys
def main() -> None:
parser = argparse.ArgumentParser(
description="Treina a base de conceitos russellianos da L4 a partir de russell.txt"
)
parser.add_argument(
"--data",
default=None,
help="Caminho para russell.txt (default: data/russell.txt)",
)
parser.add_argument(
"--out",
default="l4_russell_concepts.json",
help="Arquivo de saída da base de conceitos (default: l4_russell_concepts.json)",
)
args = parser.parse_args()
try:
from l4_russell_equivalence import (
build_russell_concept_base,
save_concept_base,
load_russell_text,
extract_chapter_xii,
)
except ImportError as e:
print("Erro ao importar l4_russell_equivalence:", e, file=sys.stderr)
sys.exit(1)
base_dir = os.path.dirname(os.path.abspath(__file__))
data_path = args.data or os.path.join(base_dir, "data", "russell.txt")
if not os.path.isfile(data_path):
print(f"Arquivo não encontrado: {data_path}", file=sys.stderr)
sys.exit(1)
print("Carregando russell.txt para fundamentar L4 em equivalência (correspondência crença–fato).")
content = load_russell_text(data_path)
print(f" Cap. XII (Truth and Falsehood): {len(extract_chapter_xii(content))} caracteres.")
base = build_russell_concept_base(data_path)
print(f" Passagens extraídas: {len(base.key_passages)}")
print(f" Termos com peso conceitual: {len(base.term_weights)}")
out_path = args.out if os.path.isabs(args.out) else os.path.join(base_dir, args.out)
save_concept_base(base, out_path)
print(f"Base de conceitos russelliana salva em: {out_path}")
print("L4 pode carregar com: load_concept_base(...) e passar para RussellianSynthesisEngine.")
if __name__ == "__main__":
main()