データ・マイニング・アルゴリズムは、リレーショナル・データベースまたはスプレッドシートに格納されている量的データと質的データに作用します。量的データは、INTEGER
、DECIMAL
、FLOAT
などの型を持ちます。質的データは、CHAR
またはVARCHAR2
の型を持ちます。
量的データでも質的データでもないデータ項目をマイニングする場合を考えます。Webページ、ドキュメント・ライブラリ、PowerPointプレゼンテーション、製品仕様、電子メール、サウンド・ファイル、デジタル画像など、多くの例があります。製品説明、レポートのコメント欄、コールセンターのメモなど、長い文字列に格納された情報をマイニングするにはどうすればよいでしょうか。
データ・マイニングでは、量的データや質的データとして解釈できないデータは非構造化データとみなされます。企業データの85%が、この非構造化データに該当すると推計されています。非構造化データから意味のある情報を抽出することは、ビジネスの成功にとって不可欠となります。
非構造化データは、画像やオーディオ・ファイルなどのバイナリ・オブジェクト、または言語ベースのテキスト・オブジェクトです。Oracle Data Miningではテキスト・オブジェクトをサポートしています。
データ・マイニング用のケース表には、1つ以上のテキスト列(「混合データ」を参照)が含まれ、これらの列は属性として指定されます。テキスト列はターゲットとしては使用できません。ケース表自体はリレーショナル表である必要があるため、ビューとしては作成できません。
テキストは、マイニングする前に変換プロセスを行う必要があります。データが正しく変換されると、ケース表を使用して、データ・マイニング・モデルの作成、テストまたはスコアリングを行うことができます。ほとんどのOracle Data Miningアルゴリズムでは、テキストがサポートされています。(「テキスト・データ・アルゴリズム」を参照してください。)
今日、ほとんどの企業情報には、特定の関心項目に関連する、構造化コンテンツと非構造化コンテンツの両方が存在します。顧客アカウントのデータには、サポート・コールおよびその他の顧客との対話が記述されたテキスト・データが含まれている場合があります。保険金請求データには、請求のステータス、サポート・ドキュメント、電子メール対応およびその他の情報が含まれている場合があります。分析応用では、多くの場合、関連する非構造化情報とともに構造化情報を評価することが重要です。
Oracle Data Miningでは、こうした機能が提供されています。Oracle Data Miningを使用して、通常の関連情報(数値列および文字列)の他、1つ以上のテキスト列も含むデータセットをマイニングできます。
Oracle Data Miningでは、表20-1に示すデータ型のいずれかを持つテキスト列をサポートしています。
表20-1 テキスト列のデータ型
データ型 | 説明 |
---|---|
|
データベース外に保存された大きなバイナリ・ファイルのロケータ |
|
バイナリ・ラージ・オブジェクト |
|
固定長の文字列 |
|
キャラクタ・ラージ・オブジェクト |
|
可変長の長い文字列 |
|
可変長の長い生バイナリ・データ |
|
生バイナリ・データ |
|
可変長の文字列 |
|
XMLデータ |
関連項目: Oracleのデータ型については、『Oracle Database SQL言語リファレンス』を参照してください。 |
テキスト・マイニングには、表20-2に示すOracle Data Miningのアルゴリズムを使用できます。
表20-2 テキストをサポートするOracle Data Miningのアルゴリズム
アルゴリズム | マイニング機能 |
---|---|
Naive Bayes |
分類 |
一般化線形モデル |
分類、回帰 |
サポート・ベクター・マシン |
分類、回帰、異常検出 |
k-Means |
クラスタリング |
Non-Negative Matrix Factorization |
特徴抽出 |
Apriori |
相関ルール |
最小記述長 |
属性評価 |
Oracle Data Miningでは、すべてのマイニング機能でテキストをサポートしています。表20-2に示すとおり、各マイニング機能につき少なくとも1つのアルゴリズムにテキスト・マイニング機能があります。
分類、クラスタリングおよび特徴抽出には、純粋なテキスト・マイニングにおいて重要な用途があります。それ以外の機能(回帰や異常検出など)は、混合データ(構造化および非構造化)のマイニングに、より適しています。
テキスト分類は、たとえば主題や著者によってドキュメントをカテゴリ分類するプロセスです。ドキュメント分類アプリケーションの大半では、多クラスの分類または多ターゲットの分類が使用されます。
多クラスのドキュメント分類では、各ドキュメントに各カテゴリの確率が割り当てられ、確率は合計1になります。たとえば、economics
、math
およびphysics
というカテゴリがある場合、ドキュメントAは、20%の確率でeconomics
、50%の確率でmath
、30%の確率でphysics
です。
このドキュメント分類方法は、Oracle Data MiningおよびOracle Textでサポートされています。
多ターゲットのドキュメント分類では、各ドキュメントに、あるカテゴリに含まれる確率または含まれない確率が割り当てられ、各カテゴリの確率は合計1になります。economics
、math
およびphysics
というカテゴリがあるとすると、ドキュメントAは、30%の確率でeconomics
であり70%の確率でeconomics
でない、65%の確率でmath
であり35%の確率でmath
でない、40%の確率でphysics
であり60%の確率でphysics
でない、というように分類されます。
多ターゲットのドキュメント分類では、各カテゴリは別個の2項ターゲットです。各ドキュメントは各ターゲットについてスコアリングされます。
このドキュメント分類方法は、Oracle Textでサポートされますが、Oracle Data Miningではサポートされていません。ただし、カテゴリごとに1つの2項分類モデルを作成してから、1つのSQLスコアリング問合せですべてのモデルを別個にスコアリングすることにより、同様の結果が得られます。
Oracle Data Miningでは、テキスト・マイニングに適した3つの分類アルゴリズムをサポートしています。いずれも、何千ものテキストの特徴(テキストの特徴については、「マイニング用のテキストの準備」を参照)を簡単に処理でき、少ないデータでも大量のデータでもトレーニングが容易です。サポートされるアルゴリズムは次のとおりです。
テキスト・マイニングでのクラスタリングの主な用途は次のとおりです。
単純なクラスタリング。テキストの特徴のクラスタを作成します(テキストの特徴については、「マイニング用のテキストの準備」を参照)。たとえば、検索エンジンによって戻されたヒットをグループ化します。
分類の生成。階層的なグループを生成します。たとえば、自動車メーカーに関するテキストを含むクラスタは、自動車のモデルに関するテキストを含む子クラスタの親です。
トピックの抽出。グループの最も典型的な特徴を抽出します。たとえば、各ドキュメント・トピックに含まれる、最も典型的なドキュメントの特徴です。
Oracle Data Miningの拡張k-Meansクラスタリング・アルゴリズム(第13章を参照)では、テキスト・マイニングをサポートしています。
特徴抽出は、テキスト・マイニングの中心です。テキスト・マイニング・プロセスでは、2つの段階でテキスト変換に特徴抽出を使用します。
特徴抽出プロセスは、テキスト・ドキュメントをマイニングする前に実行する必要があります。この前処理で、テキスト・ドキュメントが特徴または用語と呼ばれる小さなテキストの単位に変換されます。
テキスト変換プロセスでは、テキスト・ドキュメントから大量の(場合によっては何千もの)テキストの特徴が生成されます。Oracle Data Miningのアルゴリズムは、特徴をそれぞれ別個の属性として扱います。そのため、テキスト・データに膨大な数の属性が含まれていても、大部分の属性が監視ありモデルのトレーニングや監視なしモデルの作成にとって重要な情報をほとんど持たないことがあります。
Oracle Data Miningでは、特徴抽出用にNon-Negative Matrix Factorization(NMF)アルゴリズムをサポートしています。NMFモデルを作成することにより、ケース表から導出したテキスト属性を統合して、数を絞った有意義な属性セットを生成できます。分類、クラスタリングまたはその他のデータ・マイニング・モデルにこの結果を使用すると、非常に効果的な場合があります。NMFについては、第16章を参照してください。
相関モデルは、用語の意味を明らかにするために使用できます。たとえば、account
という用語が、customer
、explanation
、churn
、story
、region
、debit
およびmemo
といった用語と同時発生するとします。相関モデルは、account
とこれらの概念を結び付けるルールを生成します。このルールを調べることにより、一群のドキュメント内でのaccount
のコンテキストが提供されます。このような相関によって、情報検索エンジンを改善できます。
Oracle Data Miningでは、相関用にAprioriがサポートされています。Aprioriについては、第10章を参照してください。
属性評価を使用すると、ターゲット列の値を区別する用語を見つけることができます。属性評価では、ターゲットを予測する際に用語の相対的な重要度がランク付けされます。たとえば、特定の語句によって著者の文体を区別できます。
Oracle Data Miningでは、属性評価用に最小記述長(MDL)をサポートしています。MDLについては、第14章を参照してください。
テキストをマイニングする前には、用語抽出または特徴抽出と呼ばれる特別な前処理を実行する必要があります。このプロセスで、テキストがマイニング可能な単位(用語)に分割されます。テキストの用語は、キーワードまたはその他のドキュメント派生の特徴です。
テキスト・マイニング・モデルを作成または適用する際に、Oracle Data Minerのグラフィカル・ツールで用語抽出が透過的に実行されます。Oracle Textのテーブル・ファンクション・セットを使用して、PL/SQL APIテキスト・マイニングの用語を抽出できます(『Oracle Data Miningアプリケーション開発者ガイド』を参照)。
関連項目: Oracle Data Miningサンプル・プログラム付属の用語抽出コードの例については、『Oracle Data Mining管理者ガイド』を参照してください。 |
用語抽出プロセスでは、Oracle Textのルーチンを使用してテキスト列をネストした列に変換します。各用語は、ネストした属性の名前です。ネストした属性の値は、用語を一意に識別する番号です。そのため、テキストから導出された各用語は、データ・マイニング・アルゴリズムで別個の量的属性として使用されます。
ネストしたデータをサポートするOracle Data Miningのアルゴリズムはすべて、テキスト・マイニングに使用できます。これらのアルゴリズムを表20-2に示しています。
Oracle Textは、Oracle Databaseで提供される基本機能に含まれている技術です。Oracle Textでは、Oracle Data Miningの内部コンポーネントを使用してデータ・マイニング機能の一部を提供します。
Oracle Data Miningは、Oracle DatabaseのEnterprise Editionのオプションの1つです。Oracle Data Miningを使用するには、データ・マイニング・オプションのライセンスが必要です。Oracle Textおよびそのデータ・マイニング機能を使用する上で、データ・マイニング・オプションのライセンスは必要ありません。
Oracle Textは、PL/SQLパッケージと、テキスト問合せやドキュメント分類をサポートする関連データ構造で構成されます。Oracle Textのルーチンは次のことに使用できます。
Webサイトやオンライン・ライブラリなど一群のドキュメントの問合せ
著者や発行者の説明などドキュメント・カタログの問合せ
ドキュメント分類やクラスタリングの実行
Oracle Data Miningの機能とOracle Textの機能の主な相違点は、次のとおりです。
Oracle Data Miningでは、混合データ(「混合データ」を参照)のマイニングがサポートされています。Oracle Textのマイニング機能では、テキストのみがサポートされ、構造化データと非構造化データの混合データはサポートされません。
Oracle Data Miningでは、複数のテキスト列を一度にマイニングできます。Oracle Textのルーチンで処理できるのは1つの列のみです。
Oracle Data Miningでは、すべてのデータ・マイニング機能でテキストをサポートしています。Oracle Textでは、サポートできるデータ・マイニングは限られています。これらの相違点を表20-3にまとめます。
Oracle Data MiningとOracle Textの両方では、表20-1に示すすべてのデータ型のテキスト列がサポートされています。Oracle Data Miningでは、マイニングの前に、テキストの特徴抽出による変換が必要です(「マイニング用のテキストの準備」を参照)。Oracle Textでは、テキストの特徴抽出を内部で実行するため、そのままのテキストを処理します。
Oracle Data MiningとOracle Textは両方とも、ドキュメント分類をサポートしています(「テキスト分類」を参照)。Oracle Data Miningでは多クラスの分類がサポートされています。Oracle Textでは、多クラスの分類と多ターゲットの分類がサポートされています。
表20-3 マイニング機能: Oracle Data MiningとOracle Text
マイニング機能 | Oracle Data Mining | Oracle Text |
---|---|---|
異常検出 |
1クラスSVMを使用してテキストまたは混合データをマイニング可能 |
未サポート |
相関 |
Aprioriを使用してテキストまたは混合データをマイニング可能 |
未サポート |
属性評価 |
MDLを使用してテキストまたは混合データをマイニング可能 |
未サポート |
分類 |
SVM、GLMまたはNaive Bayesを使用してテキストまたは混合データをマイニング可能 |
SVM、ディシジョン・ツリーまたはユーザー定義ルールを使用してテキストをマイニング可能 |
クラスタリング |
k-Meansを使用してテキストまたは混合データをマイニング可能 |
k-Meansを使用してテキストをマイニング可能 |
特徴抽出 |
NMFを使用してテキストまたは混合データをマイニング可能 |
未サポート |
回帰 |
SVMまたはGLMを使用してテキストまたは混合データをマイニング可能 |
未サポート |