コード例 #1
0
def draw_neuron_activation(mymap, named=True, symbols=False):     # iterates through EACH neuron and finds closest vector
    words = distances = empty_list(mymap.size, 1)

    if named:
        vectors = mymap.vectors
        keys = mymap.keys
    else:
        vectors = []
        keys = []
        idea_names = mymap.space.idea_names
        for item in mymap.space.table:
            keys.append(idea_names[item])
            vectors.append(mymap.space.table[item])   

    if symbols:
        s = mymap.space.symbol_vectors
        keys = []
        vectors = []
        for item in s:
            keys.append(mymap.space.idea_names[item])
            vectors.append(s[item])

    for neuron in flatten(mymap.neurons):
        weight = neuron.weight
        match = fn.find_best_match(weight, vectors)
        distance = fn.distance(weight, vectors[match])
        x = neuron.position
        x = fn.to_int(x)
        words[x[0]][x[1]] = keys[match]
        #       distances[x[0]][x[1]] = distance
    word_plot(words)
    return words
コード例 #2
0
def draw_item_activation(mymap, named=True, overwrite=False, symbols=False):
    words = empty_list(mymap.size, 1)
    mymap.renormalize()

    if named:
        vectors = mymap.vectors
        keys = mymap.keys
    else:
        vectors = []
        keys = []
        idea_names = mymap.space.idea_names
        for item in mymap.space.table:
            keys.append(idea_names[item])
            vectors.append(mymap.space.table[item])

    if symbols:
        s = mymap.space.symbol_vectors
        keys = []
        vectors = []
        for item in s:
            keys.append(item)
            vectors.append(s[item])

    for i, vector in enumerate(vectors):
        match = fn.find_best_match(vector, mymap.weights)
        x = mymap.positions[match]
        x = fn.to_int(x)
        w = words[x[0]][x[1]]
        if w == "" or overwrite:
            if overwrite:
                winner = fn.find_best_match(mymap.weights[match],
                                            mymap.vectors)
                w = keys[winner]
            else:
                w = keys[i]
        else:
            w = w + "," + keys[i]
        words[x[0]][x[1]] = w
    word_plot(words)
    return words
コード例 #3
0
def draw_item_activation(mymap, named=True, overwrite=False, symbols=False):
    words = empty_list(mymap.size, 1)
    mymap.renormalize()             

    if named:
        vectors = mymap.vectors
        keys = mymap.keys
    else:
        vectors = []
        keys = []
        idea_names = mymap.space.idea_names
        for item in mymap.space.table:
            keys.append(idea_names[item])
            vectors.append(mymap.space.table[item])   

    if symbols:
        s = mymap.space.symbol_vectors
        keys = []
        vectors = []
        for item in s:
            keys.append(item)
            vectors.append(s[item])

    for i, vector in enumerate(vectors):
        match = fn.find_best_match(vector, mymap.weights)
        x = mymap.positions[match]     
        x = fn.to_int(x)
        w = words[x[0]][x[1]]
        if w == "" or overwrite:
            if overwrite:
                winner = fn.find_best_match(mymap.weights[match], mymap.vectors)
                w = keys[winner]
            else:
                w = keys[i]
        else:
            w = w + "," + keys[i]
        words[x[0]][x[1]] = w 
    word_plot(words)
    return words
コード例 #4
0
def get_distances_to_nearest(mymap):
    distances = empty_list(mymap.size, 1)
    vectors = mymap.vectors
    matches = []
    for neuron in flatten(mymap.neurons):
        weight = neuron.weight
        match = fn.find_best_match(weight, vectors)
        matches.append(match)
        distance = fn.distance(weight, vectors[match])
        x = neuron.position
        x = fn.to_int(x)
        distances[x[0]][x[1]] = distance
    c = Counter(matches)
    print c 
    print 'items mapped : ' + str(len(sorted(c)))
    return distances
コード例 #5
0
def draw_clusters_per_item(mymap, clusters):
    cluster_map = empty_list(mymap.size, 1) 

    vectors = mymap.vectors
    keys = mymap.keys

    for neuron in flatten(mymap.neurons):
        weight = neuron.weight
        match = fn.find_best_match(weight, vectors)
        key = keys[match]
        cluster = clusters[key]
        x = neuron.position
        x = fn.to_int(x)
        cluster_map[x[0]][x[1]] = key
#        cluster_map[x[0]][x[1]] = cluster
    return cluster_map
コード例 #6
0
def get_distances_to_nearest(mymap):
    distances = empty_list(mymap.size, 1)
    vectors = mymap.vectors
    matches = []
    for neuron in flatten(mymap.neurons):
        weight = neuron.weight
        match = fn.find_best_match(weight, vectors)
        matches.append(match)
        distance = fn.distance(weight, vectors[match])
        x = neuron.position
        x = fn.to_int(x)
        distances[x[0]][x[1]] = distance
    c = Counter(matches)
    print c
    print 'items mapped : ' + str(len(sorted(c)))
    return distances
コード例 #7
0
def draw_clusters(mymap, clusters):
    cluster_map = empty_list(mymap.size, 1)

    vectors = mymap.vectors
    keys = mymap.keys

    for neuron in flatten(mymap.neurons):
        weight = neuron.weight
        match = fn.find_best_match(weight, vectors)
        key = keys[match]
        cluster = clusters[key]
        x = neuron.position
        x = fn.to_int(x)
        #        cluster_map[x[0]][x[1]] = key
        cluster_map[x[0]][x[1]] = cluster
    return cluster_map
コード例 #8
0
def draw_neuron_activation(
        mymap,
        named=True,
        symbols=False
):  # iterates through EACH neuron and finds closest vector
    words = distances = empty_list(mymap.size, 1)

    if named:
        vectors = mymap.vectors
        keys = mymap.keys
    else:
        vectors = []
        keys = []
        idea_names = mymap.space.idea_names
        for item in mymap.space.table:
            keys.append(idea_names[item])
            vectors.append(mymap.space.table[item])

    if symbols:
        s = mymap.space.symbol_vectors
        keys = []
        vectors = []
        for item in s:
            keys.append(mymap.space.idea_names[item])
            vectors.append(s[item])

    for neuron in flatten(mymap.neurons):
        weight = neuron.weight
        match = fn.find_best_match(weight, vectors)
        distance = fn.distance(weight, vectors[match])
        x = neuron.position
        x = fn.to_int(x)
        words[x[0]][x[1]] = keys[match]
        #       distances[x[0]][x[1]] = distance
    word_plot(words)
    return words