Tech Blog

Information Technology / Machine Learning / Data Analysis / Big Data / System Integration

word2vecで単語をマッピングする

何を作ったか?

こんなものを作りました。
http://tkdmah.com/word2cordinates

どんなものか?

word2vecを用いて単語を2次元にマッピングします。
word2vecは、単語を200次元ベクトルに変換するモデルです。
ベクトルは単位ベクトルなので、200次元球面に配置されることになります。

200次元ベクトルを人間が見るのは難しいので、2次元化します。
そのためにまず、4つの単語を用いてX軸とY軸を作成します。
次に、その軸で張られた座標に対して、単語をプロットします。

単語の座標は、以下のように決定されます。

X軸を規定する単語ベクトルをv_x+, v_x-, Y軸を規定する単語ベクトルをv_y+, v_y-とします。
また、プロット対象とする単語ベクトルをv_targetとします。

このとき、v_targetがv_x+, v_x-となす角(θ_x+, θ_x-)がどちらに近いかを[-1,1]にマッピングしたものが、X座標(x_target)となります。
同様に、Y座標はv_y+,v_y-から計算します。

f:id:tkdmah:20150329181555p:plain

どうやって作ったか?

1. 日本語版Wikipediaのデータをダウンロードする。
2. mecab分かち書きする。
3. gensim/pythonを用いてword2vecのモデルを作成する。
4. モデルを利用したアプリケーションをgensim, django, d3.jsなどを利用して作成する。
5. webサーバを構築して公開する。
f:id:tkdmah:20150329182901p:plain

サンプル

  • X軸:期待⇔不安、Y軸:幸福⇔不幸としてプロット

f:id:tkdmah:20150329185158p:plain

  • X軸:数学⇔文学、Y軸:科学⇔社会としてプロット

f:id:tkdmah:20150329185208p:plain

その他におもしろいサンプルができたら教えて下さい^^

今後の課題

  • Twitterデータでモデル作るとか
  • 可視化の仕方を変えるとか

Linuxシステム管理コマンド 備忘録

Linuxのシステム管理に関する基本的なコマンドを網羅的にまとめておく。

ユーザ管理

ユーザの作成

# ログインシェルを指定してユーザ作成
useradd -s /bin/bash tkdmah

# ホームディレクトリと合わせてユーザ作成
useradd -m tkdmah

# 所属グループを指定してユーザ作成(-g:プライマリグループ、-G:一般グループ)
useradd -g staff -G dev,admin tkdmah
続きを読む

モデルの精度評価(分類問題)

分類問題の精度評価についてまとめておきます。
代表的な評価指標にはどのようなものがあるのか、その中でどれを使えばいいのか、回帰分析の精度は使えるか、について順に書いていきます。

今回は、下記の混合行列で表されるような疾病検査を例にとって説明します。陽性・陰性は予測クラス、疾病あり・疾病なしは正解クラスです。

疾病あり 疾病なし
陽性 {a} {b}
陰性 {c} {d}

評価指標には何かあるか?

一般的によく使われる評価指標に、Precision, Recall, Specificity, F-measure, Accuracy, AUCがある。

続きを読む

Rのデータ構造

Rのデータ構造が紛らわしいのでまとめておく。

データ構造 次元 制約
ベクトル 1次元 全要素は型が統一されている必要がある。
リスト 1次元 異なる型を保持できる。
順序なし因子 1次元 順序のないカテゴリを要素とする。
順序つき因子 1次元 順序のあるカテゴリを要素とする。
行列 2次元 全要素は型が統一されている必要がある。
データフレーム 2次元 各列の要素は型が統一されている必要がある。
配列 任意 全要素は型が統一されている必要がある。

自由度が高くなる(制約が少なくなる)につれて処理が遅くなるので注意。

続きを読む

sed 備忘録

sedとは

sedとは、Linux上のファイルに対して文字列の置換・挿入・削除を行うコマンド。
awkと比べて自由度は少ないが、置換・挿入・削除に関しては高速に処理できる。

sedを操作するために知っておくべき7のこと

sedを操作するために知っておくべき7のことを、順に列挙する。

続きを読む

awk 備忘録

awkとは

awkは、Linux上のファイルに対して、"行ごとに"何らかの処理を行うためのプログラミング言語
"行ごとに"処理を行うため、行指向プログラミングと呼ばれる。
csvファイルを扱うときによく使われる。

awkを操作するために知っておくべき10のこと

awkを操作するために知っておくべき10のことを、順に列挙する。

続きを読む

HueでHadoopをWeb UIから使う

Hue とは

Hadoopは基本的にコマンドラインやJavaから操作する。そのため、初心者にはハードルが少々高い。

実は、オープンソースのWeb UIがApacheで開発されている。Web UIを用いることで、操作が単純になり、学習コストも低減される。

今回は、そのHueをインストールして使ってみる。

f:id:tkdmah:20130615002133p:plain

Hueのインストール

0. Hadoop環境を構築する。

カンタンにHadoop環境を試用するには、Cloudera社が提供しているVMイメージを用いるよい。ClouderaのダウンロードページからVMをダウンロードし、VMWare Playerで立ち上げれば、すでにHadoop環境が整っている。詳細は下記のエントリを参照のこと。

今回の環境

  • CentOS 6.2 64bit
  • Hadoop 2.0.0-cdh4.1.1

1. Gitをインストールする。

HueはGithubで公開するため、Gitをインストールしておく必要がある。

$ yum -y install git-core

2. Hueのリポジトリを複製する。

GitからHueのクローンを作成する。

$ cd /usr/lib
$ git clone http://github.com/cloudera/hue.git

3. Mavenをインストールする。

下記からMevenをダウンロードする。

ダウンロードしたファイルを解凍し、パスを通しておく。

$ mkdir /usr/local/apache-maven
$ mv /tmp/apache-maven-3.0.5-bin.tar.gz /usr/local/apache-maven/
$ cd /usr/local/apache-maven
$ tar zxvf /usr/local/apache-maven/apache-maven-3.0.5-bin.tar.gz
$ export M2_HOME=/usr/local/apache-maven/apache-maven-3.0.5
$ export M2=$M2_HOME/bin
$ export PATH=$M2:$PATH
$ mvn --version

4. その他必要なツールをインストールする。

$ yum -y install ant
$ yum -y install asciidoc
$ yum -y install cyrus-sasl-devel
$ yum -y install cyrus-sasl-gssapi
$ yum -y install gcc
$ yum -y install gcc-c++
$ yum -y install krb5-devel
$ yum -y install libtidy
$ yum -y install libxml2-devel
$ yum -y install libxslt-devel
$ yum -y install mysql
$ yum -y install mysql-devel
$ yum -y install openldap-devel
$ yum -y install python-devel
$ yum -y install python-simplejson
$ yum -y install sqlite-devel

5. Hueをインストールする。

$ cd /usr/lib/hue
$ make apps
$ build/env/bin/hue runserver

※ 番外編

JavaはOpenJDKではなくOracleJDKでないとうまく動かない。$JAVA_HOMEがOpenJDKに設定されている場合は、設定を変更する必要がある。ちなみにこれらは.bash_profileに書いておくとシェル起動時に自動的に読み込まれるので便利。

$ export JAVA_HOME=/usr/java/default
$ export PATH=$JAVA_HOME/bin:$PATH

Hueを使ってみる

ホームページ

f:id:tkdmah:20130615003518p:plain

Hive

f:id:tkdmah:20130615003529p:plain

ファイルブラウザ

f:id:tkdmah:20130615005501p:plain

Hueってあまり聞かないけど、なかなか便利そうだ。(インストールはとても面倒だが。)


(以下追記)
今回はApache Hueをインストールしましたが、CDHであれば

$ yum install hue hue-server
$ yum install hue-plugins

のようにyumでインストールできるようです。なるほど便利ですね^^情報ありがとうございます。

参考: http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Installation-Guide/cdh4ig_topic_15_3.html