-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVectorlib.py
More file actions
27 lines (23 loc) · 872 Bytes
/
Vectorlib.py
File metadata and controls
27 lines (23 loc) · 872 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import json
import numpy as np
from scipy.spatial import distance
class VectorLibrary:
def __init__(self, database):
# if database == 'tpch24':
# database = 'tpch'
with open(f'SuperWG/feature/{database}.json') as f:
self.vector_map = json.load(f)
# self.vectors = []
# self.ids = []
def add_vector(self, vector, vector_id):
self.vector_map[vector_id] = vector
def find_most_similar(self, new_vector, n=1):
similarities = []
ids = list(self.vector_map.keys())
vectors = self.vector_map.values()
for id in ids:
vector = self.vector_map[id]
sim = distance.euclidean(vector, new_vector)
similarities.append(sim)
most_similar_indices = np.argsort(similarities)[:n]
return [ids[i] for i in most_similar_indices]