16.5 コロケートの識別
コロケートはドキュメント内で頻繁に共起する単語のグループです。コロケートは、指定されたキーワードに関連する他のキーワードや概念の簡単な概要を示します。問合せで他のキーワードを使用してより関連性のある結果を取得できます。
検索問合せに基づいてコロケートを識別します。問合せから返されるドキュメントごとに、検索キーワードに関連するテキストのスニペットが自動的に抽出されます。次に、これらのスニペットの語が統計メジャーを使用して問合せキーワードに関連付けられ、ドキュメント・セット全体における抽出語の発生頻度に応じて、返された各共起語にスコアが割り当てられます。
コロケートを識別するには、RSIを使用します。問合せで返される必要のある共起語の数を指定できます。また、普通名詞のコロケートを指定するか、独自性を強調するコロケートを識別するか指定することもできます。指定された検索キーワードのシノニムも返すことができます。
ノート:
コロケートはBASIC_LEXER
でのみサポートされます。
コロケートを識別するには:
- 問合せ対象のドキュメント・セット表を作成します。
- ドキュメント・セット表にOracle Text索引を作成します。
- XML問合せのRSIを使用して、コロケートを識別する問合せを定義および入力します。必要な属性を持つ
collocates
要素を含めます。
例16-1 ドキュメント・セット内のコロケートの識別
この例で、データ・セット内のドキュメントの問合せに使用されているキーワードは'Nobel'です。Oracle Textは、ドキュメント・セット内のこのキーワードの出現を検索します。結果セットに加えて、コロケートを使用して'Nobel'で共起する5つの共通語を検索します。max_words
属性を使用して、生成するコロケートの数を識別します。use_tscore
属性をTRUE
に設定して、共通語をコロケート用に識別する必要があることを指定します。コロケートを識別するためにキーワードの各側で選択する単語の数は10個です。
次に、コロケートの判別に使用される入力RSI記述子を示します。
declare
rsd varchar2(32767);
begin
ctx_query.result_set('tdrbnbsan01idx', 'nobel',
<ctx_result_set_descriptor>
<collocates radius = "10" max_words="5" use_tscore="TRUE"/>
</ctx_result_set_descriptor>',
:rs);
end;
/
次に、問合せの出力結果セットを示します。
<ctx_result_set>
<collocates>
<collocation>
<word>PRIZE</word>
<score>82</score>
</collocation>
<collocation>
<word>LAUREATE</word>
<score>70</score>
</collocation>
<collocation>
<word>NOBELPRIZE</word>
<score>44</score>
</collocation>
<collocation>
<word>AWARD</word>
<score>42</score>
</collocation>
<collocation>
<word>ORG</word>
<score>41</score>
</collocation
</collocates>
</ctx_result_set>
'Nobel'の上位5つの共通コロケートは、上から順に、Prize、Laureate、Nobelprize、awardおよびorgです。各語には、発生頻度を示すスコアが割り当てられます。コロケートは、hitlist
要素が返された後常に返されます。
同じ例でuse_tscore
をFALSE
に設定すると、共通性の少ない(一意の)単語が識別されます。次に、出力結果セットを示します。
<ctx_result_set>
<collocates>
<collocation>
<word>MOLA</word>
<score>110</score>
</collocation>
<collocation>
<word>BISMARCK</word>
<score>89</score>
</collocation>
<collocation>
<word>COLONNA</word>
<score>67</score>
</collocation>
<collocation>
<word>LYNEN</word>
<score>55</score>
</collocation>
<collocation>
<word>TIMBERGEN</word>
<score>25</score>
</collocation>
</collocates>
</ctx_result_set>
関連項目:
コロケートで使用する属性の詳細は、『Oracle Textリファレンス』を参照してください。