libcs チュートリアル

  1. はじめに
  2. クラスタリングプログラムを作る
  3. クラスタの代表単語を表示する
  4. 検索結果を自動分類する
  5. クラスタリングアルゴリズムの詳細

1  はじめに

このチュートリアルでは,libcs について学びます.

libcs は, WAM にエンコードされたデータをクラスタリングするためのライブラリです. クラスタリングとは, 互いに似ているデータを自動的にまとめることです. まとまったデータ集合のことをクラスタと呼びます. 例えば,キーワード検索の結果(文書集合)をクラスタリングすれば, 検索結果を幾つかの意味的なまとまり(クラスタ)に分類することができます. これは検索結果の概観をつかむのに役立つでしょう. その他にも,単語の集合をクラスタリングすれば, シソーラス(単語の意味的な階層)のようなものを自動的に作ることができます.

実際の実行例をみてみましょう. 毎日新聞94年版から社説を10記事選び, 3つのクラスタに自動分類してみました. 行頭の番号(0,1.2)が,クラスタ番号です.

        $ clustering mai94e 3 a 1 2 3 4 5 6 7 8 9 10
        0       1       [社説]日本 変革へ、いかに立ち向かうか スリムでしんの強い社会へ
        0       2       [社説]経済 戦略的リストラを目指して スパイラル不況の回避を
        0       3       [社説]外交 内向きの世界で試される日本 一本勝負より合わせ技で
        0       4       [社説]国際 地域紛争解決の国際連帯を 日本に必要な意識変革
        1       5       [社説]政治 試される細川政権の「連立」運営 政治改革実現こそ急務
        1       10      [社説]社会党 路線問題の先送り許されぬ
        1       7       [社説]米朝 より大きな合意をめざせ
        1       9       [社説]定住外国人 「参政権」に前向きの論議を
        2       6       [社説]経済 だから企業家精神の発揮を
        2       8       [社説]企業献金 全面禁止だけが抜け道防ぐ

文書数が少ないのであまりインパクトのある結果ではありませんが, それでも似ている文書がまとまっているのがわかります. まず最初のクラスタ(0番)には, 日本の社会構造,経済,外交関係の社説があつまっています. 二番目のクラスタ(1番)は,政治関係の話題です. 最後のクラスタ(2番)は,経済でも特に企業に関するものの話題です.

以下は,それぞれのクラスタを代表する単語(上位5単語)です. 代表単語をながめることで, 各クラスタがどんな話題から成っているのか, おぼろげながらも見えてきます. libcs では,このような付加的な情報も計算することができます. 詳しくは「3: クラスタの代表単語を表示する」で説明します.

        0       2       日本
        0       56      世界
        0       11      経済
        0       393     民族
        0       658     紛争
        1       8       政権
        1       2433    参政権
        1       840     外国人
        1       32      北朝鮮
        1       25      政策
        2       195     献金
        2       23      企業
        2       38      円
        2       164     団体
        2       1829    支部

クラスタリングは応用次第でいろいろな使い方ができる便利な道具です. libcs が提供する関数を使えば, 簡単にクラスタリングアプリケーションが書けるようになります. あとは対象データを WAM に変換しておけば, そのデータに対してクラスタリングを適用することができます. 次節では, 例として上記のプログラム clustering を作りながら libcs の基本について説明します.


2: libcs を使ってクラスタリングプログラムを作る」に進む