「自然言語処理を実現する技術②「共起度解析」で言葉の関連性を調べる」では、共起度を用いた解析や文章から単語頻度を抽出し、特定の話題に対する特徴を抽出しました。
今回は、統計的分析手法であるクラスター分析を用いて、より細かな文章分類を行います。前編ではクラスター分析とは何かをご紹介し、後編では実際に文章や文をクラスター分析するための手順と結果をご紹介したいと思います。
クラスター分析(クラスタリング)とは、様々な特徴を持つものの集団から、互いに似た性質を持つものに分類し、細かい集団をつくる分析手法です。対象となるサンプルや変数を用い「似た者同士を分類する」といったイメージです。
クラウドやIoTなどのテクノロジーの進歩で、あらゆるデータを取得しやすくなり、これらのデータをいかに活用・分析し、顧客への価値を見出すかという時代になりました。
ビッグデータ分析などで溢れるほどのデータや雑多なデータを分析するとき、まず行うことは、分類を行うことです。分類して初めて、データの傾向を掴み、分析の計画を立てることができるともあります。
クラスター分析は、前述のとおり「似た者同士を分類する」統計的分析手法ですが、代表的な例だと、顧客の購買行動分析などで使われています。ECサイトなどで、購入履歴や閲覧履歴をもとに、おすすめ商品の提案(リコメンド)をされる場面が多くあるかと思います。これは、これまでの傾向をもとに、似た商品の分類や、似た商品の分類を行い、提案する商品を決めています。
またその他、機械学習の裏でも、使われています。人工知能(AI)による分析の中でも、見本となるデータである「教師データ」がある分析もありますが、機械学習は、データを読み取りながら、その蓄積で傾向を掴んでいく分析です。この際にも、クラスター分析が使われています。
ここからは、架空の試験データをサンプルに用いて、クラスター分析を行ってみたいと思います。
現代文、古文、英語、化学、生物、物理、数学、世界史、日本史、地学の10個の試験データ(データ1)から大森、スーザン、佐川、嶋田、深山、亀田それぞれの分類を行います。
※今回は文系科目(現代文、古文、英語、世界史、日本史、地学)を赤色とし、理系科目(数学、化学、生物、物理)を青色で表記を行いました。また、文系科目の中でも、社会系の科目のに、黄色でハイライトを加えています。
現代文 | 古文 | 英語 | 化学 | 生物 | 物理 | 数学 | 世界史 | 日本史 | 地理 | |
---|---|---|---|---|---|---|---|---|---|---|
大森 | 9 | 10 | 10 | 4 | 3 | 3 | 5 | 10 | 10 | 10 |
スーザン | 9 | 10 | 8 | 1 | 1 | 2 | 1 | 10 | 9 | 9 |
佐川 | 6 | 5 | 6 | 5 | 5 | 5 | 5 | 10 | 10 | 8 |
嶋田 | 2 | 2 | 3 | 5 | 6 | 2 | 4 | 8 | 8 | 8 |
深山 | 4 | 4 | 2 | 9 | 10 | 10 | 9 | 5 | 7 | 3 |
亀田 | 3 | 2 | 3 | 9 | 8 | 10 | 10 | 8 | 8 | 2 |
データ1:架空の試験データ
クラスター分析は、まずデータとデータの距離を求めます。これによって、「どれくらいそれらのデータが関連しているか?」を求めることができます。
距離はユークリッド距離やマハラノビス距離、マンハッタン距離などがありますが、ここで紹介するのは一般的にクラスター分析で用いられるユークリッド距離のみとします。
ユークリッド距離とは、ピタゴラスの定理によって求められる距離で、下記の数式1より求めることができます。
数式1
しかし、クラスター分析を行なう際には、ユークリッド距離の実数値を使うと十分な距離を得ることが出来ず、分類結果が曖昧になることがあります。そのため、より離れた対象ほどより大きな重みをもつようにために、ユーグリッド平方距離を用いて「重みづけ」を行うことが多いです。ユークリッド平方距離は下記の数式より求めることが出来ます。
数式2
これによりデータ1から距離を求めると次のような結果を得ることが出来ます。
※全ての結果を書くと量が多くなるので、クラスタリングに用いる上位5を挙げます。
クラスター化順序 | 要素1 | 要素2 | ユークリッド距離 | ユークリッド平方距離 |
---|---|---|---|---|
1 | 深山 | 亀田 | 4.690 | 22.000 |
2 | 大森 | スーザン | 5.916 | 35.000 |
3 | 佐川 | 嶋田 | 7.280 | 53.000 |
4 | 大森 | 佐川 | 14.441 | 208.556 |
5 | 大森 | 深山 | 25.056 | 627.815 |
表1:ユークリッド平方距離からクラスター化
①で求められたデータ間の距離を組み合わせ(併合し)、クラスター(集団)を作ります。
このクラスターの作り方にも、最近隣法や群平均法、ウォード法などがありますが、今回はウォード法で行います。手法の説明まで行ってしまうのは難しいので、詳細は下記のページなどをご参考にしてみてください。
クラスター分析の手法② (階層クラスター分析) (Albert)
階層的クラスタリングの併合方法を図で確認 (Qiita)
以下では、ウォード法によって作ったクラスターの情報を示します(図1)。
図1:クラスター分析の結果
クラスター分析の結果、深山と亀田が最も似ている(距離が近い)ため、1つの集合(クラスター)ができました。その次に、大森とスーザンが似ているため、また1つの集合があり、その次に佐川と嶋田が似ているため、そこにも1つの集合があります。
データ1で示した点数と見比べると、文系科目を示す赤文字で書かれている科目で高得点を取っているのが、大森とスーザンとなっており、一方で理系科目を示す青文字で書かれている科目で高得点を取っているのが、深山と亀田となっています。そして、赤色の中でも、黄色背景だけ高得点を取っているのが、佐川と嶋田です。
この結果から、それぞれのクラスターの傾向を把握することができます。今回の場合は、大森とスーザンは文系、深山と亀田は理系、佐川と嶋田は社会系の科目が得意なので、上記のような結果が出たと考えることができます。これらの結果を、例えばクラス替えなどにも活用することができますね。
クラスター分析は様々な分野で用いられており、例えば、自動車保険などでは、車種・年齢・男女・地域・事故数などからクラスタリングし、どの車種がどのクラスターに属するかを確認することによって保険の等級を決めることが可能となります。
ちなみに、このような数値データの場合は、Rなどの解析ソフトを使用することにより、簡単で正確な分析や、さらなる複合的な分析ができるようになります。
しかし、上記のように、分類を容易に行なう統計処理ではあるものの、参照しているデータは数値データなので、数値データ以外を分類する場合は数値化を行う必要があります。
本題である、「自然言語」をクラスタリングする場合には、文や単語を「特徴ベクトル」を用いて数値化する必要があります。後編では、特徴ベクトルの出し方を説明し、自然言語の分類を行ってみたいと思います。
JTP における自然言語処理の技術を活用した Watson チャットボットや検索システムの取り組みについては、下記のページでもご紹介しています。ご興味のある方はぜひご覧ください。
記事は、予告なく変更または削除される場合があります。
記載された情報は、執筆・公開された時点のものであり、予告なく変更されている場合があります。
また、社名、製品名、サービス名などは、各社の商標または登録商標の場合があります。