請問各位大大,要怎麼算出各英文單字他們之間的距離,
目前只有查到三維的並使用tf.form()函數,
並沒有2維x,y的範例,
懇請解答,感謝
之後有寫出程式碼(菜),如有更好的寫法,可以在下面留言,謝謝
import math
from collections import OrderedDict
print('各item的top 3 neighbor:')
toDataFrame={}
for y in range(len(vectors)):
distances = []
distances_dict = {}
three_item = []
##############使用 Euclidean distance
for x in range(len(vectors)):
if x==y:
continue
else:
distance = vectors[y]-vectors[x]
distances.append(math.sqrt( distance[0]*distance[0] + distance[1]*distance[1] ))
##################
# key為 index
distances_dict = dict(zip(range(len(distances)), distances))
#取出前 3 近的
d_sorted_by_value = OrderedDict(sorted(distances_dict.items(), key=lambda x: x[1]))
d_sorted_by_value_three = [i for i in d_sorted_by_value.keys()][:3]
#印出 前三 接近的
for three in range(3):
if d_sorted_by_value_three[three] >= y:
three_item.append(w2v_df.word[d_sorted_by_value_three[three]+1])
else:
three_item.append(w2v_df.word[d_sorted_by_value_three[three]])
toDataFrame[w2v_df.word[y]] = three_item
for x, y in toDataFrame.items():
print(x, y)
目前只有查到三維的並使用tf.form()函數,
並沒有2維x,y的範例,
二維 (x, y) 套三維 (x, y, z) 最簡單的方式不就把 z 設成某個常數就能用了 !
例如:
bag -2.091543 0.136671 0
book -0.757159 -1.415790 0
crayon -1.894580 6.104396 0
...
你的高中數學老師在背後默默哭泣 !