27 非構造化テキストのマイニング
Oracle Data Miningを使用して非構造化テキストをマイニングする方法について説明します。
27.1 非構造化テキストについて
データ・マイニングのアルゴリズムは、量的データまたは質的データに対して動作します。量的データは順序付けされます。これは、NUMBER
やFLOAT
などの数値データ型の列に格納されます。質的データは、カテゴリまたは分類によって識別されます。これは、VARCHAR2
やCHAR
などの文字データ型の列に格納されます。
非構造化テキスト・データは、量的でも質的でもありません。非構造化テキストには、Webページ、ドキュメント・ライブラリ、PowerPointプレゼンテーション、製品仕様、電子メール、レポートのコメント・フィールド、コール・センターのメモなどの項目が含まれます。非構造化テキストは、企業のすべてのデータの4分の3以上を占めると言われています。非構造化テキストから意味のある情報を抽出することは、ビジネスの成功にとって不可欠となります。
27.2 テキスト・マイニングとOracle Textについて
テキスト・マイニングおよびOracle Textについて理解します。
テキスト・マイニングとは、データ・マイニング手法をテキスト用語(テキストの特徴またはテキスト・トークンとも呼ばれる)に適用するプロセスです。テキスト用語とは、テキスト・ドキュメントから抽出して、量的な重みを割り当てられた単語または単語のグループです。テキスト用語は、操作および分析の対象となるテキストの基本単位です。
Oracle Textとは、用語抽出、単語とテーマの検索およびその他のテキスト問合せ用ユーティリティを提供するデータベース・テクノロジです。トレーニング・データにテキストの列が存在する場合、Oracle Data MiningはOracle Textのユーティリティと用語の重み付け方針を使用して、テキストをマイニング用に変換します。Oracle Data Miningは、ユーザー提供の構成情報をOracle Textに渡し、その結果をモデル作成プロセスで使用します。
27.3 テキストの特徴のデータ準備に関する項
テキストの特徴のモデル・ディテール・ビューはDM$VX
model_nameです。
テキストの特徴ビューDM$VX
model_name
は、テキスト属性が存在する場合に、抽出されたテキストの特徴を示します。このビューには次のスキーマが含まれます。
Name Type
-------------- ---------------------
PARTITION_NAME VARCHAR2(128)
COLUMN_NAME VARCHAR2(128)
TOKEN VARCHAR2(4000)
DOCUMENT_FREQUENCY NUMBER
表27-1 抽出されたテキストの特徴のテキストの特徴ビュー
列名 | 説明 |
---|---|
|
詳細を取得するパーティション化されたモデルのパーティション |
|
識別子列の名前 |
|
通常、単語または語幹であるテキスト・トークン |
|
トレーニング・セット全体内のトークン頻度の測定基準 |
27.4 テキスト・マイニングを含むモデルの作成
テキスト・マイニングを含むモデルを作成する方法を説明します。
Oracle Data Miningでは、VARCHAR2
、CHAR
、CLOB
、BLOB
およびBFILE
の列内の非構造化テキストをサポートしています(次の表を参照)。
表27-2 非構造化テキストを格納できる列のデータ型
データ型 | 説明 |
---|---|
|
Oracle Data Miningでは、モデルの作成時に |
|
Oracle Data Miningでは、 |
|
Oracle Data Miningでは、デフォルトでは |
|
Oracle Data Miningでは、4000より長いデータを持つ Oracle Data Miningでは、デフォルトでは長さが4000以下のデータを持つ |
次の表で説明されている設定は、モデルのテキスト属性に対する用語抽出プロセスを制御します。モデルの設定を指定する手順については、「モデルの設定の指定」を参照してください。
表27-3 テキスト用のモデルの設定
設定名 | データ型 | 設定値 | 説明 |
---|---|---|---|
|
|
|
非構造化テキストからの個々のトークンの抽出方法に影響を与える。「テキスト・ポリシーの作成」を参照。 |
|
|
1 <= 値 <= 100000 |
デフォルトは3000です。 |
モデルには1つ以上のテキスト属性を含めることができます。テキスト属性を持つモデルには、質的属性と量的属性を含めることもできます。
テキスト属性を含むモデルを作成するには、次の手順を実行します。
-
Oracle Textのポリシー・オブジェクトを作成します。
-
表27-3で説明されているモデルの構成設定を指定します。
-
テキストとして処理する必要がある列を指定し、必要に応じて、個々の属性に対してテキスト変換指示を提供します。
-
モデルの設定とテキスト変換指示を
DBMS_DATA_MINING.CREATE_MODEL
に渡します。注意:
O-Clusterを除くすべてのアルゴリズムでは、非構造化テキストの列をサポートできます。
相関ルール(Apriori)では非構造化テキストを使用しないことをお薦めします。
27.5 テキスト・ポリシーの作成
Oracle Textのポリシーは、テキスト内容をどのように解釈する必要があるのかを指定します。モデル、属性、またはモデルと個々の属性の両方を制御するテキスト・ポリシーを提供できます。
モデル固有のポリシーが存在し、1つ以上の属性が独自のポリシーを持つ場合、Oracle Data Miningでは、指定された属性に対しては属性のポリシーを使用し、その他の属性に対してはモデル固有のポリシーを使用します。
テキスト・ポリシーの作成は、CTX_DDL.CREATE_POLICY
プロシージャで行います。
CTX_DDL.CREATE_POLICY( policy_name IN VARCHAR2, filter IN VARCHAR2 DEFAULT NULL, section_group IN VARCHAR2 DEFAULT NULL, lexer IN VARCHAR2 DEFAULT NULL, stoplist IN VARCHAR2 DEFAULT NULL, wordlist IN VARCHAR2 DEFAULT NULL);
CTX_DDL.CREATE_POLICY
のパラメータについては、次の表で説明します。
表27-4 CTX_DDL.CREATE_POLICYプロシージャのパラメータ
パラメータ名 | 説明 |
---|---|
|
新しいポリシー・オブジェクトの名前。Oracle Textのポリシーとテキスト索引は、同じネームスペースを共有します。 |
|
索引付けのためにドキュメントをプレーン・テキストに変換する方法を指定します。例としては、キャラクタ・セット用の
|
|
ドキュメント内のセクションを特定します。たとえば、
注意: |
|
索引付けされている言語を特定します。たとえば、
|
|
用語抽出から除外する単語とテーマを指定します。たとえば、英語言語のドキュメントの場合、通常、単語の「the」はストップリストに含まれます。 デフォルトではシステム提供のストップリストが使用されます。 『Oracle Textリファレンス』のストップリストに関する説明を参照してください。 |
|
ステミング問合せおよびファジー問合せの拡張方法を指定します。ステムは、異なる文法形式で単一表現を持つことができるように単語の原形を定義します。ファジー問合せには、単語の表現における一般的なスペルミスが含まれます。 『Oracle Textリファレンス』の" |
関連項目
27.6 テキスト属性の構成
列をテキスト属性として特定し、任意の属性の変換指示を指定する方法について説明します。
表27-2に示したとおり、CHAR
、短いVARCHAR2
(<=4000)、BFILE
およびBLOB
の列は、テキスト属性として特定できます。CHAR
および短いVARCHAR2
の列が明示的に非構造化テキストとして特定されていない場合、CREATE_MODEL
は、これらの列を質的属性として処理します。BFILE
およびBLOB
の列が明示的に非構造化テキストとして特定されていない場合、CREATE_MODEL
はエラーを戻します。
列をテキスト属性として特定するには、属性指定でキーワードTEXT
を提供します。属性指定とは、変換レコード(transform_rec
)のフィールド(attribute_spec
)です。変換レコードは、CREATE_MODEL
に渡すことのできる変換リスト(xform_list
)の構成要素です。
注意:
属性指定には、テキストに関係のない情報も含めることができます。属性指定を作成する手順については、「モデルへの変換の組込み」を参照してください。
次の表に記載されているサブセットで、属性指定のTEXT
キーワードを修飾することで、任意のテキスト属性の変換指示を指定できます。
表27-5 属性固有のテキスト変換指示
サブ設定名 | 説明 | 例 |
---|---|---|
|
|
( |
|
サポートされている値は次のとおりです。
「属性指定のトークン・タイプ」を参照。 |
|
|
属性から使用する特徴の最大数。 |
|
注意:
CLOB
および長いVARCHAR2
(4000より長い場合)に対しては、変換指示を指定する場合のみ、TEXT
キーワードが必要となります。CHAR
、短いVARCHAR2
、BFILE
およびBLOB
に対しては、変換指示を指定するかどうかにかかわらず、TEXT
キーワードが常に必要となります。
ヒント:
『Oracle Databaseリファレンス』に示すように、データ・ディクショナリ・ビューALL_MINING_MODEL_ATTRIBUTES
で属性指定を表示できます。
属性指定のトークン・タイプ
トークン・タイプとしてステムまたはテーマを指定する場合は、テキスト・ポリシーのレクサー・プリファレンスでこれらのタイプのトークンがサポートされている必要があります。
次の例では、BASIC_LEXER
にテーマと英語のステムを追加します。
BEGIN CTX_DDL.CREATE_PREFERENCE('my_lexer', 'BASIC_LEXER'); CTX_DDL.SET_ATTRIBUTE('my_lexer', 'index_stems', 'ENGLISH'); CTX_DDL.SET_ATTRIBUTE('my_lexer', 'index_themes', 'YES'); END;