aboutsummaryrefslogtreecommitdiff
path: root/core/model.go
blob: 4afcdaeea2329e789c876208f611586a92ef32af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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"`
}