Labとは、アスタミューゼのエンジニアとデザイナーのブログです。アスタミューゼの事業・サービスを支えている知識と舞台裏の今を発信しています。SPTAGご挨拶どうもお久しぶりです、gucciです。入社して1年半経ちまして、なんともう3回目のブログのターンが回ってきました。パソコンを一日ずっと同じような姿勢で叩いていると、肩甲骨周りの筋肉が凝り固まってきて、しまいには肩こりからくる吐き気やストレスに襲われて日常生活に支障をきたしてしまいます。なってしまっては生産性も上がらず、作業時間は伸びてしまいさらに肩が凝ってしまいます。なんという悪循環でしょう。そんな時にオススメなのが、ストレッチポールです。ストレッチポールに乗ることで肩甲骨周りの筋肉をほぐすことができ、また背骨のS字を正しくもどしてあげることで腰痛も軽減されるという良いこと尽くし。みなさんも是非ストレッチポールをお試しあれ。私がこの会社に入社してからここまで、様々なことに挑戦する機会をいただいてきました。入社前のプログラミングスクールではRubyを3ヶ月ほど学んでいたのですが、入社後はJavaを半年ほど学び、その後はアプリケーション開発で半年ほどScalaに触れ、その後データチームに移ってからはSparkを用いた大規模データ処理などを学び、ここ最近はPythonを使ってバッチやアプリケーションを組んでおります。使うライブラリやミドルウェアに合わせて選択したり、好きなものや興味があることを自ら選択することができるのでとてもやりがいを感じております。高次元ベクトルデータ検索を行うべくNGTというライブラリを用いてあれこれやっております。私がベクトルデータを扱うだなんて。いや、むしろベクトルデータって何それ?!と少し前の私ならなっておりました。(いや、今でも正直あまりわかっておりませんが)NGTって何?ベクトルデータって何?というのは、我がぶちょー・弊社並河の個人ブログにとてもわかりやすいエントリーがありますので、是非そちらを参考にしてみてください。Graph)という存在を同僚のaranが教えてくれたので、このブログではそちらのSPTAGを実際にお試しで触ってみた内容をご紹介しようと思います。SPTAGをインストールしてみようgithub.comNGTのGithubには日本語の説明があるのに対して、SPTAGは英語オンリーの模様ですね。この時点で難易度の高さが伺えます。4.2とありますので、順々にインストールしていきましょう。LTSを使っております。それでは必要ライブラリのインストールからレッツゴー。3.0swingはパッケージがあるのであっという間に入れられます。[installed]よしよし。swigこれでばっちりです。3.12.0cmakeなんてもちろんすぐ入れられるよ、むしろ入ってるんじゃないかな、と思ったらなんと残念。パッケージにあるのがそれなのですね。自分の手で最新版にしてあげましょう。3.14.5成功です。1.67.0続いてboost。amd64ブーストよ、お前もか。これも経験、レッツトライ。install〜少し時間がかかります〜無事に終わりましたね。4.2最後にtbbのインストールです。amd64お、ありますね。libtbb-devさあ準備は整いました。SPTAGをインストールしてみましょう。(include)こけました!!なんということでしょう。ログをみるとふむふむ、SPTAG.pyというファイルが見つからないと、って怒っていますね。SPTAG.py./Wrappers/inc/SPTAG.py./Release/SPTAG.pyいたぁあああああああああ!どちらが正しいのか・・・diffをとってみると同じでした。READMEには「テストやってみてね」と書いてあるのでやりましょう。detectedやりました。我々はついにたどり着いたのです。GettingStartに詳しい使い方があるので、さっそく試してみましょう。上記ページには大文字で記載されていますが、indexbuilderの小文字でパスが通っていて、Usageが出るのでそれを見てみましょう。builder.ふむふむ。上の5つは必要なオプションなのですね。Inputのformatは、<metadata1>\t<v11>|<v12>|<v13>|<metadata2>\t<v21>|<v22>|<v23>|であると。手元に実況パワフルプロ野球2018年の開幕版データがたまたまあるので、それを使ってやってみましょう。データが古いのはご了承ください。こんなデータがインプットになっております。|パワー|走力|肩力|守備|捕球|といったステータスになっております。本来パワプロはこれらのデータに加えて特殊能力があり、それによるプラスマイナスが大きいのですが、今回はお試しということでご了承くださいませ。それでは作って見ましょう。Finish!やりました。続いて検索を行ってみましょう!適当に検索クエリ用のファイルを作成します。0|100|0|0|0|0|これを使って検索を投げてみます。finish!やりました。42|80|42|60|44|47|おぉぉ、力自慢の男たちがずらりとでてきましたね。