Note
Go to the end to download the full example code.
Retrieval demo using ItemStore + CodebookΒΆ
- Run (optional):
python -m examples.retrieval_demo
9 from holovec.backends import get_backend
10 from holovec.models.fhrr import FHRRModel
11 from holovec.retrieval import Codebook, ItemStore
12 from holovec.utils.cleanup import ResonatorCleanup
13
14
15 def main():
16 backend = get_backend('numpy')
17 model = FHRRModel(dimension=512, backend=backend, seed=0)
18
19 # build a small codebook
20 items = {f"item{i}": model.random(seed=10 + i) for i in range(8)}
21 cb = Codebook(items, backend=backend)
22
23 # store and query
24 store = ItemStore(model, cleanup=ResonatorCleanup()).fit(cb)
25
26 q = items['item3']
27 print("Top-3 nearest:")
28 for lbl, sim in store.query(q, k=3):
29 print(f" {lbl}: {sim:.3f}")
30
31 # factorize a composition of 3 items
32 comp = model.bind_multiple([items['item1'], items['item5'], items['item6']])
33 labels, sims = store.factorize(comp, n_factors=3, mode='soft', top_k=4, temperature=10.0)
34 print("Factorized labels:", labels)
35 print("Similarities:", [f"{s:.3f}" for s in sims])
36
37
38 if __name__ == "__main__":
39 main()