Category:

GCPのコスト見積もり

GCPを利用していてコスト見積もりを実行するにあたってのメモを記載しておきます。 基本 基本的にはこちらを利用することになると思います。 Google Cloud Platform 料金計算ツール GCE GCEに関しては、上記よりも実際にVMインスタンスを途中まで作成するのが一番確実です。 コンソール を開いて、メニューからCompute Engine -> VMインスタンスを開き、作成ボタンをクリックします。 インスタンス作成画面が開かれますので、あとは、リージョン マシンの構成 GPUの有無 追加ディスクの有無など、色々設定を変えながら画面右上に表示されるコストを確認するだけです。 BigQuery 料金体系はこちらに記載されています。以下の3つは少なくとも気にしています。 アクティブストレージコスト: $0.020 per GB per month 例) 1TBを1ヵ月保存す Continue Reading

Posted On :
Category:

Kotlin+Ktorで技術要素を試しながらクリーンアーキテクチャでAPIサーバ構築

サーバサイドKotlinといえばSpring Bootを採用することが多いと思います。 個人的にはSpring Bootは、Auto Configurationのブラックボックス感が辛くて、もっとシンプルなフレームワークに乗り換えたいという思いが常々ありました。 JetBrains社製のWebフレームワークであるKtorが、2018年11月にv1.0.0がリリースされ、2020年4月現在v1.3.2まで順調にアップデートされ続けており、そろそろ本格的に利用しても良さそうな気配を感じています。 この記事では、Kotlin+KtorでREST APIの作成に必要な技術要素をStep By Stepで検証してみながら、クリーンアーキテクチャなAPIサーバを構築してみたいと思います。 最初の画面を表示 Ktor Pluginを使う方法だと良く設定内容を理解せずに使ってしまうことになりそうですし、D Continue Reading

Posted On :
Category:

TF-IDFのお勉強

少し前に会社の勉強会で発表した資料をブログにも転記しておきます。TF-IDFは自然言語処理の初心者にもとっつきやすく理解しやすい内容でした。 Wikipediaの記載に基づき手計算 概要 Wikipediaには以下のような説明がなされています。 TF-IDFは、文書中に含まれる単語の重要度を評価する手法の1つであり、主に情報検索やトピック分析などの分野で用いられている。 TF(英: Term Frequency、単語の出現頻度)と IDF(英: Inverse Document Frequency、逆文書頻度) の二つの指標に基づいて計算される。 TF(単語出現頻度)とIDF(逆文書頻度)の二つの指標を元に文書中の単語の重要度を評価する手法であることがわかります。 Wikipediaの計算式 計算式を見ると、TF-IDF値は、TF値とIDF値を掛け合わせたものであることが分かります。 TF Continue Reading

Posted On :
Category:

Neo4jにCSVロードする4つの方法

Neo4jにCSVロードする方法は少なくとも4つはあるようです。 CSV LOAD apoc.load.csv apoc.import.csv neo4j-admin import この記事ではこの4つの方法について、pythonから実行する具体的な実装を説明したいと思います。 ロードするデータ サンプル実装でロードするデータはこちらです。リレーションLINKEDにはscoreというリンクの強さを表すプロパティが設定されています。 検証環境 今回は、docker-hubのneo4j:latestイメージで、docker-composeで検証します。docker-compose.yamlの設定は基本的には以下のような感じです。 version: '3' services: neo4j: image: neo4j:latest ports: – "7474:747 Continue Reading

Posted On :
Category:

Neo4j+pythonで特定の条件で繋がっているサブグラフを抽出する

やりたいこと 候補ノード(約1億件)と候補同士のリレーション(約100億件)をneo4jに登録して、特定の条件で繋がっているサブグラフのノードIDを抽出したいと思います。 入力データ 候補1 — 候補2 (score = 40) 候補1 — 候補3 (score = 60) 候補3 — 候補4 (score = 50) 候補4 — 候補5 (score = 70) 候補6 — 候補7 (score = 30) 候補7 — 候補8 (score = 70) 候補9 … リレーションなし scoreは関連性の強さです。本来、関連性に方向はありません。 グラフ表示するとこんなイメージです。 このデータからクエリでscore >= 50以上のリレーションを接合して、以下のようなデータを取得したいと思っています。 [候補1, 候補3, 候補4, 候補5] [候補2] [候補6] Continue Reading

Posted On :
Category:

NLPの前処理

仕事で自然言語処理(NLP)に少し取り組む必要が出てきたので、自分なりの理解をTipsとしてまとめていこうと思います。 小文字化 文字の正規化という意味で、アルファベットを小文字化します。日本語の場合は、半角を全角に統一する、などの対応も必要と思います。 sentences: List[str] = ['I have a pen', 'That is a window'] print(sentences) # -> ['I have a pen', 'That is a window'] lower_sentences: List[str] = list( sentence.lower() for sentence in sentences ) print(lower_sentences) # -> Continue Reading

Posted On :