diff --git a/semantic_router/encoders/bm25.py b/semantic_router/encoders/bm25.py index c419ac8ff65c061c4e7f1829d2d23d5aee4b37ea..0f3985bed41dfa36bed26a121c9989ed2b9cc85b 100644 --- a/semantic_router/encoders/bm25.py +++ b/semantic_router/encoders/bm25.py @@ -23,14 +23,14 @@ class BM25Encoder(BaseEncoder): else: raise ValueError("No documents to encode.") # convert sparse dict to sparse vector - embeds = [0.0] * len(self.idx_mapping) - for output in sparse_dicts: + embeds = [[0.0] * len(self.idx_mapping)] * len(docs) + for i, output in enumerate(sparse_dicts): indices = output["indices"] values = output["values"] for idx, val in zip(indices, values): if idx in self.idx_mapping: position = self.idx_mapping[idx] - embeds[position] = val + embeds[i][position] = val else: print(idx, "not in encoder.idx_mapping") return embeds