17 Oracle Text代替スペル
この章では、Oracle Textによる単語の代替スペルの様々な処理方法について説明します。また、Oracle Textがドイツ語、デンマーク語およびスウェーデン語で使用する代替スペルの規則についても説明します。
内容は次のとおりです。
17.1 代替スペル機能の概要
一部の言語では、いくつかの単語に代替スペルが存在します。たとえば、ドイツ語の単語Schoenには、Schönというスペルも存在します。
ワードの形式には、元の形式と正規化された形式が存在します。ワードの元の形式は、ソース・ドキュメントで使用されている形式です。正規化された形式は、ワードが変換される場合、その変換された形式です。索引付けされるワード、および有効であるシステム・プリファレンス(この章で説明)によって異なりますが、ワードの正規化された形式は、元の形式と同じである場合があります。また、正規化された形式には、複数のスペルが存在する場合があります。たとえば、Schoenの正規化された形は、SchoenおよびSchönです。
Oracle Textでは、次の方法でワードの代替形式の索引付けを処理します。
-
代替スペル: 代替形式の索引付けが有効
-
基本文字変換: アクセントの付いた文字をアクセントのない形式に変換
-
ドイツ語の新スペル: ドイツ語の改良された(新しい)スペルを使用可能
これらの機能を有効にするには、該当する属性をBASIC_LEXER
で指定します。たとえば、代替スペルを有効にするには、ALTERNATE_SPELLING
属性にGERMAN
、DANISH
またはSWEDISH
を指定します。次に、ドイツ語の代替スペルを有効にする方法を示します。
begin ctx_ddl.create_preference('GERMAN_LEX', 'BASIC_LEXER'); ctx_ddl.set_attribute('GERMAN_LEX', 'ALTERNATE_SPELLING', 'GERMAN'); end;
代替スペルを使用禁止にするには、次のようにCTX_DDL.UNSET_ATTRIBUTE
プロシージャを使用します。
begin ctx_ddl.unset_attribute('GERMAN_LEX', 'ALTERNATE_SPELLING'); end;
Oracle Textは、検索前に問合せ語句をその正規化された形式に変換します。したがって、ユーザーはいずれかのスペルでワードを問い合せることができます。SchoenがSchoenとSchönの両方で索引付けされている場合、Schönに対する問合せは、いずれかの形式が含まれているドキュメントを戻します。
この項では、次の項目について説明します。
17.1.1 代替スペル
スウェーデン語、ドイツ語またはデンマーク語で、ワードのスペルが複数存在する場合は、通常、Oracle Textはそのワードを元の形式、つまりソース・ドキュメントで使用される形式で索引付けします。
代替スペルを有効にすると、Oracle Textは、ワードを正規化された形式で索引付けします。したがって、たとえば、SchoenはSchoenとSchönの両方で索引付けされ、Schoenに対する問合せは、いずれかのスペルが含まれているドキュメントを戻します。(Schönに対する問合せの場合も同じです。)
代替スペルを有効にするには、BASIC_LEXER
属性のALTERNATE_SPELLING
にGERMAN
、DANISH
またはSWEDISH
を設定します。詳細は、「BASIC_LEXER」を参照してください。
17.1.2 基本文字変換
Oracle Textでは、代替スペル以外に、基本文字変換も処理できます。基本文字変換を有効にすると、ウムラウト、揚音アクセント、セディーユなどを持つ文字が、索引付けの際、基本形式に変換されます。これにより、fiancéはfiancéおよびfianceの両方で索引付けされ、fiancéに対する問合せは、いずれかの形式が含まれているドキュメントを戻します。
基本文字変換を有効にするには、BASIC_LEXER
属性のBASE_LETTER
にYES
を設定します。詳細は、「BASIC_LEXER」を参照してください。
代替スペルも同時に有効になっている場合、予期せぬ結果を防止するために、場合により、基本文字変換をオーバーライドする必要があります。詳細は、「代替スペル機能のオーバーライド」を参照してください。
共通および言語固有の基本文字変換
BASE_LETTER_TYPE
属性は、基本文字変換の実行方法を決定します。可能な値は、GENERIC
およびSPECIFIC
です。
GENERIC
値はデフォルトで、基本文字変換の際、全言語に適用する変換表を1つ使用するよう指定します。
SPECIFIC
値は、使用言語固有の基本文字変換が使用されることを意味します。これにより、使用言語のワード検索ではアクセントの有無を考慮し、他の言語のアクセントは無視することが可能になります。
たとえば、GENERIC
表およびスペイン語のSPECIFIC
表の両方で、éはeに変換されます。ただし、ñという文字は異なった方法で処理されます。GENERIC
表では、ñはアクセント(厳密にはティルデ)を持つnとして扱われ、ñからnに変換されます。スペイン語のSPECIFIC
表では、ñはアルファベットの別の文字として扱われるため、変換されません。
17.1.3 ドイツ語の新スペル
1996年、ドイツ語の新しいスペル規則が、ドイツ語を話すすべての国の代表によって承認されました。たとえば、このスペル改革により、PotentialはPotenzial、SchiffahrtはSchifffahrt、schneuzenはschnäuzenとなります。
BASIC_LEXER
属性のNEW_GERMAN_SPELLING
にYES
を設定すると、新規および旧来の形式の両方を持つドイツ語のワードに対するCONTAINS
問合せでは、両方の形式を持つドキュメントが戻されます。たとえば、Potentialに対する問合せでは、PotentialおよびPotenzialが含まれているドキュメントが戻されます。デフォルト設定はNO
です。
ノート:
改革後のドイツ語のスペルでは、従来1ワードとして綴られていたワードの多く(たとえばsoviel)が、2ワード(so viel)として綴られるようになりました。現在、Oracle Textではこれらの変換や、2ワードから1ワードへの変換(たとえばweh tunからwehtunへの変換)は行いません。
変換されたワードが大文字か小文字であるかは、ソース・ドキュメントの最初の2文字によって決定されます。つまり、schiffahrtはschifffahrt、SchiffahrtはSchifffahrt、そしてSCHIFFAHRTはSCHIFFFAHRTとなります。
ドイツ語の新スペルの多くではハイフンが含まれるため、NEW_GERMAN_SPELLING
を使用する場合、ハイフンをprintjoin
として定義することをお薦めします。
この属性の設定に関する詳細は、「BASIC_LEXER」を参照してください。
17.2 代替スペル機能のオーバーライド
代替スペル機能がレクサー・プリファレンスによって指定されている場合でも、オーバーライドすることが可能です。
代替スペルが使用されている場合に基本文字変換をオーバーライドして、代替スペル形式を持つü、öおよびäなどの文字が、基本文字形式にも変換されることを防ぎます。
代替スペルによる基本文字変換のオーバーライド
alternate_spelling
を有効にすることによって実行される変換は、base_letter
による変換よりも先に実行されます。両方が有効であると、予期せぬ結果が発生する可能性があるためです。
代替スペルが有効な場合、Oracle Textは、2文字の形式を1文字の形式に変換するため(たとえばueをüに変換)、ワードを基本形式および代替形式の両方で検索できます。そのため、代替スペルを有効にすると、Schoenに対する検索で、SchoenおよびSchönを持つ両方のドキュメントが戻されます。
ただし、基本文字変換も同時に有効にすると、Schlüsselに含まれるüはuに変換され、(ドイツ語において)存在しない語Schlusselとなり、この3つの形式で索引付けされます。
この2つ目の変換を防止するためには、OVERRIDE_BASE_LETTER
属性にTRUEを設定します。
OVERRIDE_BASE_LETTER
は、ウムラウトを持つ文字にのみ影響を与えます。たとえば、アクセントを持つ文字は、基本形式に変換されます。
BASE_LETTER
の詳細は、「基本文字変換」.を参照してください。
17.3 代替スペルの規則
次の各項で、Oracle Textで使用される代替スペルを示します。
17.3.1 ドイツ語の代替スペルの規則
ドイツ語のアルファベットは、英語のアルファベットに、ä ö ü ßなどの他の文字を追加したものです。表17-1は、Oracle Textがこれらの文字に対して使用する代替スペルの規則を示しています。
表17-1 ドイツ語の代替スペルの規則
文字 | 代替スペル |
---|---|
ä |
ae |
ü |
ue |
ö |
oe |
Ä |
AE |
Ü |
UE |
Ö |
OE |
ß |
ss |
17.3.2 デンマーク語の代替スペルの規則
デンマーク語のアルファベットは、wを除くラテン・アルファベットにø æ åなどの特殊文字を追加したものです。表17-2は、Oracle Textがこれらの文字に対して使用する代替スペルの規則を示しています。
表17-2 デンマーク語の代替スペルの規則
文字 | 代替スペル |
---|---|
æ |
ae |
ø |
oe |
å |
aa |
Æ |
AE |
Ø |
OE |
Å |
AA |
17.3.3 スウェーデン語の代替スペルの規則
スウェーデン語のアルファベットは、wを除く英語のアルファベットにå ä öなどの特殊文字を追加したものです。表17-3は、Oracle Textがこれらの文字に対して使用する代替スペルの規則を示しています。
表17-3 スウェーデン語の代替スペルの規則
文字 | 代替スペルの規則 |
---|---|
ä |
ae |
å |
aa |
ö |
oe |
Ä |
AE |
Å |
AA |
Ö |
OE |