Added
RandomProjections.SaveEmbedder(path)/LoadEmbedder(path)— persist and restore the embedder state (vocabulary + projection matrix) to disk via Gob serialization- Allows building the vocabulary once, saving it, and reloading on subsequent starts without re-fitting from the corpus
Changed
- Website migrated to shared asset hub (
assets.21no.de) - Improved responsive layout and install commands on mobile
- SEO metadata, OG image, sitemap, robots.txt added to docs page
Details
SaveEmbedder and LoadEmbedder enable a two-phase initialization pattern:
emb := vector.NewRandomProjections(256)
emb.Fit(corpus)
emb.SaveEmbedder("embedder.gob")
// Later, in a new process:
emb, _ := vector.LoadEmbedder("embedder.gob")
vec, _ := emb.Embed("some text")This avoids re-fitting the vocabulary from scratch on every restart, which is critical for odek's session search where 117+ sessions would otherwise need re-indexing.