Ahogrammer

Deep Dive Into NLP, ML and Cloud

Pythonで日本語の文字分散表現を学習する

f:id:Hironsan:20171108110523p:plain:w500

最近の自然言語処理では、文字レベルの言語処理が行われることがあります。 これら文字レベルの言語処理は、ユーザ生成コンテンツに有効であると言われています。 その理由として、ユーザ生成コンテンツのような崩れたテキストでは、形態素解析の性能が大幅に低下し、単語レベルの処理が上手くいかなくなることが挙げられています。

文字レベルの言語処理を行うなら、単語レベルの場合と同じく文字分散表現を事前学習したくなります。 文字分散表現を事前学習しておくことで、①良い文字ベクトルの初期値を得られる、②学習データに現れない文字のベクトルを教師なしで得られる、といった恩恵を受けられます。

本記事では、日本語の文字に対して文字分散表現を学習してみます。 本文は次の2つの内容で構成されています。

  • 学習データの準備
  • 文字分散表現の学習
続きを読む

Pythonで単語分散表現のクラスタリング

最近の自然言語処理では、単語の分散表現は当たり前のように使われています。 単語分散表現では、各単語が高次元ベクトル空間に配置され、加減乗除等の演算を行えるようになります。 これらのベクトルは、意味の近い単語に対しては同じようなベクトルになることがわかっています。

本記事では、単語分散表現のベクトルをクラスタリングし、意味が近い単語のクラスタを作ってみたいと思います。 これらのクラスタは、眺めて楽しむだけでなく、機械学習の素性として使うこともできます。

イメージ的には、以下のような感じで単語をクラスタにまとめます。 f:id:Hironsan:20171101055538g:plain

では、単語分散表現をクラスタリングして、単語のクラスタを作ってみましょう。

続きを読む