プライマリ・コンテンツに移動
Oracle® Textリファレンス
12cリリース1 (12.1)
B71316-03
目次へ移動
目次
索引へ移動
索引

前
次

6 CTX_ANLパッケージ

この章の内容は以下のとおりです。

6.1 CTX_ANLパッケージのプロシージャについて

CTX_ANL PL/SQLパッケージは、AUTO_LEXERとともに使用し、レクサーからカスタム・ディクショナリを追加および削除するプロシージャが用意されています。カスタム・ディクショナリは、特別な研究分野や業種に応じてユーザーが開発するディクショナリです。ほとんどの場合、Oracle Textに用意されているディクショナリだけで要件に十分対応できます。

関連項目:

"AUTO_LEXERとサポートされている言語の詳細は、「AUTO_LEXER」を参照してください。

CTX_ANLパッケージには、次のストアド・プロシージャが含まれています。

名前 説明

ADD_DICTIONARY

カスタム・ディクショナリをレクサーに追加します。

DROP_DICTIONARY

カスタム・ディクショナリをレクサーから削除します。

注意:

CTX_ANLのプロシージャを使用できるのは、CTXSYSユーザーのみです。

6.2 ADD_DICTIONARY

CTX_ANL.ADD_DICTIONARYプロシージャを使用して、AUTO_LEXERで使用されるカスタム・ディクショナリを追加します。

注意:

ディクショナリ・データは、索引/ポリシーの作成時またはALTER INDEX時以降に処理されます。ディクショナリ・データ形式のエラーは、索引/ポリシーの作成時またはALTER INDEX時に検出され、「DRG-13710: ディクショナリの構文エラー」のエラーになります。

構文

CTX_ANL.ADD_DICTIONARY(
  name          in VARCHAR2,
  language      in VARCHAR2,
  dictionary    in CLOB
  );
name

ユーザー作成のカスタム・ディクショナリの一意名。

language

カスタム・ディクショナリで使用される言語。

dictionary

カスタム・ディクショナリを含むCLOB。カスタム・ディクショナリは定義のリストで構成されます。これは、「カスタム・ディクショナリの形式と構文」で説明しているように、タブ区切りか1行ずつで個別に定義されます。

カスタム・ディクショナリの形式と構文

カスタム・ディクショナリで新しい語幹を定義、または既存の語幹を再定義すれば、使用する言語のAUTO_LEXERにワードを追加することができます。

新しい語幹を定義、または既存の語幹を再定義するには、次の構文を使用します。

COMPOUND<tab>word|word<tab>STEM<tab>word<tab>parts-of-speech<tab>features
COMPOUND

COMPOUNDは、2つの完全な単語をパイプ(|)で結合して、複合語を作成します。wordは単純なテキスト文字列です。この文字列を他の単語に結合して複合語が作成され、AUTO_LEXERで指定する言語に追加されます。

COMPOUNDでは複合語に対して最大8つの要素単語をサポートします。

STEM

STEMで、新しい単語の語根を追加します。

word

COMPOUNDSTEMに指定するword値は、単純なテキスト文字列です。他の単語に結合して新しい単語を作成する単語、またはAUTO_LEXERの言語ディクショナリに追加する単語の語根(語幹)を表します。

parts-of-speech

parts-of-speech値は、有効な品詞のリストです。カンマで区切ります。表6-1に、parts-of-speech値の名前をリストします。少なくとも1つのparts-of-speech値が必須です。

features

featuresは、有効な文法機能のリストを表します。表6-2を参照してください。複数の機能はカンマで区切ります。機能はオプションです。指定する言語ディクショナリでwordがすでに定義されている場合には、この定義が優先されます。parts-of-speechまたはfeaturesに無効な値を指定すると、エラーになります。

表6-1 カスタム・ディクショナリで有効な品詞(大/小文字を区別)

品詞 説明

noun

単純な名詞。table、book、procedureなど。

nounProper

人名、地名などの固有名詞。Zachary、Supidito、Susquehannaのように通常は大文字で始まります。

adjective

名詞の修飾語。fast、trenchant、pendulousなどで、一般的には比較形(green、greener、greenest)があります。

adverb

文の一般的な修飾語。形容詞または動詞を修飾する場合も、独立している場合もあります。slowly、yet、perhapsなど。

preposition

名詞を伴って前置詞句を作成する単語。off、beside、fromなど。類似の機能に後置詞を使用する言語の場合には、後置詞にも使用します。

表6-2は、機能と使用方法のリストです。これらが該当するかどうか、必要かどうかは、指定された言語によって異なります。変化とは、数(単数または複数)、格、性などを決定するために一部の言語で使用される語形変化のことです。カスタム・ディクショナリを使用する言語によっては、この機能が関係します。

表6-2 カスタム・ディクショナリで有効な機能

機能(大/小文字が区別されます) 説明

genderMasculine

男性形

genderFeminine

女性形

genderNeuter

中性形

declensionHard

強変化

declensionSoft

弱変化

exec CTX_DDL.CREATE_PREFERENCE('A_LEX', 'AUTO_LEXER');
exec CTX_ANL. ADD_DICTIONARY('my_dict1', 'ENGLISH', lobloc);
select * from CTX_USR_ANL_DICTS;
exec CTX_DDL.SET_ATTRIBUTE('A_LEX', 'english_dictionary', 'MY_ENGLISH');

次の例では、d1という名前のカスタム・ディクショナリを作成し、英語のAUTO_LEXERに追加します。

declare
 dict clob;
begin
 dict := '# compounds
COMPOUND        help|desk
COMPOUND        help|desks
COMPOUND        book|shelf
COMPOUND        book|shelves
COMPOUND        back|woods|man
'||
'# define company abbreviations
STEM    comp.   noun
STEM    ltd.    noun
STEM    co.     noun
STEM    oracle  nounProper
STEM    make    verb
STEM    unkword noun
STEM    unkword verb
';
 ctx_anl.add_dictionary('d1','ENGLISH',dict);
end;
/

6.3 DROP_DICTIONARY

AUTO_LEXERからカスタム・ディクショナリを作成するには、このプロシージャを使用します。

構文

CTX_ANL.DROP_DICTIONARY(
  name          in VARCHAR2,
  language      in VARCHAR2,
  dictionary    in CLOB
  );
name

ユーザー作成のカスタム・ディクショナリの一意名。

language

カスタム・ディクショナリの言語。

dictionary

カスタム・ディクショナリを表すCLOB。

begin
   CTX_ANL.DROP_DICTIONARY('dict1', 'english', 'dictionary');
end;

関連項目

"AUTO_LEXER"

"ADD_DICTIONARY"