File size: 680 Bytes
ccdc8b0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import numpy as np
import pickle
import embedding
from tqdm import tqdm
import random
import train

top_p = 1

class Neuron:
    def __init__(self, name, inp):
        self.name = name
        self.inp = embedding.getvec(name)

with open("net.pckl", "rb") as f: net = pickle.load(f)

def top_closest_vectors(input_vector, top_p=1):
    distances = [(np.linalg.norm((neuron.inp - input_vector)), ind) for ind, neuron in enumerate(net)]
    closest_indices = sorted(distances, reverse=False, key=lambda x:x[0])[:top_p]
    return closest_indices

def generate(text):
    vec = embedding.getvec(text.replace("\n", ""))
    return net[random.choice(top_closest_vectors(vec))[1]].name