最終更新日時
Mar 11, 2024 5:54 AM
ツール
ChatGPTGitHub Copilot
利用シーン
実装/コードを読む
生成AIに処理の流れをコメントしてもらい、コードリーディングを効率化できます。
‣
GitHub Copilot
‣
生成AIに処理の流れをコメントしてもらい、コードリーディングを効率化できます。
以下をコメント追加して
from annoy import AnnoyIndex
import random
f = 40
t = AnnoyIndex(f, 'angular') # Length of item vector that will be indexed
for i in range(1000):
v = [random.gauss(0, 1) for z in range(f)]
t.add_item(i, v)
t.build(10) # 10 trees
t.save('test.ann')
u = AnnoyIndex(f, 'angular')
u.load('test.ann') # super fast, will just mmap the file
print(u.get_nns_by_item(0, 1000)) # will find the 1000 nearest neighborsfrom annoy import AnnoyIndex
import random
f = 40 # ベクトルの次元
t = AnnoyIndex(f, 'angular') # AnnoyIndex インスタンスを作成。'angular' は距離計算の方法。
# 1000個のランダムなベクトルをインデックスに追加
for i in range(1000):
v = [random.gauss(0, 1) for z in range(f)] # 標準正規分布に従うランダムなベクトルを生成
t.add_item(i, v) # インデックスにベクトルを追加
t.build(10) # 木の数を指定してインデックスを構築。多いほど正確だが、メモリと構築時間が増加。
t.save('test.ann') # インデックスをファイルに保存
# 新しいAnnoyインデックスを作成し、保存したファイルからインデックスをロード
u = AnnoyIndex(f, 'angular')
u.load('test.ann') # インデックスをファイルから高速にロード
# 最初のアイテムに最も近い1000個のアイテムを検索
print(u.get_nns_by_item(0, 1000)) # 0番目のアイテムに最も近い1000個のアイテムのIDを表示