10.テキストマイニング
はじめに
シンプルには、形態素解析+MDSで行えます。形態素解析については本稿では触れません。MDSは広い意味で、ここでは、対応分析を使った例を見ます。具体的には、T-newsを見ていきます。
テキストマイニングとは
一般的には、日本語を処理する部分と、処理した日本語を分かり易く見せる部分の2つの部分からなります。
一つめ、日本語を処理する部分。言葉を、意味を成す出来るだけ小さい単位にばらす工程です。これは、特に日本語において、ずいぶんと厄介な部分です。英語だと、あまり深く考えなくても、とりあえずは出来ます。単語と単語はスペースで区切られているからです。ところが、日本語はそう簡単にいきません。
よく挙がる例として、「庭には二羽鳥がいます」。「庭には鶏がいます」「二羽、庭には鳥がいます」のような類。どのように区切るのが正解なのかは、文字だけ見てもなかなかわかりません。
これはこれで、「形態素解析」という一分野として、いろいろと考えられているようです。一般的には「辞書」を使うタイプが多いように感じますが、先述の通り、ここでは触れません。
後半部分。形態素解析でばらした日本語を、どう見せるか。意味のある言葉として再構成するか、です。
これは、広義でいうMDS、例えば対応分析を使う例が多いように思われます。分かち書かれた単語が、互いにどういう関係にあるのか、良く同じ文に登場するのか、別の文でしか使われないのか、といったことを見ます。
なぜ、こんな2度手間(一度ばらしてまた関係付ける)のようなことをするのかと言うと、文章は、人によりさまざま、言葉も、同じことを言っているようでも、表現はまちまち、あるいは、似たようなことを言っているようでも、否定なのか、肯定なのか、微妙だったりするのです。そこで、一度言葉をばらして、単語単位で復元する、という2度手間をかけます。
T-news
ここでは、一例を見てみましょう。例えば、下記は2015年3月31日にUPした、3/30のツイートデータに基づくテキストマイニングの結果です。
これは、3/30、7時~29時台(3/31、6時まで)の間に、新聞各社のハッシュタグ付きで行われたツイートデータ、10,735件に基づいています。
まず、10,735件のツイートデータは、形態素解析によって、ばらばらの単語に分解されます。例えば、この日は、14,1052語が使われていたようです。品詞を無視して見ると(T-newsでは簡易的に品詞を無視しています)10,029語。1万件のつぶやきに、1万語しか使われていないのはおかしいと感じるかもしれません。これは、集計する単語を、品詞で絞り込んでいるからです(絞り込む際のみ品詞を見ています)。実際には、もっと多くの語が使われているのでしょうけれども、布置にあたっては、使う語の品詞を絞り込んでいます。例えば、「は」という助詞を布置しても、使われる文脈もさまざまで、意味をとれない、布置しても意味がないでしょう。こうした理由で、実際に布置に使う語は、形容詞や名詞など、一部に絞り込んでいます。
これを集計すると、その日多く使われた単語がわかります。
こうして、語単位で集計してみた結果が、例えば図表2.のようなものです。なお、実際には「未知語」も拾っています。列「cat」(カテゴリー)に「未知語」と入っている語は、形態素解析において、品詞をはっきり識別できなかった語です。新語など、形態素解析のソフトが使っている辞書作成時点では、登録されていなかった言葉がここに入ってきます。ただ、文節ではきちっと区切れているので、多くの場合、あらたな言葉や、特殊な言い回しの流行語などは「未知語」としてあらわれます。 テキストマイニングが流行り始めた2,000年前後には、各社が「うちは新語や流行語も十分に登録された辞書を使っています」と謳っていましたが、未知語を見れば、基本的には新語の登録は不要です。
図表2.で、4列目にある語が、実際の布置の計算に使った語です。新聞社のハッシュタグだったり、「RT」という文字列だったり、あまり布置しても意味がないであろう単語は、布置する語には含めていません。
なお、「社会」という語は、特定の記事というより、「社会記事」とか「社会面」とか、一般的な意味で使われることが多く、具体的な記事の情報としては、ほぼ意味をなさない場合が多いため、布置からは外しています。このような、経験に基づく判断も若干入っています。
こうして、出現頻度が高かった語を選び、これを、つぶやかれた時間ごとに集計します(図表3.)。一番左の列(表側)の数字が時間、表頭に語、のクロス表です(なお、対応分析一般の特性としても、周辺度数が他と著しく違う表側/表頭要素は使わないほうが良いでしょう)。
クロス表が出来てしまえば、あとは普通に対応分析を行えば、布置は得られます。
こうして得られたのが、図表1.のmapです。
文章の復元
日々のT-newsでは、こうして得られた布置をもとに、布置されている単語が、どういった記事の文章だったのか、復元して、コメントしています。例えば、この日は、下記のようなコメントを入れていました(若干見やすいように成形してあります)。
—
【新聞】各時間に多くツイッターで引用された記事
・一日を通じて多く引用された新聞記事
■08:50.
自殺は傾斜が急な地域ほど高率 和歌山県立医大と統計数理研 http://t.co/x91c92NK9j
— 47NEWS (@47news) 2015, 3月 29
■09:20.
エアカナダA320型機が着陸失敗、20人超負傷 送電線に接触か http://t.co/5vkrkVmETT pic.twitter.com/pKPesB0yS3
— ロイター.co.jp (@Reuters_co_jp) 2015, 3月 30
■10:00.
速報:パプアニューギニアの地震でパプアに1~3メートルの津波の恐れと警報。日本では30センチ以下の恐れ。 http://t.co/unWPgu51El
— 47NEWS (@47news) 2015, 3月 30
■13:10.
くまモン、ダイエットに失敗 「営業部長代理」に降格 http://t.co/h9uJPtjJgH
— 47NEWS (@47news) 2015, 3月 30
■17:50.
【お知らせ】朝日新聞社は東京・銀座6丁目の所有地に新ビルを建設します。国際級のラグジュアリーホテルなどが入り2017年秋に竣工する予定です。ホテルのブランド名などは決まり次第発表。詳細はhttp://t.co/t2yl2KnFXs pic.twitter.com/aKGamKyCiX
— 朝日新聞(asahi shimbun) (@asahi) 2015, 3月 30
(※時間順)
・特定の時間に多く引用された新聞記事
■9時台
エアカナダA320型機が着陸失敗、20人超負傷 送電線に接触か http://t.co/5vkrkVmETT pic.twitter.com/pKPesB0yS3
— ロイター.co.jp (@Reuters_co_jp) 2015, 3月 30
■10時台
速報:パプアニューギニアの地震でパプアに1~3メートルの津波の恐れと警報。日本では30センチ以下の恐れ。 http://t.co/unWPgu51El
— 47NEWS (@47news) 2015, 3月 30
—
例えば、布置上、左、第3象限のほうに、「10」という数字と「地震」という単語が見えます。数字は時間です。「10」時台。この時間帯に「地震」という語が高頻度で見られました(必ずしも、行要素と列要素は点間の距離関係で解釈できるとは限りません)。そこで、データに戻って、10,735件のツイートデータを見ます。このツイートデータのうち、まず、10時台のツイートだけにデータを絞り込みます。818件が該当します。次いで、「地震」という語を含むデータだけに絞り込みます。277件だけが該当します。この277件を単純集計してみましょう。すると、うち130件は、「RT @47news: 速報:パプアニューギニアの地震でパプアに1~3メートルの津波の恐れと警報。日本では30センチ以下の恐れ。」というツイートでした。
こうして、「■10時台→RT @47news: 速報:パプアニューギニアの地震でパプアに1~3メートルの津波の恐れと警報。日本では30センチ以下の恐れ。」というコメントに至っています。
とは言え、難しいことはともかくも、図(図表1.)を見れば、何時ごろ、何についてつぶやかれていたか、なんとなくは理解できるのではないでしょうか。
最後は、個々の記述的多変量解析法の解説とは少し離れましたが、実際にこんな風に使われているのだ、という紹介になればと思います。