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

データサイエンスブログ

データ分析・統計・機械学習・自然言語処理関連

自然言語のクラスタリング1〜凝集型クラスタリング〜

自然言語処理 クラスタリング

f:id:yusuke091:20170202172202p:plain

今回は凝集型クラスタリングを使って、自然言語クラスタリングをしてみたいと思います。

※この記事は以下の書籍を参考に書かれています

言語処理のための機械学習入門 (自然言語処理シリーズ)

言語処理のための機械学習入門 (自然言語処理シリーズ)

 

 

凝集型クラスタリング

クラスタリング

似ているもの同士を一つのグループにまとめ、グループ分けを行う作業。

出来上がるグループのことをクラスタと呼ぶ。どのようなクラスタが出来上がるかを事前に知ることはできない。

教師なし学習の一つ

凝集型クラスタリング

似ているもの同士をくっつけていくクラスタリング手法。

 

自然言語データ

TwitterのSearch APIで取得できる「#ジブリ」を含むツイート37件を利用。

戦争で稼ぐ奴は悪党だ。 〔ジャンク屋の親父 / 紅の豚〕#ジブリ
タイトル組み合わせ 『耳すませ豚』 #ジブリ
仕事をしている二郎さんを見るのが一番好き #ジブリ
...
あの女のために残しておいた力なのに!(「もののけ姫」モロ)   #ジブリ #アニメ #名言
前処理

データの前処理として、MeCabによる分かち書きと小文字化を行っておく。

 

自然言語の数学的表現

今回はbag-of-wordsを利用した。

bag-of-words

文章のベクトル表現の一つ。文章内に各単語が何回出現したかを用いてベクトルで表す。単語の頻度のみで表され、語順などの情報は残らない。

データ全体で、以下の単語が含まれていた場合、

,!,!!,#,',(,),)  #,.,. /,/,:,a,and,approach,as,be,bite,boars,bot,by,can,change,course,cut,demon,does,don,even,everyone,fake,far,fears,find,for,garden,ghibli,girl,go,head,here,how,i,is,island,kiki,ll,m,my,nearest,not,of,off,out,re,s,sap,sight,soon,stand,still,such,t,that,the,there,they,this,trick,well,which,within,you,you.,…,↑,♫,♬, , #,、,。,「,」,『,』,〔,〕#,あぁ,あの,あれ,あんた,い,いっか,いやいや,いる,う,ぇい,おい,お前,か,かい,から,かわいそう,かんちがい,が,ここ,こちら,こと,この,さ,さみしく,ざわ,し,しぃ,しまっ,すぐ,すませ,ずいぶん,せい,そいつ,そなた,それ,ぞ,た,たき,たずねる,ただ,たび,ため,たら,だ,だけ,ちゃう,っ,つらい,つる,て,てる,で,です,でっかい,と,となり,と共に,な,ない,なく,なっ,なら,なる,なんか,なんて,に,ぬ,ね,ねぇ,ねえ,の,のに,は,はぁ,はるか,ば,ばかり,ひき,ふ,ふっ,まぁ,まず,まで,まま,まるで,みな,も,もう,もっと,もののけ姫,やめ,ややこしい,よ,よう,よかっ,よっぽど,より,ら,れ,れる,わ!,を,アシタカ,アニメ,エボシ,オーバー,カルシファー,グッバイ,サン,シリ,シータ,ジコ,ジブリ,ジャンク,ソフィー,タイトル,タタラ,チャーシュー,ドキドキ,ドーラ,ニャー,ハウルの動く城,バカヤロ,ポルコ,マルクル,モロ,モーニング,ヤックル,ラーメン,ラーメンマン,ー,一,一番,下ろし,中,乗っ,二郎さん,人間,今日,仕事,付く,会,会い,伝え,伝説,借りもの,入る,共に,冬,出発,切ら,力,動く,午後,古本屋,名前,名言,君,告げよ,土,地バ,坂道,坊,場,変える,夜叉,夢,大きく,天空の城ラピュタ,女,奴,好き,娘,子,家族,家来,屋,山犬,幼稚園,度,庭,弁当,待た,待っ,後で,御,心,必ず,志,恐れ,恩返し,息子,悪党,我が,戦争,戻れ,技,持て,文化会館,方,早く,春,時,暮らそ,朝焼け,未来,果てしなく,染め,根,森,様,歌お,死ぬ,残し,気づく,泣く,猫,猫の恩返し,王,生きよう,皆,私,種,稼ぐ,空,突然,窓,紅の豚,組み合わせ,美しかっ,者,耳,耳をすませば,聖司,胸,良い奴,英語,落とし,行く,見え,見つかっ,見る,親方,親父,観る,観劇,解き放て,豚,贅沢,越え,越える,近寄ら,返事,逃がさ,違え,重量,針路,音楽,風,飛べ,飛ん,食らい,首,驚い,髪の毛,魔女の宅急便,鳥,!,!(,!-,#,(,(「#,),)  #,?

次の文章は、

戦争で稼ぐ奴は悪党だ。 〔ジャンク屋の親父 / 紅の豚〕#ジブリ

このようにベクトル化される。

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

 

クラスタリング

今回は37個の文章をすべてクラスタとし、類似のものを融合していくことでクラスタが10個以内になるまで処理を行う。

クラスタの類似度を測るためのアルゴリズムには以下のようなものがある。

単連結法

二つのクラスタが与えられた時、その中で最も近い事例対の類似度を、その二つのクラスタの類似度とする方法。クラスタが長く伸びてしまおうがお構いなしに融合していく。

完全連結法

二つのクラスタが与えられた時、その中で最も遠い事例同士の類似度を、その二つのクラスタの類似度とする方法。鎖のように長く伸びたクラスタができにくい。

重心法

クラスタの重心ベクトルの類似度をクラスタ間の類似度とする。単連結法と完全連結法の中間的な性質を持つ。

 

今回は重心法を用いて、クラスタの類似度を測る。類似度の計算には余弦類似度を使用する。

結果

以下のようにクラスタリングされた。

クラスタ2を見ると「タイトル」や「組み合わせ」、「♫」、「魔女の宅急便」、「kiki」、「英語」、「ghibli」などが共通して含まれていることが分かる。

クラスタ4では「アニメ」と「名言」が共通して含まれている。

 

--- クラスタ1 ---
戦争 で 稼ぐ 奴 は 悪党 だ 。 〔 ジャンク 屋 の 親父 / 紅の豚 〕# ジブリ
良い奴 は 皆 死ぬ 。 〔 ポルコ / 紅の豚 〕# ジブリ
そいつ ら 、 後で 泣く こと に なる な 。 まず 人間 に は 戻れ ない よ 。 〔 カルシファー / ハウルの動く城 〕# ジブリ
お前 の 弁当 、 ずいぶん でっかい の な 。 〔 聖司 / 耳をすませば 〕# ジブリ
音楽 やめ ぇい ! 〔 猫 王 / 猫の恩返し 〕# ジブリ
私 なんか 、 美しかっ た こと なんて 一 度 も ない わ! 〔 ソフィー / ハウルの動く城 〕# ジブリ
かわいそう に 、 髪の毛 を 切ら れる 方 が よっぽど つらい さ 。 〔 ドーラ / 天空の城ラピュタ 〕# ジブリ

--- クラスタ2 ---
タイトル 組み合わせ 『 耳 すませ 豚 』 # ジブリ
タイトル 組み合わせ 『 借りもの で すませ ば 』 # ジブリ
タイトル 組み合わせ 『 となり の 動く 豚 』 # ジブリ
♫ 朝焼け が 窓 を 染め た なら 君 に 告げよ う グッバイ モーニング … # bot # 魔女の宅急便 # kiki # ジブリ
♫ さみしく なる と たずねる 坂道 の 古本屋 … # bot # 魔女の宅急便 # kiki # ジブリ
… ♬ それ は まるで 夢 の よう … # bot # 魔女の宅急便 # kiki # ジブリ
… ♬ 時 を 越える たび 気づく ね 心 は 果てしなく て … # bot # 魔女の宅急便 # kiki # ジブリ
♫ 突然 驚い た の … 胸 が ドキドキ し てる … # bot # 魔女の宅急便 # kiki # ジブリ
マルクル … … 待た れ よ 。 stand by ハウルの動く城 より # ジブリ # ghibli # 英語
don ' t be such a sap ! バカヤロ   志 を もっと 大きく 持て # ジブリ # 紅の豚 # 英語 # 名言
もう 逃がさ ねえ ぞ that ' s as far as you go ! 紅の豚 より # ジブリ # ghibli # 英語
見つかっ ちゃう よ ! they ' ll find out i ' m a fake 魔女の宅急便 より # ジブリ # ghibli # 英語
飛べ ねぇ 豚 は ただ の チャーシュー だ # ラーメンマン 伝説 # ジブリ
ジコ 坊 : ふ ふっ 地バ シリ の 技 だ that ' s how they trick the boars もののけ姫 より # ジブリ # ghibli # 英語
親方 ー っ ! 空 から ラーメン が ー !! # ラーメンマン 伝説 # ジブリ
エボシ : 首 だけ に なっ て も 食らい 付く の が 山犬 だ even cut off , the head can still bite もののけ姫 より # ジブリ # ghibli # 英語
they ' ll change course for the nearest island as soon as they ' re out of sight . by ポルコ 見え なく なる まで 飛ん で すぐ 針路 を 変える に 違え ねえ # ジブリ # 紅の豚 # 英語 # 名言
我が 家族 は ややこしい 者 ばかり だ な 。 # ジブリ
午後 から 幼稚園 の 観劇 会 文化会館 で つる の 恩返し を 観る よ 息子 に 伝え たら 、 あぁ … 猫 の 。 あれ か 。 と 。 まぁ いっか ! # ジブリ # 猫の恩返し # かんちがい
いやいや 、 見つかっ て よかっ た 。 はぁ … はぁ … 。 こちら に 入る 時 に 落とし て しまっ た よう で … 御 家来 様 の 重量 オーバー の せい です ニャー ↑ ↑ # ジブリ

--- クラスタ3 ---
仕事 を し て いる 二郎さん を 見る の が 一番 好き # ジブリ

--- クラスタ4 ---
必ず 行く から 未来 で 待っ て い て !( ソフィー )  # ジブリ  # アニメ  # 名言
「 サン は 森 で 、 私 は タタラ 場 で 暮らそ う 。 共に 生きよう 。 会い に 行く よ 、 ヤックル に 乗っ て 。 」 ( アシタカ )  # ジブリ  # アニメ  # 名言
あの 女 の ため に 残し て おい た 力 な のに ! ( 「 もののけ姫 」 モロ )     # ジブリ  # アニメ  # 名言

--- クラスタ5 ---
土 に 根 を 下ろし 、 風 と共に 生きよう 。 種 と共に 冬 を 越え 、 鳥 と共に 春 を 歌お う 。 (「# 天空の城ラピュタ 」 # シータ ) # ジブリ

--- クラスタ6 ---
たき ざわ はるか ? 贅沢 な 名前 だ ねぇ … 今日 から 、 あんた の 名前 は 、 ラーメン だ よ ! 早く 返事 を しぃ 、 ラーメン !! # ラーメンマン 伝説 # ジブリ

--- クラスタ7 ---
here is my garden , which everyone fears and does not approach . / ここ は 、 みな 恐れ て 近寄ら ぬ 私 の 庭 だ ( エボシ / もののけ姫 ) # ジブリ

--- クラスタ8 ---
あの 子 を 解き放て ! あの 子 は 人間 だ ぞ !- アシタカ ( もののけ姫 ) # ジブリ

--- クラスタ9 ---
there is a demon within you. within this girl as well . / そなた の 中 に は 夜叉 が いる 。 この 娘 の 中 に も だ 。 ( アシタカ / もののけ姫 ) # ジブリ

--- クラスタ10 ---
この まま ひき さ が れる かい 。 すぐ 出発 だ ! ! # ジブリ