カテゴリー別アーカイブ: プログラミング

AWS Lambda を Node.js 6.10 + Promise で使ってみる

はじめに

 AWS LambdaでNode.js 6.10が利用できるようになりましたね。以前の投稿でPromiseの使い方について紹介しました。今回、DynamoDBからデータを取得する方法をはじめ、非同期処理を直列的・並列的に実行する方法をパターン化してみました。

続きを読む

Pythonでランダム文字列生成

はじめに

 パスワード生成やダミー文字列生成などで、ランダム文字列を生成する機会がたまにあります。しかし文字数や使用できる文字など、都度都度変わるもの。そこで、お手入れしやすいプログラムを作成してみました。

続きを読む

MeCab と mecab-ipadic-NEologd と Python3 で形態素解析(ユーザーローカル環境版)

はじめに

 MeCabをユーザーのローカル環境にインストールする必要があり、手順をまとめてみました。gccやmakeは必要になりますので、最低限のコマンドだけはroot権限でインストールしておく必要があります。もしroot権限(sudoコマンドを実行できる権限)があればホストのグローバル環境にインストールできます。グローバル環境にインストールする場合はこちらの投稿を参照してください。

続きを読む

Django の MySQL 向けモデルで大文字と小文字を区別できるようにする

はじめに

 Django でデータベースバックエンドに MySQL を利用しているとき、CharField や TextField では大文字と小文字を区別しません。例えば「Value A」と「Value a」を区別して取得する場合、

result = Item.objects.filter(value='Value A')
のように取得すると、「Value A」の他に「Value a」や「value a」、「VALUE A」などがあればこれらも取得してしまいます。これは Django が悪いわけではなく、MySQL の挙動が原因です。MySQL で大文字と小文字を区別するためには、VARCHAR や TEXT のカラム定義に BINARY を付ける必要があります。今回、この BINARY を Django で自動的に付けるようにする方法を紹介します。

続きを読む

Django のモデル更新手順

はじめに

 Django はフルスタックのWebアプリケーションフレームワークです。アプリケーションデータの永続化はデータベースサーバーなどを使います。フレームワークではこれをモデルで実装します。開発を進めていくと、途中でモデルの修正が必要になる事があります。Django では直接 SQL 文を使うことなく、テーブル定義を更新することができます。
 今回、Django 1.10 での手順を紹介します。

続きを読む

指定したバイト数分だけ文字列を切り出す (Python3)

はじめに

 データ連携などでエクスポート機能などを実装するとき、特定のバイト数まで切り詰める処理が必要になる事があります。データがASCII文字だけで構成されていれば簡単なのですが、日本語などのマルチバイト文字が含まれていると文字数とバイト数に差が生じます。マルチバイト文字を分断することなく指定されたバイト数に切り出す処理を Python3 で実装してみました。

続きを読む

Pythonパッケージをpipコマンドで一括インストールする

はじめに

 新規に作成する Python アプリケーション、あるいはすでに稼働している Python アプリケーションの依存パッケージを確認して、別の環境にコピーしたい事があります。今回、必要なパッケージを洗い出して requirements.txt (ファイル名は任意に変更可能) に書き出し、コピー先の環境で一括インストールする手順を紹介します。前提として、pip コマンドが使えることを確認しておいてください。

大まかな流れ

  1. 依存しているパッケージとバージョンを洗い出す
  2. パッケージとバージョンのリストをファイルに書き出す
  3. 新しい環境で一括インストールする
続きを読む

MeCab と mecab-ipadic-NEologd と Python3 で形態素解析

はじめに

 文章の機械学習、といっても大まかすぎるのですが、文章を対象とするデータ解析には単語に分割したものを機械学習モデルの入力とする、という手法がいくつかあります。
 英語の場合は単語はほとんどがスペース区切りになっているので特別な解析器がなくともなんとかなるのですが、日本語の場合はスペースはありませんし、単語でも活用があったりと簡単に分割することができません。そこで、日本語向けの解析器 MeCab (GitHub) を使って文章を単語に区切ってみたいと思います。解析器には日本語辞書が必要で、デフォルトで mecab-ipadic が付属しています。今回、Web 上にある文章の解析にも対応できるようにと、月2回程度更新されているという日本語辞書 mecab-ipadic-NEologd (GitHub) も追加でインストールしたいと思います。
 最後に、Python3 プログラムで簡単な分かち書きプログラムを作成して動作確認をします。

続きを読む

算術記号とTensorFlow関数の対応

はじめに

 数式をTensorFlowのモデルとして記述する際、演算記号がTensorFlowのどのAPIに対応しているかをまとめてみました。 

続きを読む

Matplotlibサンプル 試行回数と平均値への収束

はじめに

 Matplotlibで簡単なグラフ描画を試してみたいと思います。機械学習で学習の進み具合をプロットするためにも、プロットの簡単な方法をマスターしておきたいと思います。

続きを読む