【コラム】

Yet Another 仕事のツール

49 茶筌を利用するソフトウェア「KH Coder」

49/112

あけましておめでとうございます。早いもので、このコラムも2年目に突入、私も3回目の年男ということで、改めて気合を入れ直しております。本年もどうぞよろしくお付き合いください。

年頭の御挨拶が済んだところで、いつも通りの「だ・である」調に戻ろう。前回はちょっと寄り道してMySQLの話題をお届けしたが、今回はまたテキストマイニング方面に戻り、茶筌を組み込みで利用するソフトウェアを紹介する。

オープンソースに馴染みの深いサーバ管理者などにとっては、「茶筌組み込み」というとすぐ「Namazu」などの全文検索システムが思い浮かぶことと思う。しかし、本コラムはもともとオープンなソフトウェアをいかに一般的なビジネスユーザの仕事に活かすか、ということをテーマとして掲げている。まあ、昨年はかなりテーマからズレたことも書いており、今更なんだと言われても仕方ないわけだが、年始の1回目ぐらいは初心に還るのもいいだろう。

今回紹介するのはサーバ側のソフトウェアではなく、WindowsのGUI上で簡単に自然文の分析を行える「コンピュータ・コーディング」のツール、樋口耕一氏の「KH Coder」だ。

KH Coderはフリーウェアであり、GPLに従う限り自由に利用できる。ただし、動作にはMySQLと茶筌が必須となるので、あらかじめそれぞれのWindows版を入手してインストールしておこう。MySQLに関しては、KH Coderからデータベース作成処理などが自動的に実行されるため、localhostからの操作は無条件に許可しておく。以前紹介したNavicat等のツールを使えば、面倒な権限操作も簡単に行える。図のように、「@localhost」に全てのグローバル権限を与えればよい。

@localhostに全てのグローバル権限を与える

また、KH CoderにはMicrosoft Excelと連動する機能も多いので、実際に試してみる場合は、あらかじめExcelを導入済みのPCで動かしてみて欲しい。

必要な前提環境の準備ができたら、ダウンロード、解凍したKH Coderを起動する。

最初に茶筌の設定を行おう。メニューから「プロジェクト(P)」-「設定」を実行すると、以下のような設定ダイアログが開く。ここから、茶筌をインストールしたパスを指定しよう。これで準備は完了だ。

茶筌の設定

さて、KH Coderで何ができるかというと、例えば自由回答形式のアンケート等で得られた「質的な」情報から、特定の事柄に言及している回答がどのぐらいあるのか調べるとか、男性の回答に多く含まれる言葉を洗い出すといった「計量的な」分析が可能であるという。システムの目的や学術的な知識に関する詳細についてはKH Coderのチュートリアル・ドキュメントをお読みいただくとして、本コラムでは具体的に動かしてみて、仕事に役立てられないかを探る「とりあえずやってみる」型のアプローチでいくことにしよう。

まず、「新規プロジェクト」を作成し、分析対象となるドキュメントを指定する。メニューから「プロジェクト(P)」-「新規」を実行し、表示される以下のダイアログで分析対象ファイルを指定しよう。なお、分析対象ファイルは通常のテキストファイルで構わないが、HTMLの<H1>~<H5>タグによって見出しをマークアップしておくことで、より複雑な分析が行える。例えばKH Coderのサイトでは、夏目漱石の小説「こころ」がチュートリアル用データとして配布されているが、このデータでは章や節の見出しに<H1>、<H2>タグが付加されている。これにより、「H2タグのついた見出しの中である言葉が出現する頻度」のような分析も可能になるわけだ。

「新規プロジェクト」を作成

分析対象ファイルが指定できたら、メニューから「前処理(B)」-「前処理の実行」を行おう。これにより、茶筌による形態素解析が行われ、その結果がMySQLデータベースに登録される。

形態素解析が行われ、その結果がMySQLデータベースに登録される

以後、このデータを元に様々な分析が行える。ためしに、「品詞別出現回数順リスト」を出力してみよう。「ツール(T)」-「品詞別出現回数順リスト」を実行するとExcelが起動し、全文の中で単語が多く出現する順位を品詞ごとに抽出した表が表示される。

Excelに抽出した表が表示される

「こころ」のような文学作品を相手に単語の出現回数を調べても得るものはあまりないが、これが例えば小売店でよく実施している「お客様アンケート」のようなデータであれば、どんなことについてより多くの意見が寄せられているのかを知る指標として利用できるだろう。

と、ここで字数が尽きてしまったので、続きは次回とする。次回は、もう少し複雑なテキストマイニングをやってみたい。

49/112

インデックス

連載目次
第112回 TYPO3とHTMLテンプレート
第111回 TYPO3とデザイン変更
第110回 エクステンションでTYPO3の機能を向上
第109回 TYPO3コンテンツの作成
第108回 いよいよWebサイトを構築
第107回 TYPO3の文字化けを解消
第106回 超高機能CMS TYPO3を使いこなしてみよう(3)
第105回 超高機能CMS TYPO3を使いこなしてみよう(2) - インストール、環境設定
第104回 超高機能CMS TYPO3を使いこなしてみよう(1)
第103回 OSSのナレッジベースaphpkbを活用してみる
第102回 ナレッジツール「aphpkb」で知識共有
第101回 PHProjektの文字化け対策
第100回 LAMPプロジェクト管理ツール - PHProjekt
第99回 プロジェクト管理を効率化しよう - JProjectTimerとGanttPV
第98回 プロジェクト管理を効率化しよう - GanttProject
第97回 EclipseでBusiness Intelligence - BIRTを使ってみよう(3)
第96回 EclipseでBusiness Intelligence - BIRTを使ってみよう(2)
第95回 EclipseでBusiness Intelligence - BIRTを使ってみよう(1)
第94回 Olutで販売在庫管理
第93回 オープンソースのSNS - OpenPNEを試してみる
第92回 SugarCRMの不具合を修正する
第91回 Synergyでキーボード、マウスを共有する
第90回 SugarCRMへのデータ登録を省力化する
第89回 SugarCRMの用語を理解する
第88回 SugarCRM - オープンソースで「ほう・れん・そう」
第87回 Oracle XE - HTML DBでアプリケーションをつくる
第86回 無料のOracle Database XEを試す
第85回 OpenOffce.org 2.0「Base」を使ってみる
第84回 JpGraphでSNMPデータからグラフを生成
第83回 SNMPの活用(4) - ホスト情報をMySQLに自動蓄積~グラフの生成
第82回 SNMP InformantによるWindowsサーバのSNMPエージェント
第81回 SNMPを活用する(3) - マシンから収集した情報を活用~MIBの基本
第80回 SNMPを活用する(2) - Net-SNMPの導入
第79回 SNMPを活用する(1) - サーバの状態を監視~SNMPとは
第78回 Nagios Pluginを使ってサーバをチェック
第77回 Nagiosに監視対象を追加する
第76回 Nagiosにプラグインを導入する
第75回 Nagiosでネットワークを監視する
第74回 DrupalをBlogとして使う
第73回 Drupalを日本語化 - 翻訳ファイルのインポート~設定
第72回 XOOPS、Ploneに続け! - YetAnotherなCMS"Drupal"の導入
第71回 EpozでPloneのコンテンツを編集する
第70回 OpenSolarisをビルドしてみる(2)
第69回 OpenSolarisをビルドしてみる(1)
第68回 ZMIの日本語化とデザインのカスタマイズ
第67回 Zope + CMFのCMS"Plone"を使ってみよう - 基本的なコンテンツの編集
第66回 Zope + CMFのCMS"Plone"を使ってみよう - 導入
第65回 phpCollabでプロジェクト管理(5) - ガントチャートを日本語化
第64回 phpCollabでプロジェクト管理(4) メール送信の文字化けを解消する
第63回 phpCollabでプロジェクト管理(3) phpCollabの不具合を修正
第62回 phpCollabでプロジェクト管理(2) phpCollabの導入
第61回 phpCollabでプロジェクト管理(1)
第60回 osCommerceでショップを構築(7) お勧め商品を表示
第59回 osCommerceでショップを構築(6) MySQLにデータをロード
第58回 osCommerceでショップを構築(6) 分析スクリプト
第57回 osCommerceでショップを構築(5) PHP CLIスクリプト
第56回 osCommerceでショップを構築(4) 処理の手順を考える
第55回 osCommerceでショップを構築(3) 注文データ
第54回 osCommerceでショップを構築(2) - データベース構造
第53回 osCommerceでショップを構築(1) - 導入
第52回 PostgreSQLとMySQLのベンチマークテスト(2) - mysqlbench
第51回 PostgreSQLとMySQLのベンチマークテスト(1) - pgbench
第50回 KH Coderとコーディング・ルール
第49回 茶筌を利用するソフトウェア「KH Coder」
第48回 MySQL 4.0から4.1へのアップグレード 、トラブってませんか?
第47回 茶筌の辞書に単語を登録する
第46回 茶筌とMUSASHIで純和風テキストマイニング
第45回 日本語形態素解析ツール「ChaSen」
第44回 PostgreSQLレプリケーションのまとめ
第43回 PGCluster - 部分レプリケーション
第42回 ロードバランサの冗長構成
第41回 レプリケーションサーバを冗長化する
第40回 システムの急所、SPOFを無くすための考察
第39回 PGCluster データベースクラスタの障害からの復旧(2)
第38回 PGCluster データベースクラスタの障害からの復旧(1)
第37回 PGClusterの動作確認とDBクラスタの障害検出
第36回 1台のホストでPGClusterを試す(2)
第35回 1台のホストでPGClusterを試す
第34回 PGClusterの導入
第33回 PGClusterの特徴
第32回 Slony-Iのslonikコマンドラインユーティリティ
第31回 Slony-Iでデータベースをレプリケーション
第30回 レプリケーションシステム「Slony-I」の導入
第29回 pgpoolの障害復旧手順(2)
第28回 pgpoolの障害復旧手順(1)
第27回 pgpoolの障害検出と縮退運転
第26回 pgpoolでデータベースのレプリケーション
第25回 SQLrelayとpgpoolの効能を試す
第24回 SQLrelayとpgpoolのアプリケーションへの適用範囲
第23回 汎用コネクションプーリングサーバ「SQLrelay」 - 導入編
第22回 pgpoolの導入と設定
第21回 PostgreSQLと可用性(1)
第20回 TEAMSPEAKサーバをMySQLと連携させる
第19回 TEAMSPEAKクライアントの使い方
第18回 TeamSpeakサーバの設定とクライアントからの接続
第17回 TeamSpeakで音声通話 - TeamSpeakサーバのインストール
第16回 データマイニングツール MUSASHI(5) MUSASHIとWEKA
第15回 データマイニングツール MUSASHI(5) 出力のカスタマイズ
第14回 データマイニングツール MUSASHI(4)
第13回 データマイニングツール MUSASHI(3)
第12回 データマイニングツール MUSASHI(2)
第11回 データマイニングツール MUSASHI(1)
第10回 KNOPPIXを利用した手軽な"LAMP"環境
第9回 高機能CMS XOOPS(4) XOOPSを手軽に使うために
第8回 高機能CMS XOOPS(3) 標準以外のモジュールで仕事をスムーズに
第7回 高機能CMS XOOPS(2)Webサイトの構築
第6回 高機能CMS XOOPS(1)導入
第5回 MySQLデータベースを使う
第4回 VMware Workstationでテスト環境を整える
第3回 Linuxデスクトップの実力(2)
第2回 Linuxデスクトップの実力(1)
第1回 仕事の道具、オープンソースという選択

もっと見る



人気記事

一覧

イチオシ記事

新着記事