ヘッダーをスキップ
Oracle® Textアプリケーション開発者ガイド
11gリリース2 (11.2)
B61358-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

10 Oracle Textでのシソーラスの使用

この章では、問合せアプリケーションをシソーラスを使用して改善する方法を説明します。次の項目について説明します。

10.1 Oracle Textシソーラス機能の概要

問合せアプリケーションのユーザーが、特定のトピックに関する情報を検索するとき、そのトピックについて書かれたドキュメント内で使用されているワードがわからない場合があります。

Oracle Textでは、ワードと句のシノニムおよび階層関係を定義する大/小文字を区別するシソーラスまたは大/小文字を区別しないシソーラスを作成できます。その結果、シソーラスで定義した類似語または関連語が含まれるように問合せを拡張して、関連テキストを含むドキュメントを取り出すことができます。

シソーラスは、アプリケーション開発者が作成し、システムにロードできます。


注意:

Oracle Textのシソーラスの形式および機能性は、ISO-2788およびANSI Z39.19(1993)の両標準に準拠しています。

10.1.1 Oracle Textシソーラスの作成とメンテナンス

シソーラスとシソーラスのエントリは、CTXAPPロールを持つすべてのOracle Textユーザーが作成、変更および削除できます。

10.1.1.1 CTX_THESパッケージ

シソーラスをプログラムでメンテナンスおよびブラウズするには、PL/SQLパッケージCTX_THESを使用できます。このパッケージを使用すると、語句および階層関係のブラウズ、語句の追加と削除、およびシソーラス・リレーションの追加と削除を実行できます。

10.1.1.2 シソーラス演算子

また、CONTAINS句でシソーラス演算子を使用すると、ロードしたシソーラスに基づいて問合せ語句を拡張できます。たとえば、SYN演算子を使用すると、次のようにdogなどの語句をそのシノニムに拡張できます。

'syn(dog)'

10.1.1.3 ctxloadユーティリティ

ctxloadユーティリティは、シソーラスをプレーン・テキスト・ファイルからシソーラス表にロードする場合、およびシソーラスをシソーラス表から出力(つまりダンプ)ファイルにダンプする場合に使用できます。

ctxloadで作成されたシソーラスのダンプ・ファイルは、出力したり、他のアプリケーションの入力として使用できます。ダンプ・ファイルは、シソーラス表にシソーラスをロードする場合にも使用できます。このことは、既存のシソーラスを新しいシソーラスを作成するための基礎として使用する場合に便利です。


注意:

セキュリティを確実にするために、インタラクティブ・モードを使用し、ユーザー・パスワードの入力を求められたときにctxloadにパスワードを入力することをお薦めします。コマンドラインにパスワードを入力しないことをお薦めします。


10.1.2 大/小文字を区別するシソーラスの使用

大/小文字を区別するシソーラスでは、語句(ワードおよび句)は、入力したとおり正確に格納されます。たとえば、語句を大/小文字の混合で入力した場合(CTX_THESパッケージまたはシソーラスのロード・ファイルのいずれかを使用)、シソーラスでは、そのエントリを大/小文字の混合で格納します。


注意:

大/小文字を区別するシソーラスから取得した問合せ拡張を利用するには、索引も大/小文字を区別する必要があります。

シソーラスのロード時に、-thescaseパラメータを使用して、大/小文字を区別してロードするように指定できます。

CTX_THES.CREATE_THESAURUSによるシソーラスの作成時に、大/小文字を区別して作成するように指定できます。

また、大/小文字を区別するシソーラスを問合せで指定した場合、シソーラス検索では、問合せ語句は問合せで入力したとおりに正確に使用されます。したがって、大/小文字を区別するシソーラスを使用する問合せでは、索引も大/小文字を区別しているかぎり、問合せ拡張における精度が向上し、検索が容易になります。

たとえば、大/小文字を区別するシソーラスを作成する場合、異なる意味を持つ語句、たとえばTurkey(国名)とturkey(鳥の種類)には、異なるエントリが使用されます。このシソーラスを使用すると、Turkeyへの問合せは、Turkeyに対応付けられているエントリのみを含むように拡張されます。

10.1.3 大/小文字を区別しないシソーラスの使用

大/小文字を区別しないシソーラスでは、語句は、当初の入力時の文字に関係なく、すべて大文字で格納されます。

ctxloadプログラムは、デフォルトでは大/小文字を区別しないモードでシソーラスをロードします。

CTX_THES.CREATE_THESAURUSによるシソーラスの作成時、シソーラスは、デフォルトでは大/小文字を区別せずに作成されます。

また、大/小文字を区別しないシソーラスを問合せで指定した場合、シソーラス検索では、問合せ語句はすべて大文字に変換されます。その結果、Oracle Textでは、大/小文字の混合で表記されたときに異なる意味を持つ語句を区別できません。

たとえば、大/小文字を区別しないシソーラスを作成する場合、2つの異なる意味を持つ語句TURKEY(国名と鳥の種類)には、異なるエントリが使用されます。このシソーラスを使用すると、Turkeyまたはturkeyのいずれに対する問合せも、シソーラス検索ではTURKEYに変換された後、2つの意味に対応付けられているすべてのエントリを含むように拡張されます。

10.1.4 デフォルトのシソーラス

問合せでシソーラス名を指定しない場合、デフォルトで、シソーラス演算子は、DEFAULTという名前のシソーラスを使用します。ただし、Oracle Textには、デフォルトのシソーラスはありません。

したがって、シソーラス演算子に対してデフォルトのシソーラスを使用する場合は、DEFAULTという名前のシソーラスを作成する必要があります。このシソーラスの作成には、Oracle Textがサポートしている次のシソーラス作成方法を使用できます。

  • CTX_THES.CREATE_THESAURUS(PL/SQL)

  • ctxloadユーティリティ


    関連項目:

    ctxloadおよびCTX_THESパッケージの使用方法の詳細は、『Oracle Textリファレンス』およびこの章の「ctxloadユーティリティ」を参照してください。

10.1.5 提供されるシソーラス

Oracle Textには、デフォルトのシソーラスはありません。ただし、Oracle Textでは、シソーラスをctxloadでロードするファイルの形式で提供しています。このファイルを使用して汎用の英語シソーラスを作成できます。

このシソーラス・ロード・ファイルを使用すると、Oracle Textのデフォルトのシソーラスを作成できます。あるいは、このファイルを特定の主題または主題の範囲にあわせたシソーラスを作成するための基礎として使用することもできます。


関連項目:

ctxloadおよびCTX_THESパッケージの使用方法の詳細は、『Oracle Textリファレンス』およびこの章の「ctxloadユーティリティ」を参照してください。

10.1.5.1 提供されるシソーラスの構造と内容

提供されるシソーラスは、Roget's Thesaurus(ロジェの分類語彙辞典)のような従来のシソーラスに類似しています。同義の語句や語義的に関連する語句のリストを備えています。

提供されるシソーラスは語句を階層形式に編成し、下位語とその上位語との実世界での実用的な関係を定義して付加価値を付けています。

また、階層の異なる領域の語句間で相互参照もできます。

10.1.5.2 提供されるシソーラスの場所

このシソーラス・ロード・ファイルの正確な名前と場所は、オペレーティング・システム固有です。ただし、通常、ファイル名は、dr0thsus(適切なテキスト・ファイルの拡張子が付きます)で、ファイルは次のディレクトリ構造内に置かれます。

<Oracle_home_directory>
    <interMedia_Text_directory>
       sample
           thes

関連項目:

Oracle Textのディレクトリ構造の詳細は、使用しているオペレーティング・システム固有のOracle Databaseのインストレーション・マニュアルを参照してください。

10.2 シソーラスの用語の定義

シソーラスを使用して、シノニム、関連語および階層関係を作成できます。次の各項で、例を示します。

10.2.1 シノニムの定義

コンピュータ・サイエンス用語のシソーラスがある場合、語句XMLのシノニムをExtensible Markup Languageと定義します。これによって、この語句のいずれを問い合せても、同じドキュメントが戻ります。

XML
SYN Extensible Markup Language

次のようにSYN演算子を使用すると、XMLをそのシノニムにまで拡張できます。

'SYN(XML)'

次のように拡張されます。

'XML, Extensible Markup Language'

10.2.2 階層関係の定義

ドキュメント・セットがニュース記事で構成されている場合は、シソーラスを使用して、地理用語の階層を定義できます。たとえば、米国のカリフォルニア州の地理階層を示す次の階層があるとします。

California
   NT Northern California
       NT San Francisco
       NT San Jose
   NT Central Valley
       NT Fresno
   NT Southern California
       NT Los Angeles

NT演算子を使用すると、カリフォルニアに対する問合せを次のように拡張できます。

'NT(California)'

次のように拡張されます。

'California, Northern California, San Francisco, San Jose, Central Valley,
  Fresno, Southern California, Los Angeles'

結果のヒットリストには、米国のカリフォルニア州の地域や都市に関連するすべてのドキュメントが表示されます。

10.3 問合せアプリケーションでのシソーラスの使用

カスタム・シソーラスを定義すると、問合せをより優れた方法で処理できます。使用しているアプリケーションのユーザーには、トピックを表現するワードがわからない場合があるため、予想される問合せ語句にシノニムまたは下位語を定義できます。シソーラス演算子を使用すると、問合せをシソーラス語句に拡張できます。

カスタム・シソーラスを使用して、問合せをよりインテリジェントに処理できるように問合せアプリケーションを拡張するには、次の2つの方法があります。

  • カスタム・シソーラスをロードし、シソーラス演算子を使用して問合せを入力します。

  • カスタム・シソーラスを使用してナレッジ・ベースを補強し(英語のみ)、ABOUT演算子を使用して問合せを拡張します。

どちらのアプローチにも、それぞれメリットとデメリットがあります。

10.3.1 カスタム・シソーラスのロードおよびシソーラス・ベースの問合せの発行

カスタム・シソーラスを作成する手順は、次のとおりです。

  1. シソーラスを作成します。「シソーラスの用語の定義」を参照してください。

  2. ctxloadを使用してシソーラスをロードします。次の例では、tech_docというシソーラスをtech_thesaurus.txtというインポート・ファイルからインポートします。

    ctxload -thes -name tech_doc -file tech_thesaurus.txt 
    
  3. プロンプト表示されたら、ユーザー名とパスワードを入力します。セキュリティを確実にするために、コマンドラインにパスワードを入力しないでください。

  4. シソーラス演算子を使用して問合せを行います。たとえば次のようにすると、XMLと、tech_docで定義したXMLのシノニムを含むすべてのドキュメントを検索できます。

    'SYN(XML, tech_doc)'
    

10.3.1.1 メリット

この方法を使用するメリットは、索引付け後にシソーラスを変更できることです。

10.3.1.2 制限事項

この方法では、問合せでシソーラス拡張演算子を使用する必要があります。問合せが長いと、シソーラスの拡張で余分なオーバーヘッドが発生し、問合せ速度が遅くなります。

10.3.2 カスタム・シソーラスによるナレッジ・ベースの補強

カスタム・シソーラスを既存のナレッジ・ベースのブランチに追加できます。ナレッジ・ベースは、テーマの索引付け、ABOUT問合せおよびドキュメント・サービスでのドキュメント・テーマの抽出などに使用する概念の階層ツリーです。

既存のナレッジ・ベースを新しいシソーラスで補強する場合は、シノニムや下位語に暗黙的に拡張するABOUT演算子を使用して問い合せます。この問合せにシソーラス演算子は使用しません。

カスタム・シソーラスで既存のナレッジ・ベースを補強する手順は、次のとおりです。

  1. カスタム・シソーラスを作成し、新規語句を既存のナレッジ・ベースの語句にリンクします。「シソーラスの用語の定義」および「新規語句の既存語句へのリンク」を参照してください。

  2. ctxloadを使用してシソーラスをロードします。「ctxloadによるシソーラスのロード」を参照してください。

  3. ctxkbtcコンパイラを使用して、ロード済のシソーラスを次のようにコンパイルします。「ロード済のシソーラスのコンパイル」を参照してください。

  4. ドキュメントを索引付けします。デフォルトでは、システムが索引のテーマ・コンポーネントを作成します。

  5. ABOUT演算子を使用して問合せを行います。たとえば、語句politicsに関連するシノニムまたは下位語を含むすべてのドキュメントを検索するには、次の問合せを入力します。

    'about(politics)'
    

10.3.2.1 メリット

カスタム・シソーラスを索引付けの前に既存のナレッジ・ベースにコンパイルすると、ABOUT演算子を使用することにより問合せが高速かつ単純になります。また、ドキュメント・サービスで、テーマ・サマリーと要旨を作成する際にカスタマイズされた情報を利用できます。

10.3.2.2 制限事項

ABOUT演算子を使用するには、索引内にテーマ・コンポーネントが存在していることが必要であり、この場合は必要なディスク領域が多少増加します。ドキュメントを索引付けする前にシソーラスを定義する必要があります。シソーラスを変更した場合は、シソーラスを再コンパイルし、ドキュメントを再索引付けする必要があります。

10.3.2.3 新規語句の既存語句へのリンク

ナレッジ・ベースに語句を追加する場合は、テーマの検証で最適な結果が得られるように、新規語句をナレッジ・ベースのカテゴリの1つにリンクすることをお薦めします。


関連項目:

提供される英語のナレッジ・ベースの詳細は、『Oracle Textリファレンス』を参照してください。

新規語句が既存のカテゴリから完全に分離している場合は、新規語句から検証されるテーマが少なくなります。その結果、ABOUT問合せの精度が低下し、要旨およびテーマのハイライト表示の品質も低下します。

既存語句を新規語句の上位語にすることによって、新規語句を既存語句にリンクします。

10.3.2.3.1 例: 新規語句の既存語句へのリンク

医学用語の階層を含む医学シソーラスmedthesを購入したとします。このシソーラスの4つの最上位語は、次のとおりです。

  • Anesthesia and Analgesia(麻酔および無痛)

  • Anti-Allergic and Respiratory System Agents(抗アレルギ薬および呼吸器系薬)

  • Anti-Inflammatory Agents, Antirheumatic Agents, and Inflammation Mediators(抗炎症薬、抗リウマチ薬および炎症伝達物質)

  • Antineoplastic and Immunosuppressive Agents(抗腫瘍薬および免疫抑制薬)

これらの語句を既存のナレッジ・ベースにリンクするには、医学シソーラスに次のエントリを追加して、新規語句を既存のhealth and medicineブランチにマップします。

health and medicine
 NT Anesthesia and Analgesia
 NT Anti-Allergic and Respiratory System Agents
 NT Anti-Inflamammatory Agents, Antirheumatic Agents, and Inflamation Mediators
 NT Antineoplastic and Immunosuppressive Agents

10.3.2.4 ctxloadによるシソーラスのロード

医学シソーラスがmed.thesというファイルにあるとします。次のように、ctxloadを使用して、シソーラスをmedthesとしてロードします。

ctxload -thes -thescase y -name medthes -file med.thes -user ctxsys

ctxloadコマンドラインを入力すると、ユーザー・パスワードの入力を要求されます。セキュリティを確実にするために、コマンドラインにパスワードを入力しないでください。かわりに、-userを省略し、ユーザー名とパスワードのそれぞれに対してctxloadでプロンプト表示するようにできます。

10.3.2.5 ロード済のシソーラスのコンパイル

ロードされたシソーラスmedthesをナレッジ・ベースにリンクするには、次のようにctxkbtcを使用します。

ctxkbtc -user ctxsys -name medthes 

ctxkbtcコマンドラインを入力すると、ユーザー・パスワードの入力を要求されます。ctxloadに関して、セキュリティを確実にするために、コマンドラインにパスワードを入力しないでください。


重要:

セキュリティを確実にするために、インタラクティブ・モードを使用し、ユーザー・パスワードの入力を求められたときにctxloadおよびctxkbtcにパスワードを入力することをお薦めします。コマンドラインにパスワードを入力しないことをお薦めします。


10.4 提供されるナレッジ・ベース

Oracle Textでは、英語とフランス語のナレッジ・ベースを提供します。提供されるナレッジ・ベースには、テーマ分析の実行に使用する情報が含まれています。テーマ分析には、テーマの索引付け、ABOUT問合せおよびCTX_DOCパッケージによるテーマの抽出が含まれます。

ナレッジ・ベースは、概念とカテゴリの階層ツリーです。次の6つの主要ブランチがあります。

  • Science and technology

  • Business and economics

  • Government and military

  • Social environment

  • Geography

  • Abstract ideas and concepts


    関連項目:

    カテゴリ階層の分類は、『Oracle Textリファレンス』を参照してください。

提供されるナレッジ・ベースは階層形式であり、上位語、下位語および関連語情報が含まれているという点で、シソーラスに似ています。したがって、新規語句を既存語句にリンクして業界固有のシソーラスで既存のナレッジ・ベースを補強することで、テーマ分析の精度を向上させることができます。


注意:

Oracle Textで提供されるナレッジ・ベースは、Oracle Textとともにインストールされない場合があります。ナレッジ・ベースがインストールされなかった場合は、個別のインストールが必要になることがあります。詳細は、使用しているオペレーティング・システム固有のOracle Databaseのインストレーション・マニュアルを参照してください。

また、言語固有のシソーラスをナレッジ・ベースにコンパイルすると、テーマ機能を別の言語に拡張できます。

ナレッジ・ベースのキャラクタ・セット

ナレッジ・ベースは、任意のシングルバイト・キャラクタ・セットで格納できます。提供されるナレッジ・ベースは、キャラクタ・セットWE8ISO8859P1を使用しています。拡張ナレッジ・ベースは、US7ASCIIなどの別のキャラクタ・セットで格納できます。

10.4.1 言語固有のナレッジ・ベースの追加

シングルバイトの空白で区切られた言語の独自のナレッジ・ベースをロードすると、スペイン語など、英語やフランス語以外の言語にテーマ機能を拡張できます。

テーマ機能には、テーマの索引付け、ABOUT問合せ、テーマのハイライト表示およびCTX_DOCを使用したテーマ、要旨およびテーマ・サマリーの生成などの機能が含まれます。

テーマ機能は、ユーザー定義ナレッジ・ベースを追加して拡張します。たとえば、スペイン語シソーラスからスペイン語のナレッジ・ベースを作成できます。

言語固有のナレッジ・ベースをロードする手順は、次のとおりです。

  1. ユーザー定義のカスタム・シソーラスをctxloadを使用してロードします。「ctxloadによるシソーラスのロード」を参照してください。

  2. 言語部分がターゲット言語になるように、NLS_LANGを設定します。キャラクタ・セット部分は、シングルバイト・キャラクタ・セットに設定する必要があります。

  3. ロード済のシソーラスをctxkbtcを使用して次のようにコンパイルします。

    ctxkbtc -user ctxsys -name my_lang_thes

    プロンプト表示されたら、-userのパスワードを入力します。「ロード済のシソーラスのコンパイル」を参照してください。

    この文は、言語固有のナレッジ・ベースをロード済のシソーラスからコンパイルします。

索引付けおよびABOUT問合せ時のテーマ分析にこのナレッジ・ベースを使用するには、NLS_LANG言語をBASIC_LEXERプリファレンスのTHEME_LANGUAGE属性として指定します。

10.4.1.1 制限事項

ナレッジ・ベースの追加には、次の制限事項が適用されます。

  • Oracleが提供するナレッジ・ベースは、英語とフランス語のみです。それ以外の言語に対しては、独自のシソーラスを用意する必要があります。

  • ナレッジ・ベースは、シングルバイト・キャラクタ・セットを持つ言語に対してのみ追加できます。マルチバイト・キャラクタ・セットのみで表現される言語に対して、ナレッジ・ベースを作成することはできません。データベースが、UTF-8などのマルチバイト・ユニバーサル・キャラクタ・セットの場合は、そのシソーラスのコンパイル時に、NLS_LANGパラメータを互換性のあるシングルバイト・キャラクタ・セットに設定する必要があります。

  • ナレッジ・ベースの追加によって、空白で区切られた言語が最適に機能します。

  • NLS_LANG言語ごとに最大で1つのナレッジ・ベースを持つことができます。

  • 上位語、下位語および関連語などの階層問合せフィードバック情報の取得操作は、英語とフランス語以外の言語では機能しません。その他の言語は、ナレッジ・ベースがユーザーのシソーラスからのみ導出されます。したがって、使用しているシソーラスから直接階層情報を取得することをお薦めします。


    関連項目:

    テーマの索引付け、ABOUT問合せ、CTX_DOCパッケージの使用方法および提供される英語のナレッジ・ベースの詳細は、『Oracle Textリファレンス』を参照してください。