本書には、IBM の専有情報が含まれています。その情報は、使用許諾条件に基づき提供され、 著作権により保護されています。 本書に記載される情報には、いかなる製品の保証も含まれていません。 また、本書で提供されるいかなる記述も、製品保証として解釈すべきではありません。 お客様の環境によっては、資料中の円記号がバックスラッシュと表示されたり、バックスラッシュが円記号と表示されたりする場合があります。
© Copyright IBM Corp. 2007, 2008. All Rights Reserved.
この文書では、DoCat の操作方法について解説します。
DoCat (Document Categorizion) はTEXT MINERで発見した情報を定型的にチェックするための設定を行い、発見した情報の抽出を自動化するツールです。
DoCatを使った処理は以下の1~4 の流れになります。
DoCat ではDICTIONARY EDITOR で設定されたカテゴリと、TEXT MINER で見つけた文書との関係を文書内の表現を使って設定します。この表現の設定を分類トリガーと呼びます。文書が分類トリガーを含んでいる場合、文書は前処理において自動分類され
TEXT MINER のカテゴリビュー等に反映されます。
一般的な文書分類技術では分類トリガーとして単語のみが使われることが多いのですが、DoCat では係り受けも分類トリガーとして使用します。
DoCat ではTEXT MINERで作成した検索条件とDICTIONARY EDITOR で設定されたカテゴリを関連を分類トリガーとして設定することもできます。
TEXT MINERの検索条件に合致する文書が前処理で自動分類され TEXT MINER のカテゴリビュー等に反映されます。
DoCatでは一つの文書に対して複数のカテゴリを関連付けることができます。
前処理時にも文書は複数カテゴリに自動分類されるので、複数の内容を含む文書の分類にも適しています。
分類トリガーは文書内で特徴的な表現をGUI(カーソル操作)で選択して設定します。
一つのカテゴリに対して分類トリガーを複数設定でき、すべての分類トリガーが前処理において自動分類に使用されます。
分類トリガーには保存時に以前の設定を含め総合的に重みが付与されます。重みの計算にはロジスティック回帰手法が用いることで分類トリガー同士の整合性を保ちます。
前処理時には設定された分類トリガーが文書に出現するかどうかをチェックし、出現した全ての分類トリガーと関連付けられたカテゴリと重みを集計し、重みが閾値以上であれば文書にカテゴリを付与します。DoCatで設定された結果は、前処理後 (言語処理とインデックス作成の処理終了後) にTEXT MINERの画面で確認できます。
前処理で付与される分類のカテゴリのキーワードは、辞書カテゴリとは異なります。
辞書カテゴリは、カテゴリ名が「商品」であればキーワードは文書に出現した具体的な商品名になります。
一方、分類のカテゴリのキーワードはカテゴリ名自身となります。
例えば文書が「商品の質問」であると分類されるとカテゴリ名が「商品の質問」でキーワードも「商品の質問」がその文書に付与されます。 これは、分類では否定を含め文書中の複数の表現(分類トリガー)を使って総合的に判断するため、一つのキーワードにはならないためです。
DoCatを利用するには Microsoft Internet Explorer version 6が必要になります。
JavaScriptを有効にし、ポップアップブロックの設定は解除してください。
TEXT MINER の同一のウィンドウから複数の DoCatを起動することは出来ません。
DoCat の[終了(カテゴリロック解除)]ボタンを押し忘れてブラウザを終了した場合には、DoCat に接続したTEXT MINER の画面を一度閉じてください。
また、TEXT MINER が別のブラウザ画面から開かれた場合には、TEXT MINERを開いた元のウィンドウも閉じる必要があります。
DoCat ではブラウザの戻る/進むボタンを使用しないでください。戻る/進むボタンを押すと編集中の内容は失われます。
DoCatを利用するにはTEXT MINER の文書一覧画面において を選択します。 TEXT MINER の詳細については TEXT MINER のマニュアル
を参照して下さい。
DoCat で分類したい文書選び出すために、 TEXT MINER を用いてキーワード・定型項目・期間等で粗く絞り込みます。
分類したい文書がTEXT MINERの文書一覧ビューに含まれていることを確認したら、 ボタンを押し、ポップアップウインドウの「DOCATに接続」リンクをクリックしてください。 別ウインドウにDoCatが表示されます。文書一覧で表示されているページ・文書数がDoCat
で使用されますので、分類したい文書が含まれるように調整してください。
注意:リンクの「DOCATに接続」の文言は設定により変わっている場合があります。
DoCat の画面は下記のパーツから構成されます。
画面構成:コマンド・ボタンのそれぞれの機能を説明します。
カテゴリツリー、カテゴリパレット、情報・変更の3つのビューを表示するタブです。 以下、それぞれの役割を説明します。
カテゴリツリーのビューでは、カテゴリをカテゴリパレットに登録できます。 カテゴリパレットに登録するカテゴリとは、文章に付与したいカテゴリ、または表現の一般化の代替表現として指定したいカテゴリです。
カテゴリツリーに登録可能な名前順に表示されますのでカテゴリを選択し、カテゴリパレットに登録ボタンを押してください。
カテゴリパレットのビューにはカテゴリツリーで登録したカテゴリが表示されます。 カテゴリツリーの詳細は3.3.1 カテゴリツリー を参照して下さい。
カテゴリ名の横には分類トリガーの設定数およびシミュレーション結果が表示されます。
情報・変更のビューでは設定された分類トリガーの表示と変更を行うことができます。
カテゴリパレットにカテゴリが登録されていると文書リストの各文書の本文表示列に[トリガー表示]ボタンが表示されます。
[トリガー表示]ボタンを押すと文書に設定されている分類トリガーが情報・変更のビューに表示されます。
文書リストには以下の二つの役割があります。
以下で文書リストの列の説明をします。
分類トリガーの登録方法を説明します。
分類トリガーには「文書中の表現を用いて設定する分類トリガー」(分類トリガー)と「TEXT MINER の検索条件を利用する検索条件分類トリガー」(検索条件トリガー)の二種類があります。分類トリガーを設定するには、カテゴリパレットにカテゴリを一つ以上登録する必要があります。カテゴリツリーのビューで分類を設定したいカテゴリを登録してください。
TEXT MINERからの接続直後などカテゴリパレットに登録されていない時には以下のメッセージが表示されています。
分類トリガーを設定するために、表現を本文から選びポップアップするウインドウでカテゴリの選択をします。
次に、分類トリガーとして選択した表現の一部を辞書や文字列で一般化し、分類時により多くの表現をカバーする方法を説明します。
「カテゴリの選択」ウインドウの「表現」をマウスで選択すると以下の「表現の一般化」ウインドウが開きます。
表現の一般化を登録すると以下のように「カテゴリの選択」ウインドウに一般化した表現の設定が表示されます。
DoCatではシミュレーション結果の整合性を保つために、一度にあるカテゴリをカテゴリパレットに登録して使用できるユーザを一人に限定しています。
ユーザがカテゴリパレットに登録した時点で、カテゴリは「ロック」された状態となります。
ロックを解除するには以下の二つの方法があります。
DoCatではブラウザの「×」ボタンなど上記の方法以外でDoCatを終了してしまった場合、または長時間操作をしなかったためにセッションが終了した場合、カテゴリのロックが残ってしまうことがあります。その場合でも他のユーザはカテゴリのロック状態を解除できます。カテゴリがロックされていると他のユーザのカテゴリツリーには次のように表示されます。
この時、「他で使用中」のカテゴリを選択すると警告ダイアログが表示され「OK」を押すと他のユーザのロックを解除することができます。
DoCatは長時間使用しないと、編集情報が失われてしまいます。
長時間の離籍時等には、必ず設定の保存を行ってください。
検索条件トリガーはTEXT MINERの検索条件を使った分類で、細かい表現の違いによらない分類の内容に向いています。
一方、文字列・係り受けトリガーは表現の細かい違いを判断して分類する必要がある内容に向いています。
例えば、「顧客から請求」「顧客に請求」という2つの文は、どちらの文も「名詞→動詞」カテゴリの「顧客...請求する」キーワードを含むため検索条件トリガーでは区別することが出来ません。
文字列・係り受けトリガーでは、「から」や「に」も一緒に選択することで二つの文を区別して分類することが可能です。
一方で、「顧客」「請求」という単語を同一文書内に含めば分類しても良い場合には、検索条件トリガーで簡単に分類する条件を指定できます。
特徴 | 制限 | |
---|---|---|
検索条件トリガー | AND条件(文書内共起)による カバー率が高い分類 簡単な設定 定型項目による分類も可能 |
TEXT MINER以上の細かい表現を使った分類不可 |
文字列トリガー | 文内に出現する文字列だけによるカバー率の高い分類 言語処理で単語分割に失敗する場合にも対応可能 |
単語の境界・係り受けを認識できない |
係り受けトリガー | より詳細な表現による ノイズが少なく精度の高い分類 |
上級者向け 単語分割など言語処理を意識した設定が必要 個々の表現を登録するため設定量が多い |
分類トリガーの設定していなければ、設定を保存後に次回DoCatに接続した時には消えています。
分類トリガーの設定していないサンプル文書は保存されません。
マウスで選択された表現の分類トリガーへの変換は以下のように行われます。
選択された表現を文単位(基本的には。から。まで)で区切ります。 次に、文内の表現を文字列と係り受けの2種類のトリガーとして登録します。 文字列トリガーは選択した表現そのものです。
係り受けトリガーは、マウスで選択された表現を単語に分割し正規形に変換した単語間の係り受け関係をトリガーとして登録します。 複数の文にまたがるマウス選択された表現は同様の処理を文毎に行います。
複数の文(基本的には。から。まで)にまたがってマウス選択された表現は文毎に分割された別々の分類トリガーが作成されます。 文内の表現をマウス選択した場合とは異なる結果となるので注意してください。
文区切り処理では、以下の第一区切り文字によって文の終端を判別します。ただし、第一区切り文字が511文字以上出現しない場合は、第二区切り文字で文を 区切ります。さらに、第二区切り文字でも文を区切れない場合には、511文字までを一文とします。どちらも半角全角を区別しません。
第一区切り文字 | 第二区切り文字 |
---|---|
。 ? ! : ピリオド(.)、ただし前が「数字または英字」かつ後が「数字・英字・カタカナ」である場合は除く 3文字以上のスペース連続 2文字以上のカンマ(,) 11文字以上の同じ文字の連続 コントロールコード |
, 、 スペース |
選択していない領域を無視したより多くの表現にマッチする分類トリガーを設定できます。
ただし、文字列と係り受けの2種類のトリガーが作られますので係り受けを表現するとは限りません)
トリガーとなる表現の最小の領域を選択することが、少ない分類トリガーの登録で多く自動分類するためのコツです。
例えば、「京都にすぐに行った」という文の「京都」と「行った」だけをマウスで選択すると、カテゴリ選択画面には表現「京都...行った」が表示されます。
このように選択することで「京都」の後の「に」や「行った」の前の「すぐに」は無視して分類トリガーが生成されます。
また、複数の文(基本的には。から。まで)にまたがるマウス選択された表現は文毎に分類トリガーに変換されます。
マウス選択された文内の表現をカテゴリ選択画面で「登録」すると、分類用に文字列と係り受けの2種類のトリガーが作られます。
係り受けトリガーでは言語処理を使いますが完璧ではないため、補完的に文字列トリガーを併用しています。
文字列トリガーは、文字だけのマッチを行うトリガーです。
一方、係り受けトリガーは単語の境界や正規形、単語の修飾関係を認識して分類するトリガーです。
文字列トリガーまたは係り受けトリガーで誤って分類した場合は、分類された文書の表現を「否定」の分類トリガーとして登録することで排除できます。
例えば、「りんごが好きだ。」の「りんご」と「好き」を選択して分類トリガーとして登録した場合、文字列トリガーによって直接係り受け関係の無い「りんごは嫌いだが、みかんは好きだ。」も分類されてしまいます。
その場合は、「りんごは嫌いだが、みかんは好きだ。」の「りんご」と「好き」を選択して否定の分類トリガーとして登録してください。
DoCatは文字列トリガーの重みを下げるため、文字列トリガーによって誤って分類されることはなくなります。
一方、係り受けトリガー「りんご→*→好き」(*は何れかの単語)の重みは変わらないため、「りんご」と「好き」に直接係り受けのある文書は分類されます。
文字列トリガーは、文字だけのマッチを行うトリガーです。
マウス選択した表現「京都...行った」に対する文字列トリガーは、文中に「京都」の後に「行った」が出現すれば分類します。
ただし、単語境界を区別しませんので、「東京都に行った」も分類してしまいますし、単語境界を認識しないため文字列トリガーでは辞書は使用されません。
また、係り受けを認識しないので「京都を出発して、大阪に行った」にもマッチしてしまいます。
一方、未知の用語や書き間違えなどにより言語処理がうまく行かず単語や係り受けが失敗しても、文字列だけ見てを分類することが出来ます。
係り受けトリガーは単語の境界や正規形、単語の修飾関係を認識してマッチするトリガーです。
「京都にすぐに行った」に対してマウス選択した表現が「京都...行った」の場合、係り受けトリガーは、「京都」が(「に」に対応する)何れかの一単語に係っており、更にその単語が「行く」に係り「行く」が「た」に係る文にマッチします。
たとえば、「京都から大阪に行った」や「暗くなる前に京都まで行った」などにマッチします。
ただし、係り受けトリガーでは単語を意識して登録する必要があります。
例えば、上記の例で「京都に行く」「京都に行け」など「行く」の活用を気にせずマッチしたい場合には助動詞「た」を除いて「京都...行っ」をマウスで選択する必要があります。
「京都」と「行っ」の間にある単語の係り受け関係の数が異なる「京都だから行った。」(単語区切りは「京都」「だ」「から」「行っ」「た」)の場合、別途分類トリガーとして登録する必要があります。
また、表現の一般化を設定する場合にも単語を意識してマウスで選択する必要があります。
例えば、「京都...行った」だけでなく「京都...来た」にもマッチしたい場合には、「行っ」を選択し代替表現に「来」(または「来る」)を入力する必要があります。
係り受けトリガーでは、マウスで選択された表現内にある単語は、単語の正規形「行く」と出現した文字列「行っ」がトリガーとして登録されます。
また、文に係り受けトリガーがマッチする際に同義語が定義されている場合には単語の正規形だけでなく同義語にもマッチします。
例えば、DICTIONARY EDITORで「京都」の同義語として「京都府」や「京都市」を登録してある場合には、「京都市に行った」にもマッチします。
表現の一般化で指定する辞書カテゴリでのマッチと、係り受けトリガーがマッチする際の単語の境界や単語の正規形・同義語の列挙に使われます。
表現の一般化で辞書カテゴリを指定することで、そのカテゴリ及びそのサブカテゴリにヒモ付けられた全てのキーワードが一般化した単語にマッチします。
運用によっては、DoCatで使用される辞書は、DICTIONARY EDITORで編集した最新の辞書が使われないことがあります。
一般的な運用では、言語処理前に最新の辞書をコピーするため、TEXT MINERには最新の辞書を使用した分類結果が表示されます。詳しくは管理者にお問い合わせ下さい。
係り受けトリガーでは、表現の一般化を設定する場合には単語を意識してマウスで選択する必要があります。
例えば、「京都...行ってしまった」だけでなく「京都...来てしまった」にもマッチしたい場合には、表現の一般化で「行っ」を選択し代替表現に「来」(または「来る」)を入力する必要があります。
選択部分の文字列より代替表現が短い場合は、選択部分を構成する最初の単語が代替表現にもマッチする係り受けトリガーになります。
選択部分の文字列より代替表現が長い場合は、選択部分の長さ(l)とそこに含まれる各単語の長さ(w)の比(w/l)に比例して代替表現を分割し、各単語は分割した文字列でもマッチする係り受けトリガーになります。
ただし、代替表現の長さ(r)に対して剰余(r%l)は先頭の単語の代替となる分割文字列の長さに含まれます。
同じ文書内で同じ表現を肯定・否定で登録すると否定が優先されます。
別の文書で同じ表現を肯定・否定で登録すると基本的に登録文書数の多い方が優先されますが、他のトリガーとの関係も考慮しているため何文書多い方が優先するとは一概に言えません。
各分類トリガーのカテゴリを変更する作業が必要になります。
変更元と変更先のカテゴリをカテゴリツリータブで、あらかじめカテゴリパレットに登録します。
次にカテゴリパレットタブを表示し、変更元カテゴリの分類トリガー列の表示ボタンを押し、既存の分類トリガーを情報タブに表示します。
最後に、各分類トリガーの「変更」ボタンを押し、カテゴリの指定で変更先カテゴリを選択し、「変更の適用」ボタンを押します。
DICTIONARY EDITORで削除されたカテゴリと結び付けられた分類トリガーは全て消えます。
分類設定をしたカテゴリの削除にはご注意ください。
係受・文字列トリガーが優先されます。
係り受けトリガーの方が厳密に係り受け関係を区別するためです。
例えば、「基本係り受け」カテゴリのキーワード「A…Bする」は、2つの表現「AがBする」と「ABする」を区別しません(「A」と「Bする」の間の助詞の有無を区別しない)。
一方、「A」と「Bする」とをハイライトした場合に作成される係り受けトリガーは2つの表現「AがBする」(下図1)と「ABする」(下図2)で異なります。
下図では、「*」は単語何れかにマッチする制約を表現します。
下図1では「A」が何れかの単語に係りその単語が「Bする」に係る表現(例えば「AにBする」)にマッチする係り受けトリガーです。
下図2では「A」が「Bする」に直接係る表現にマッチする係り受けトリガーです。
述語の肯定表現(例えば「電話する」)と否定の表現(例えば「電話しない」)を、それぞれ肯定・否定のトリガーとして登録してください。
否定トリガーの登録時には、否定を表す語尾(上記例では「ない」)まで選択して設定してください。
肯定・否定の表現に限らず、文字列・係り受けトリガーを設定する際には分類する・しないが判断できる表現を選択することが重要になります。
カテゴリツリーは、TEXT MINERのカテゴリツリーの名前順と同じです。 カテゴリパレットは、カテゴリツリーで選択しカテゴリパレットに登録した順に並びます。 ただし、同時に選択してカテゴリパレットに登録した場合には、内部的なコードの順に並びます。
分類トリガーを設定したのにうまく分類されない場合には以下の点をまずご確認ください。
この章はシステム管理者用の記述です。
DoCatはTEXT MINERの文書一覧画面からジャンプするための設定がdatabase_config_miner.xmlのdoc_to_ext_app_entryに必要になります。 前処理(言語処理・インデックス作成)を行ったデータ及びその設定が必要になります。 別サーバにTEXT MINERがある場合には、TEXT MINERと同じデータ及び設定がDoCatのサーバにも必要になります。
また、DoCatでは DICTIONARY EDITOR で作成されたカテゴリおよびその設定も使用します。
TEXT MINERとDoCatを異なるサーバで起動する場合には、TEXT MINERの文書一覧からDoCatへのリンクの設定を変える必要があります。
TEXT MINERの起動してあるサーバで、<DATABASE_DIRECTORY>/conf/database_config_miner.xml の文書を分類するカテゴリ群の最上位のカテゴリは設定ファイルdatabase_config.xmlに辞書以外のカテゴリとして登録してください。
登録の手順は以下の通りです。
以下にカテゴリパスが".2000"のカテゴリおよびそのサブカテゴリをDoCatで使用する場合のdatabase_config.xmlの編集例を記載します。
(データベース作成時に%TAKMI_HOME%/resource/database.template/ja をコピーした場合にはカテゴリパス".0"はあらかじめnon_dictionaryとして設定されています)
<category_entries> ... <!-- Specifies subroot categories for DOCAT --> <category_entry name="non_dictionary" value=".0"/> <category_entry name="non_dictionary" value=".2000"/> ... |
database_config.xmlの編集時には以下のことに注意して下さい。
機能上は、DoCatで設定可能なカテゴリは設定ファイル database_config.xml のcategory_entry タグの name="reserved_by_system"とname="auto_generated_path_pattern" で指定されたカテゴリ以外です。