IBM Content Analyzer 概要

本書には、IBM の専有情報が含まれています。その情報は、使用許諾条件に基づき提供され、 著作権により保護されています。 本書に記載される情報には、いかなる製品の保証も含まれていません。 また、本書で提供されるいかなる記述も、製品保証として解釈すべきではありません。 お客様の環境によっては、資料中の円記号がバックスラッシュと表示されたり、バックスラッシュが円記号と表示されたりする場合があります。

© Copyright IBM Corp. 2007, 2008. All Rights Reserved.

この文書では、IBM Content Analyzer の概要を解説します。

1 はじめに

この文書では、テキストマイニングシステム IBM Content Analyzer の機能、およびそれらを理解するのに必要ないくつかの基本概念について説明します。 この文書に書かれている情報は、IBM Content Analyzer の他の文書やマニュアルを理解するための前提となります。

1.1 対象とする読者

この文書は、IBM Content Analyzer アプリケーションユーザー、IBM Content Analyzer システム管理者、および IBM Content Analyzer 運用設計者を対象としています。

1.2 関連文書
IBM Content Analyzer の他のマニュアルについては、マニュアル一覧を参照して下さい。
2 IBM Content Analyzer 概要

この章では、IBM Content Analyzer が提供する機能を簡潔に紹介し、それらがどのようなシステム構成から提供されるかを概観します。 また、分析対象のデータを処理して分析を実施するまでの、典型的な運用について説明します。

2.1 IBM Content Analyzer を使うと何が可能になるのか

IBM Content Analyzer は、コールセンターにおけるお客様の声や社内文書などに含まれる、テキストを分析対象とするシステムです。 テキストは、自然言語処理の技術をベースにした IBM Content Analyzer 言語処理プログラムによって解析され、そこから単語や係り受けといった そのテキストを特徴付ける情報が抽出されます。

一例を示しましょう。以下は、架空のコールセンターで記録された、或る問い合わせに対する記録の例です。 IBM Content Analyzer は文書単位で言語処理を行ないます。この例の場合、1回の問い合わせを1文書と見做すのが妥当です。

項目名 内容
問い合わせ日 2007年7月17日
顧客ID 123456
氏名 山田 太郎
年齢 28
性別
製品グループ ノートパソコン
製品名 ABC-001
回答担当者 鈴木 一郎
解決所要日数 2日
問い合わせ内容 購入したソフトを削除する方法が知りたいのですが、マニュアルのどこに書かれていますか?

上の記録の中で、「問い合わせ日」「氏名」などは、分析対象のデータに元から付随している項目です。
IBM Content Analyzer ではこれらの項目を定型項目と呼びます。 定型項目は、言語処理の結果とともに、後述する IBM Content Analyzer アプリケーションでの分析で使用されます。

一方、「問い合わせ内容」はフリーフォーマットのテキストで記述されています。IBM Content Analyzer 言語処理プログラムの解析対象はこのテキストです。 以下は、上の例の「問い合わせ内容」を IBM Content Analyzer 言語処理で解析した結果の例(一部)です。

カテゴリ 内容
名詞→動詞 ソフト...削除する
動詞 購入する
名詞 ソフト
名詞 マニュアル
(以下略) (以下略)
※IBM Content Analyzer の設定に依存して、同じテキストに対しても出力結果は変化します。

辞書などの言語リソースをカスタマイズすることによって、「ソフト」「購入する」などの単語だけでなく、 「名詞→動詞」などの係り受け表現や「要望」「質問」などの意図表現を抽出できるのが、IBM Content Analyzer の大きな特徴の1つです。
※意図表現の抽出には、適用データ分野に応じたオプション辞書が別途必要になります。

カテゴリ」は、データに対する分析の切り口を示します。 IBM Content Analyzer はデフォルトで、名詞・動詞などの「品詞」や、名詞と動詞のつながり具合を示す「係り受け」などのカテゴリを提供します。 この他に、年齢・性別などの「定型項目」や、分析用件に応じた専門用語のカテゴリを、追加することが可能です。 「カテゴリ」のもっと詳しい説明については、3.2 カテゴリとカテゴリツリー の節を参照して下さい。

では、このように抽出された情報から、どのように新しい知見を得るのでしょうか? 仮に文書が10万件あったとすると、その情報を読むだけで膨大な時間がかかってしまいます。
IBM Content Analyzer は、大量のデータから抽出された大量の言語処理結果を、効率よく分析するためのオンラインツール MINER を提供しています。 MINER は、抽出した情報に統計処理を施し、以下のような情報を対話的に提供します。 「対話的に」とは、ユーザーが使い慣れているWeb検索に近いレスポンスタイムで処理が可能という意味です。

  • どんな表現がどのくらい出現したか
  • 或る表現と相関の高い表現にはどのようなものがあるか
  • 特定の製品に関する要望が、時間の変化とともにどのように推移したか

1番目と2番目の例を示しましょう。以下の図は、先ほどのコールログのような文書が大量にあるなかから、 特定の3製品(ABC-001、ABC-002、XYZ-999)について言及している文書を検索し、検索で見つかった文書全体のなかにどのような「係り受け」が見つかったかを示しています。 (見つかった係り受けのうち、上位5個だけを抜粋したもの)

この出力結果から、以下の事実がわかります。数値などのより詳細な意味は、MINER のマニュアルを参照して下さい。

  • 頻度値から、「インストールができない」という表現が、 検索条件で指定した3製品に言及する文書中に最も多く出現していることがわかる
  • 相関値から、「メモリを増設したい」という要望が、とくにこの3製品に特有の表現であることがわかる

これらの結果から、例えば「この3製品の説明書で、メモリ増設方法がユーザーにわかり易く記述されているかを確認する」といった業務アクションをとることが考えられます。
しかし、1回の分析で必ずしも有用な知見が見つかるとは限りません。 MINER ではさらに、見つかった表現を持つ文書だけをその場で分析対象に選択(検索)し、さらに分析を続行することが可能です。 分析と検索を繰り返すことによって、新たな知見の発見を支援します。 このとき、分析条件をリアルタイムに変化させながら分析を行なえるのも、IBM Content Analyzer の特徴の1つです。

2.2 IBM Content Analyzer が提供するアプリケーション機能

IBM Content Analyzer は、目的や用途に応じていくつかのアプリケーションを提供します。以下、その概要を紹介します。 各アプリケーションの詳細については、それぞれのマニュアル(マニュアル一覧)を参照して下さい。

アプリケーション名 機能の概要 提供形態
MINER 言語処理結果のリアルタイム統計分析 Webアプリケーション
DICTIONARY EDITOR 言語処理で使用するカテゴリ辞書の編集 Webアプリケーション
ALERTING SYSTEM 問題発見に特化した、言語処理結果の統計分析 Webアプリケーション(設定・結果確認)
バッチプログラム(検出)
DOCAT
※日本語のみ提供
MINERによって発見された文書を用いた、文書の分類に役立つルールの設定 Webアプリケーション(設定)
バッチプログラム(分類処理)

2.3 IBM Content Analyzer システム構成

以下の図は、前節で述べたアプリケーションが相互にどのような位置関係にあるのかを示しています。 矢印はデータの流れを表しています。

テキストを含む分析対象データは、CSV(Comma Separated Values)データ形式で用意する必要があります。 標準的な表計算ソフトやリレーショナルデータベースの多くは、この形式への書き出しをサポートしています。

CSVデータは IBM Content Analyzer の内部データ形式に変換されたあと、 言語処理(図中のNLP)によって解析されます。 言語処理の出力結果は、分析のための索引構造内に保管されます。

MINER および ALERTING SYSTEM は、この索引を用いて、言語処理結果の解析を行ないます。

DOCAT GUI は MINER からサンプル文書を受け取り、 ユーザーがその文書中から文書の分類に有用なルールを定義する作業を支援します。 定義されたルールはトリガーと呼ばれます。 次回の言語処理時に、言語処理内の DOCAT プログラムが、トリガーに従って文書分類を実施します。 文書分類結果は、MINER で閲覧できます。

DICTIONARY EDITOR は、言語処理が使用するカテゴリおよび辞書の構築・保守管理を支援します。

2.4 IBM Content Analyzer システム運用設計

この節では、インストール済みの IBM Content Analyzer システム環境に対する、標準的なシステム運用の設計例を示します。 具体的なコマンド名など、運用についての詳細は、別文書「運用ガイド」を参照して下さい。

以下は原則として、運用設計時に一度だけ実施すれば良い作業です。

  1. 分析対象データおよび分析結果を格納するためのデータベースを新規作成します。 また、グローバル設定にそのデータベースを登録します。グローバル設定とは、各アプリケーションが参照するデータベース一覧のことです。
  2. 分析対象データを調査して、分析に必要なカテゴリを DICTIONARY EDITOR を用いて定義します。
  3. 分析対象データを CSV ファイルに変換する方法を、必要があれば決定します。 このとき、CSVファイルの一行がIBM Content Analyzerの1文書単位となることに注意します。
  4. CSV ファイルから IBM Content Analyzer の内部データ形式(ATML形式と呼ばれる)に変換するための設定を記述します。
    具体的には、CSV ファイルの各列がどのカテゴリ、或いはテキストに対応するのかを、変換ツールの設定に記述します。 詳細は 運用ガイド を参照して下さい。
  5. 小さなサンプルデータを用いて、CSV ファイルから ATML 形式への変換、言語処理、インデキシング(索引作成処理)が正常に実施されることを確認します。
  6. インデキシング後、WebSphere Application Server を起動して、MINER から処理結果が見えることを確認します。
  7. 各アプリケーションの動作を確認します。アプリケーションの使用方法については,各アプリケーションのマニュアルを参照して下さい。

以下は、新しいデータが追加されるたびに実施する必要のある作業です。

  1. WebSphere Application Server を停止します。
  2. 分析対象データを CSV ファイルに変換します。
  3. CSVファイルから ATML 形式への変換、言語処理、インデキシング(索引作成処理)を順次実行します。
  4. インデキシング後、WebSphere Application Server を起動して、MINER から処理結果が見えることを確認します。
  5. 各アプリケーションの動作を確認します。アプリケーションの使用方法については,各アプリケーションのマニュアルを参照して下さい。

3 IBM Content Analyzer 基本概念
この章では、IBM Content Analyzer で用いられるいくつかの基本概念について説明します。 「キーワード」「カテゴリ」など、日常的に用いられる語には、IBM Content Analyzer の世界では特別な意味が与えられています。
3.1 データベース

IBM Content Analyzer は、言語処理の結果を分析対象データの種類ごとに管理します。 その管理単位をデータベースと呼びます。 或るデータを IBM Content Analyzer で分析したいという場合、最初に行なう作業はそのデータに対応するデータベースの作成です。

データベースには、言語処理に必要なリソースや、言語処理結果、およびリアルタイム分析に必要な索引構造などが含まれます。 一方、各アプリケーションのユーザーからは、データベースは単に「分析対象データ」として見え、物理構造を意識しません。
運用設計者および運用管理者は、データベースの物理構造を理解する必要があります。 詳しくは運用ガイドを参照して下さい。

3.2 カテゴリとカテゴリツリー

カテゴリは、後に述べるキーワードに付与されるラベル名です。 IBM Content Analyzer においてカテゴリは、データを分析する観点を表します。IBM Content Analyzer では複数個のカテゴリが使われます。

カテゴリは大きく分けて、「定型項目カテゴリ」「システムカテゴリ」「ユーザー定義カテゴリ」の3種類があります。 それぞれの特徴を整理すると以下のようになります。

カテゴリの種類 役割
定型項目カテゴリ 分析対象の生データに付随しているフィールド値。
言語処理とは直接関係なく定義される
問い合わせ日、年齢、製品IDなど
システムカテゴリ IBM Content Analyzer がデフォルトで提供するカテゴリ。
言語処理結果に対して付与される
品詞体系(名詞、動詞など)、係り受けなど
ユーザー定義カテゴリ データの特徴に応じてユーザーが定義するカテゴリ。
言語処理結果に対して付与される
(テキスト中に見つかった)特定のお客様一覧など

カテゴリは、別のカテゴリと親子関係を持つことが出来ます。次のカテゴリツリーの説明を参照して下さい。

カテゴリツリーは、IBM Content Analyzer で定義されたカテゴリすべての集まりを指します。 以下のような木の構造を持つため「ツリー」と呼ばれます。 意味的に、一方が他方を包含すると考えられる2つのカテゴリは、親子関係にあるカテゴリとしてカテゴリツリーに登録することが出来ます。
カテゴリツリーには、すべてのカテゴリの親カテゴリである「ルートカテゴリ」が仮想的に存在します。 ユーザーが通常このカテゴリを意識することはありません。
※以下はカテゴリツリーの一部の例です。使用する言語・カスタマイズの有無などによって異なります。

3.3 キーワードと辞書

キーワードとは、カテゴリと文字列の組のことです。 カテゴリCと文字列Sに対してキーワードを(C、"S")と書くことにすると、2.1の例で、 (氏名、"山田太郎") 、 (製品名、"ABC-001") 、 (名詞→動詞、"ソフト...削除する") などはキーワードです。

キーワードの文字列は任意なので、最後の例の「ソフト...削除する」といった係り受けのように、 単語以外の表現もキーワードとして扱われることに注意して下さい。
また、2つのキーワードが等しいかどうかは、カテゴリと文字列の両方が等しいかどうかで決まります。 例えば、(、"長野") と (都道府県名、"長野") は異なるキーワードです。

IBM Content Analyzer 言語処理は、テキストから情報をキーワードの形式で抽出します。抽出例については2.1の例を参照して下さい。 なお、アプリケーションに依存したキーワードの扱いについては、各アプリケーションの説明を参照して下さい。

辞書は、言語処理がテキストからキーワードを抽出するときに用いる、データの集まりです。 以下の2種類の情報を保持しています。

  1. キーワードの集まり
  2. 1. の各キーワードに対し、それと同じカテゴリを持ち、等価と考えられるキーワードの集まり
具体例を通して辞書の説明をします。 以下、短い例文の処理例を通して、IBM Content Analyzer が辞書を用いて言語処理する様子を見ていきましょう。 なお、IBM Content Analyzer の設定に依存して、同じテキストに対しても出力結果は変化します。

処理対象テキスト1:
ソフトを削除する方法は、マニュアルのどこに書かれていますか?」

IBM Content Analyzer はデフォルトで、品詞や係り受けを抽出するための辞書(システム辞書)を備えています。 システム辞書を使いながら、言語処理は名詞・動詞や係り受けを抽出します。以下、抽出された情報の一部を抜粋します。

カテゴリ 内容
名詞 マニュアル
名詞→動詞 ソフト...削除する
(以下略) (以下略)

さて、処理対象テキスト1と良く似た、次のテキストを解析するとします。

処理対象テキスト2:
ソフトウェアを削除する方法は、説明書のどこに書かれていますか?」

IBM Content Analyzer は、システム辞書以外に辞書のない状態では、おそらく以下の結果を返します。

カテゴリ 内容
名詞 説明書
名詞→動詞 ソフトウェア...削除する
(以下略) (以下略)

内容を見ると明らかに、処理対象テキスト1と2は、同じ内容の質問です。 しかし、抽出されたキーワードが異なるため、このままでは抽出された情報が同じかどうかをアプリケーションが判断できません。

言語処理実行時に辞書を与えることによって、この課題に対応することができます。 言語処理実行前に、以下の情報を持った辞書(ユーザーが編集するため、一般にユーザー辞書と呼びます)を新たに追加してみます。

キーワード それと等価と見做したいキーワード(同義語)のリスト
(名詞、"ソフト") (名詞、"ソフトウェア")、(名詞、"プログラム")
(名詞、"マニュアル") (名詞、"説明書")

この辞書には、2つのキーワード (名詞、"ソフト") 、 (名詞、"マニュアル") が登録されています。 また、各キーワードに対して、そのキーワードと等価と見做したいキーワードも登録されています。
この後者のキーワードを、もとのキーワードに対する同義語と呼びます。 例えば、(名詞、"説明書") は、(名詞、"マニュアル") の同義語です。

言語処理は、テキストの中で発見したキーワードを辞書の同義語リストから探します。 もし見つからなければ発見したキーワードをそのまま出力として返しますが、見つかった場合は 「見つかった同義語に対応するキーワード」を、その同義語とともに出力します。

上の例では、ユーザー辞書を使うと、処理対象テキスト2 からは、(名詞、"ソフトウェア") と (名詞、"説明書") の他に、新たに (名詞、"ソフト") と (名詞、"マニュアル") も抽出されるようになります。 また、単語レベルのこの設定は係り受けで用いられるので、係り受けも (名詞→動詞、"ソフト...削除する") が新たに抽出されます。

この例が示すように、出力結果を分析する上で、辞書にキーワードとその同義語をどのように登録するかが重要な要素となります。

4 付録
商標

ここでは、IBM の商標と、特定のIBM 以外の商標をリストします。 IBM の商標について詳しくは、http://www.ibm.com/legal/copytrade.shtml を参照して下さい。 以下は、それぞれ各社の商標または登録商標です。

Java およびすべてのJava 関連の商標およびロゴは、Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。 Microsoft、Windows、Windows NT およびWindows ロゴは、Microsoft Corporationの米国およびその他の国における商標です。 Intel、Intel Inside (ロゴ)、およびPentium は、Intel Corporation の米国およびその他の国における商標です。 UNIX は、The Open Group の米国およびその他の国における登録商標です。 Linux は、Linus Torvalds の米国およびその他の国における商標です。 他の会社名、製品名およびサービス名等はそれぞれ各社の商標です。

©Copyright IBM Corp. 2007, 2008. All Rights Reserved.

特記事項

本書でIBM 製品、プログラム、またはサービスに言及していても、そのIBM 製品、プログラム、またはサービスのみが使用可能であることを意味するものではありません。 これらに代えて、IBM の知的所有権を侵害することのない、機能的に同等の製品、プログラム、またはサービスを使用することができます。 ただし、IBM 以外の製品とプログラムの操作またはサービスの評価および検証は、お客様の責任で行っていただきます。

IBM は、本書に記載されている内容に関して特許権(特許出願中のものを含む) を保有している場合があります。 本書の提供は、お客様にこれらの特許権について実施権を許諾することを意味するものではありません。

この情報には、技術的に不適切な記述や誤植を含む場合があります。本書は定期的に見直され、必要な変更は本書の次版に組み込まれます。 IBM は予告なしに、随時、この文書に記載されている製品またはプログラムに対して、改良または変更を行うことがあります。

本書においてIBM 以外のWeb サイトに言及している場合がありますが、便宜のため記載しただけであり、決してそれらのWeb サイトを推奨するものではありません。 それらのWeb サイトにある資料は、このIBM 製品の資料の一部ではありません。それらのWeb サイトは、お客様の責任でご使用ください。

IBM は、お客様が提供するいかなる情報も、お客様に対してなんら義務も負うことのない、自ら適切と信ずる方法で、使用もしくは配布することができるものとします。

本プログラムに関する上記の情報は、適切な使用条件の下で使用することができますが、有償の場合もあります。 本書で説明されているライセンス・プログラムまたはその他のライセンス資料は、IBM所定のプログラム契約の契約条項、IBM プログラムのご使用条件、またはそれと同等の条項に基づいて、IBM より提供されます。

この文書に含まれるいかなるパフォーマンス・データも、管理環境下で決定されたものです。そのため、他のオペレーティング環境で得られた結果は、異なる可能性があります。 一部の測定が、開発レベルのシステムで行われた可能性がありますが、その測定値が、一般に利用可能なシステムのものと同じである保証はありません。 さらに、一部の測定値が、推定値である可能性があります。実際の結果は、異なる可能性があります。お客様は、お客様の特定の環境に適したデータを確かめる必要があります。

IBM 以外の製品に関する情報は、その製品の供給者、出版物、もしくはその他の公に利用可能なソースから入手したものです。 IBM は、それらの製品のテストは行っておりません。したがって、他社製品に関する実行性、互換性、またはその他の要求については確証できません。 IBM 以外の製品の性能に関する質問は、それらの製品の供給者にお願いします。 IBM の将来の方向または意向に関する記述については、予告なしに変更または撤回される場合があり、単に目標を示しているものです。

本書には、日常の業務処理で用いられるデータの例が含まれています。より具体性を与えるために、それらの例には、個人、企業、ブランド、あるいは製品などの名前が含まれている場合があります。 これらの名称はすべて架空のものであり、名称や住所が類似する企業が実在しているとしても、それは偶然にすぎません。