File size: 2,768 Bytes
cf52a55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
"""
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()