aboutsummaryrefslogtreecommitdiff
path: root/core/model.go
diff options
context:
space:
mode:
Diffstat (limited to 'core/model.go')
-rw-r--r--core/model.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/core/model.go b/core/model.go
new file mode 100644
index 0000000..4afcdae
--- /dev/null
+++ b/core/model.go
@@ -0,0 +1,22 @@
+// Vendored from scholscan/core/model.go (rev 7c1a5ef, 2026-08-28).
+// Owned here; no upstream sync.
+// Model envelope persists trained model to JSON. Contains Vectorizer for IDF values,
+// OrderedVocab for feature ordering, and Weights for logistic regression.
+// To score: recreate TFIDFVectorizer, transform, then PredictScore.
+package core
+
+import (
+ "time"
+)
+
+// ModelEnvelope - complete trained model for scoring articles
+type ModelEnvelope struct {
+ Algorithm string `json:"algorithm"`
+ Impl string `json:"impl"`
+ Version string `json:"version"`
+ CreatedAt time.Time `json:"created_at"`
+ Meta map[string]any `json:"meta"`
+ Vectorizer map[string]float64 `json:"vectorizer"`
+ OrderedVocab []string `json:"ordered_vocab"`
+ Weights []float64 `json:"weights"`
+}