Sonuçlar ve köken bilgisi¶
Her yöntem, tamga genelinde ortak dönüş türü olan bir Result döndürür.
Result¶
@dataclass
class Result:
method_name: str
params: dict[str, Any]
values: dict[str, Any] # JSON-safe (ndarray {"__ndarray__": ...} olarak kodlanır)
tables: list[pd.DataFrame] # parquet olarak dışa aktarılır
figures: list[Any] # matplotlib figürleri veya ham baytlar
provenance: Provenance | None
Kalıcılık¶
result.save(directory) şunları yazar:
result.json—method_name,params,values(numpy kodlanmış),provenancetable_0.parquet,table_1.parquet, … —tablesiçindeki her DataFrame için birer dosya- Figürler görselleştirme katmanına ertelenir (
render_figures.pyörnek başına)
Result.from_json("results/demo/pca/result.json") ile gidiş-dönüş sağlanır.
Köken bilgisi¶
Her Result'ın .provenance alanı tam yeniden üretilebilirlik zarfını taşır:
@dataclass
class Provenance:
tamga_version: str
python_version: str
spacy_model: str
spacy_version: str
corpus_hash: str
feature_hash: str | None
seed: int
timestamp: datetime
resolved_config: dict[str, Any]
# Adli dilbilim (tümü isteğe bağlı):
questioned_description: str | None
known_description: str | None
hypothesis_pair: str | None
acquisition_notes: str | None
custody_notes: str | None
source_hashes: dict[str, str]
Provenance.current(...) çalışma zamanı ve girdilerinizden bir kayıt oluşturur.
Provenance.from_dict(...) kaydedilmiş bir result.json'dan gidiş-dönüş sağlar.
Yeniden üretilebilirlik sözleşmesi¶
Aynı seed değeriyle aynı corpus üzerinde aynı study.yaml'ın iki ayrı çalıştırılması bayt düzeyinde özdeş result.json üretir. Çalıştırıcı, cfg.seed değerini şu bileşenler boyunca iletir:
- herhangi bir örnekleme yönteminde numpy'ın varsayılan RNG'si
- her stokastik tahmincide scikit-learn'ün
random_stateparametresi (k-means, LogReg çapraz doğrulama, RandomForest, …) - her Bayesian
pm.sample()çağrısında PyMC'ninrandom_seedparametresi - Stratified K-Fold karıştırması
Belirleyici olmayan bir durum hata sayılır — lütfen bildirin.
Çok yöntemli çalıştırmaları yükleme¶
tamga run study.yaml, şu dizin yapısını üretir:
results/demo/
├── resolved_config.json
├── burrows/
│ └── result.json
├── pca/
│ ├── result.json
│ └── figure.png # işlendiyse
└── zeta/
├── result.json
├── table_0.parquet
└── table_1.parquet
build_report(results/demo, output="report.html"), dizin altındaki her result.json'ı yükler ve tek bir HTML raporu oluşturur.
Sonraki adım¶
- Adli dilbilim araç takımı — Provenance'ın adli dilbilim alanlarının devreye girdiği yer.