読者です 読者をやめる 読者になる 読者になる

Tech Blog

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

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

何を作ったか? こんなものを作りました。 http://tkdmah.com/word2cordinates どんなものか? word2vecを用いて単語を2次元にマッピングします。 word2vecは、単語を200次元ベクトルに変換するモデルです。 ベクトルは単位ベクトルなので、200次元球面に配…

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

Linuxのシステム管理に関する基本的なコマンドを網羅的にまとめておく。 ユーザ管理 ユーザの作成 # ログインシェルを指定してユーザ作成 useradd -s /bin/bash tkdmah # ホームディレクトリと合わせてユーザ作成 useradd -m tkdmah # 所属グループを指定し…

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

分類問題の精度評価についてまとめておきます。 代表的な評価指標にはどのようなものがあるのか、その中でどれを使えばいいのか、回帰分析の精度は使えるか、について順に書いていきます。今回は、下記の混合行列で表されるような疾病検査を例にとって説明し…

Rのデータ構造

R

Rのデータ構造が紛らわしいのでまとめておく。 データ構造 次元 制約 ベクトル 1次元 全要素は型が統一されている必要がある。 リスト 1次元 異なる型を保持できる。 順序なし因子 1次元 順序のないカテゴリを要素とする。 順序つき因子 1次元 順序のあるカ…

sed 備忘録

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

awk 備忘録

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

HueでHadoopをWeb UIから使う

Hue とは Hadoopは基本的にコマンドラインやJavaから操作する。そのため、初心者にはハードルが少々高い。実は、オープンソースのWeb UIがApacheで開発されている。Web UIを用いることで、操作が単純になり、学習コストも低減される。今回は、そのHueをイン…

デザインパターンのエッセンス

デザインパターン一覧 デザインパターンの記事を書き終えたので、まとめておきます。各々のデザインパターンの詳細は、下記のページをご覧ください。 生成に関するパターン 構造に関するパターン 振る舞いに関するパターン デザインパターンが重要なワケ ど…

デザインパターンのエッセンス~振る舞いパターン~

デザインパターンの解説は数多あるけれど、そもそも例が複雑で分かりにくい!というわけで、UML1枚のみでシンプルに説明するシリーズ第3弾(最終回)。 生成に関するパターンと構造に関するパターンに引き続き、今回は振る舞いに関する11個のパターン。 13. Ch…

デザインパターンのエッセンス~構造パターン~

デザインパターンの解説は数多あるけれど、そもそも例が複雑で分かりにくい!というわけで、UML1枚のみでシンプルに説明するシリーズ第2弾。 今回は、構造に関する7つのパターン。生成に関するパターンはこちら。 6. Adapter すでに提供されているものと必要…

デザインパターンのエッセンス~生成パターン~

デザインパターンの解説は数多あるけれど、そもそも例が複雑で分かりにくい!そこで、デザインパターンのエッセンスのみを抽出し、Javaのソースコードを併記することで、UML1枚ずつでシンプルに説明する。 デザインパターンには、生成に関するパターン・構造…

EclipseでMahout環境を構築する

目的 Mahoutは、Hadoop上で動くスケーラブルなオープンソース機械学習ライブラリである。今回は、Mahoutをソースコードレビューするために、Eclipseに取り込む。実行環境ではないので悪しからず。OSはWindowsを使用している。 方法 1.以下のサイトにアクセ…

How to Run Kdd2013AuthorPaperIdentification Benchmark

What is Kdd2013AuthorPaperIdentification? KDD Cup is the well-known data mining competition of the annual ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. KDD Cup 2013 -> https://www.kaggle.com/c/kdd-cup-2013-aut…

PostgreSQLのインストール

PostgreSQLのインストールにつまづいたので、ポイントを書いておきます。 環境 Windows7 PostgreSQL 9.2.4 ポイント1: .exeでインストールしてもPATHが通らない .exeの標準設定でインストールして、ログインしようとすると、以下のようなエラーが出た。 C:\>…

Twitter4Jでtwitterのキーワード検索データを収集する

目的 Twitterでコーパスを収集する。ここでは、キーワードでtweetを検索し、その結果をファイルに保存する。 手法 Twitter APIのJavaラッパーであるTwitter4Jを用いる。OAuth認証を使ってアクセスする。 http://twitter4j.org/ja/index.html http://www.atma…

Mr.Childrenの歌詞分析(7): どの曲をどんなときに聴くべきか

目的 Mr.Childrenの楽曲は、2013年2月現在で200曲近くあります。恋愛関係の歌、社会問題をテーマにしたもの、己を奮い立たせる歌、失意の曲など、その内容は多種多様です。一方で、楽曲が多いだけに、すべての曲を把握することは難しく、今の気分に合った曲…

Rで複数の文書をキーワードごとに分類する ~smdcパッケージの使い方~

目的 文書をキーワードごとに分類する。概略図を以下に示す。 文書ファイルとキーワードファイルの類似度を算出し、類似度に基づいて分類を行っている。 類似度の算出方法は以下のとおり。 ①N-gramによる類似度算出 ②形態素解析による類似度算出 ③センチメン…

Rパッケージを作ってCRANで公開する

目的 せっかくRで汎用的な関数を作ったので、他の人にも使ってもらいたい。CRAN(The Comprehensive R Archive Network)には、2013/2/16現在4338個ものRパッケージが公開されている。CRANにアップロードすると、 install.package('パッケージ名') で気軽にイ…

RMeCabでつまづくの巻

急にRMeCabのdocMatrix()が使えなくなった。 テキストの中身が空で読み込めないと言っているようだが…文字コードをいろいろ変えて実行してみたけど変わらず。 そもそも以前は同じスクリプト・同じデータでちゃんと動いていたはずなので、明らかにおかしい。…

Pythonで日本語WordNetと英語WordNetを利用して、単語間の類似度を測る

目的 「Mr.Childrenの歌詞分析(4): 単語の意味を考慮した、シングル曲のクラスタリング」では、文書の距離を計測するのに、同一語や同一概念の出現頻度を用いていた。この場合、"似ている"単語は考慮されておらず、クラスタリングの精度もいまひとつであった…

Mr.Childrenの歌詞分析(6): 感情に基づくマッピング

主結果 Mr.Childrenの歌詞の感情(センチメント)に基づいて、横軸に感情の平均値、縦軸に感情のばらつきをとって、楽曲をプロットしました。 考察 全曲だと曲数が多すぎるので、分かりやすいようにシングル曲のグラフを見てみます。センチメントが低いクラ…

Rでテキストファイルをセンチメントの時系列データに変換する

目的 テキストファイルから読み取れるセンチメント(感情)を測定したい。そのために、テキストに現れる各単語のセンチメントを出現順に計測し、時系列データとみてグラフを描く。また、その平均・標準偏差・歪度・尖度などを算出する。 手法 感情辞書 単語…

Rで複数のテキストファイルを二次元にマッピングして可視化する

目的 複数のテキストファイルの関係性をコンパクトに表現し、可視化したい。 手法 自己組織化マップ(SOM) 自己組織化マップは、視覚野のニューラルネットのモデルを元にした学習アルゴリズムであり、高次元データを低次元に非線形射影して表示できる。 http:…

Mr.Childrenの歌詞分析(5): フレーズに着目した、シングル曲のクラスタリング

主結果 Mr.Childrenのシングル曲を、歌詞のフレーズに着目してクラスタリングしました。頻出フレーズを書き加えています。 考察 N-gramでの解析では、フレーズがそのまま残るので、結果を見て解釈しやすいですね。全体として、Mr.Childrenの大きなテーマは「…

Mr.Childrenの歌詞分析(4): 単語の意味を考慮した、シングル曲のクラスタリング

主結果 Mr.Childrenのシングル曲を、歌詞を元にクラスタリングしてみました。 1.単語ベースのクラスタリング 2.概念ベースのクラスタリング 考察 評価 共通する単語や概念を赤字で書いてみました。単語ベースでは、「時代」「社会」や「幸せ」についてき…

Mr.Childrenの歌詞分析: ここまでのまとめ

主結果 Mr.Childrenの歌詞分析(1): よく出てくるワードランキング30 Mr.Childrenの歌詞分析(2): 多くの楽曲に含まれるワードランキング30 Mr.Childrenの歌詞分析(3): シングル曲のクラスタリング Mr.Childrenの歌詞分析(4): 単語の意味を考慮した、シングル…

PythonでWordNetを利用して、テキストの特徴行列を単語ベース→概念ベースに変換する

目的 「RとRMeCabでテキストファイルをクラスタリングする」 では、各テキストから単語を抽出し、各単語の出現頻度を元に、各テキストの特徴ベクトルを生成した。このとき、例えば"愛"と"あい"という単語は同一のものとして扱われたが、"愛"と"恋"という単語…

Mr.Childrenの歌詞分析(3): シングル曲のクラスタリング

主結果 Mr.Childrenのシングル曲の歌詞をクラスタリングしてみると、このようになりました。(アルバム曲を含めてクラスタリングすると図が煩雑になってしまうため、今回はシングル曲のみで実行しました。) 妥当性の検証 この結果って、どうなんでしょう。…

RとRMeCabでテキストファイルをクラスタリングする

目的 今回は、複数のテキストファイルを類似したテキスト同士で分類する。 手法 Rの階層的クラスタリングは、各行がクラスタリング対象の特徴ベクトルからなる行列に対して、各行をクラスタに分ける。そこで、RMeCabでtf*idf行列を作成し、Rで階層的クラスタ…

Mr.Childrenの歌詞分析(2): 多くの楽曲に含まれるワードランキング30

主結果 前回書いた「Mr.Childrenの歌詞分析(1): よく出てくるワードランキング30」の記事ですが、同一楽曲に何度も同じワードが出てきたとき、それを逐一カウントしていました。今回は、各ワードが全楽曲中の何曲に含まれるかをカウントしてみました。すると…

Mr.Childrenの歌詞分析(1): よく出てくるワードランキング30

主結果 Mr.Childrenの歌詞に出てくるワードを出現数でランキングすると、このような結果になりました! 順位ワード出現数 1 君 462 2 僕 374 3 人 166 4 何 158 5 誰 147 6 手 121 6 いい 121 8 中 120 9 今 118 10 夢 115 11 日 114 12 自分 108 13 胸 100 …

RMeCabで複数のテキストファイルの頻出ワードを抽出する

RMeCabとは 形態素解析はMeCabでもできるが、RMeCabを用いると、より手軽にかつ多様な処理を実行することができる。RMeCabは、RでMeCabを呼び出すインタフェースである。Rはオープンソースのデータ解析/マイニング言語であり、以下からインストールできる。h…

MeCabで複数のテキストファイルの形態素解析を行う

MeCabとは 日本語の文章を分析するとき、まず行うのが「形態素解析」である。形態素解析では、日本語を単語に分割して、それぞれの品詞や読みの解析を行う。これは非常に難しい問題だが、ありがたいことに、 MeCab というオープンソース形態素解析エンジンが…

歌詞をテキスト形式でダウンロードする

あるアーティストの歌詞をテキスト形式で一括ダウンロードできないかと探していたら、 Lyrics Master というソフトを発見。これは便利!アーティストの歌詞をすべてダウンロードするには、アーティスト名で検索し、右クリック>すべてダウンロードを選択すれ…

コミュニティ版Hadoopのインストール

hadoop-0.22系のインストール(メモ) http://d.hatena.ne.jp/takadayuichi/20120226/1332569186

JVM, Hadoop, Mahout の関係

JVM, Hadoop, Mahoutの関係って、こんなかんじでしょうか。 HadoopはJavaで実装されているため、Java実行環境が必要で、JVM上で動く。 Mahoutも同様だが、一部Hadoop上で動く。 JVMの下にはOS層のLinuxがいて、VM上で 動かすときはさらにLinuxの下にVMWarePl…

Hadoop×Mahout環境をCDHのVMでカンタンに構築する

ビッグデータ分析処理基盤として有効なHadoop×Mahoutの試用方法について記す。 方針: 基本的にWindows上でHadoopは動かないので、VMでLinuxを立てる。 多クラスタの分散モードは面倒なので、1台のPCで動く疑似分散モードを使う。 LinuxにHadoopを立てるのは…