Ahogrammer

Deep Dive Into NLP, ML and Cloud

教師なしで作る評価分析器

評価分析は自然言語処理の基礎技術でありながら実世界に広く応用されている技術です。たとえば、顧客の声を拾うために商品レビューを評価分析して肯定的なのか否定的なのか判断するのに使われています。また、情報抽出の技術と組み合わせて、文書のどの部分が肯定的/否定的なことを言っているのかを判定することもあります。

f:id:Hironsan:20180914094939j:plain 参照: An online form with built-in Sentiment Analysis

評価分析を行うためによく使われるのは教師あり学習による手法です。教師あり学習を用いた手法では、評価分析をする対象のテキストとその評価のマッピング機械学習アルゴリズムに学習させます。したがって、教師ありの手法を使うためにはラベルの付いたテキストを用意する必要があります。

本記事では、教師なしで評価分析器を作成する方法を紹介します。教師なしの手法のメリットとしては、ラベル付与済みのテキストを用意する必要がない点を挙げられます。記事は以下の内容で構成されています。

  • 実装するモデルの説明
  • モデルの実装

では、実装していきましょう。

続きを読む

文字ベース言語モデルの作り方

最近の言語処理では言語モデルを使って転移学習をしたり、性能向上に役立てたりするようになってきました。言語モデルの1つであるELMoでは、言語モデルから得られる分散表現を他のタスクの入力に使うことで、質問応答や固有表現認識、評価分析といった様々なタスクの性能向上に役立つことを示しました。ELMoについては以下の記事で詳しく紹介されています。

kamujun.hatenablog.com

よくある言語モデルでは単語単位で学習を行うのですが、文字単位で学習することもできます。そのメリットとしては、文字単位の言語モデルは単語と比べてボキャブラリ数が少ないため学習が高速に進むことや未知語が少ない事が挙げられます。

本記事では文字ベースの言語モデルの作り方について紹介しようと思います。言語モデルを作成し学習したあとは学習したモデルを使ってテキストを生成して見るところまでやってみます。この記事を読むと以下の内容が学べます。

  • 文字ベース言語モデルのためのテキストの準備方法
  • KerasにおけるLSTMを使った言語モデルの作成方法
  • 学習したモデルを使ったテキストの生成方法

記事の構成は以下の3部から成っています。

  • データの準備
  • モデルの学習
  • テキストの生成

では、データの準備から進めていきましょう。

本記事のすべてのコードは以下のリポジトリに格納しています。

github.com

続きを読む