朝日ネット 技術者ブログ

朝日ネットのエンジニアによるリレーブログ。今、自分が一番気になるテーマで書きます。

Python

シェルスクリプトとの対比で理解するPythonのsubprocess

皆さんは git, ssh, rsync のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか? 個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、 後から Python のような…

Python の open 関数と io モジュールをきちんと使うために

Python の言語・ライブラリ・処理系はプログラマのタスクを手早く簡単にこなせるようにするために設計されており、数行程度のコードを書いただけでも内部で様々なことをやってくれます。 しかし、この便利さが特定のユースケースにおいては逆にお節介になっ…

2019年に向けてPythonのモダンな開発環境について考える

6 月の記事(「Pythonのパッケージングのベストプラクティスについて考える2018」)では setuptools, pip, venv を使ったパッケージングのフローについて考えました。今回はモダンな開発用ツールチェーンを持つ他の言語(具体的には JavaScript (Node.js), G…

Word2vec や fastText を Java のコードに適用して “add + map - list = put” のような結果を得たい

2013 年の Word2vec や 2016 年の fastText など、自然言語処理の分野には単語をベクトル(分散表現)に変換する手法がいくつかあります。 一旦分散表現に変換してしまえば加減算などの線形代数的な操作、 例えば “king - man + woman = queen” (王から男性…

グラフデータベースNeo4jを使ってコードの依存関係を解析する

依存関係 (dependency) という言葉は「クラスの依存関係」「ライブラリの依存関係」「命令の依存関係」「タスクの依存関係」などなど、コンピュータを扱う上では分野を問わず頻出する用語です。依存関係はグラフ構造 (dependency graph) として表すことがで…

Pythonのパッケージングのベストプラクティスについて考える2018

Python 3.7 のリリースが今月末に行われるということで、あらためて 2018 年現在の Python のパッケージ構成におけるベストプラクティスについて検討してみたいと思います。この記事は、「書き捨ての Python スクリプトなら書けるがちゃんとしたパッケージの…