検索結果のソート

ここでは,検索プログラム한마루2.0(以下「한마루」とする)を用いて,21世紀世宗計画のコーパス検索結果を「정렬」(整列=ソート)処理で並べ替える方法について紹介します.

ソートの基本

何をおいても,検索結果が表示されていることが前提となります.コーパスを開いただけの状態では,「정렬」メニューがアクティブになっていません.

なお,ソートは検索結果全体に対して行われるのではなく,新たに入力する検索式にヒットする例に対してのみ行われます.

ソートに際して必要な情報は,検索式,演算(検索)範囲,検索語のソート方式,文のソート方式です.

ソートの実際

まず,検索結果を取得します.ここでも「演算」の場合と同じく,형태분석 말뭉치(形態素解析済みコーパス)のうち,BTAA0001.txtから連番のBTAA0016.txtを対象として検索を行います(26826文,361468文節,774828形態素). ここでは以下の検索(形態素検索)を行い,名詞形語尾の-기を含む文節を取得します.

#기/ETN#

語尾の-기だけで構成される文節はないので,前後に「#」(0以上の独立した音節/品詞)をつけておきます.

上記の検索により,対象の16ファイルから2807文,3111個の例が検索されました.

簡単なソート

一番単純なのは,用例が示されているKWIC表示の見出し部分を右クリックして,「오름차순 정렬」(昇順にソート)もしくは「내림차순 정렬」(降順にソート)を選ぶことです.

"corpus_sort_tab"

上の図では「검색어」(検索語)を右クリックしたところですが,「이전 문맥」(前文脈)・「이후 문맥」(後文脈)もソート可能です.検索語の昇順ソート結果は以下の通り.

"corput_sort_tab_sorted"

最初の例の表示が変ですが,検索結果に記号が含まれていると,表示がおかしくなります.

なお,「가꾸기」の用例を見ると分かるように,検索語だけを基準にソートしているので,後文脈などは無視されています.

「정렬」メニューの使用

今度は「정렬」(ソート)メニューを使ってみます.平文コーパス(원시 말뭉치)の場合は「어절 정렬」(文節ソート)が利用可能で,形態素解析済みコーパスと形態素・意味解析済みコーパスの場合は加えて「형태소(의미) 정렬」(形態素[意味]ソート)も利用可能です.

「文節ソート」の画面はこちら:

"corpus_sort_window_seg"

「形態素(意味)ソート」の画面はこちら:

"corpus_sort_window_morph"

二つの違いは品詞タグを入れるかどうかで,他は変わりません.

なお,上記で一番上のボックスに検索語を入力するのですが,この検索語が指定の範囲に現れる用例のみを対象に,ソートを行っていきます.最初に検索したときの検索語(#기/ETN#)と区別するために,ソートの対象を決定するための検索語を「検索語②」と呼ぶことにします.最初の検索語(#기/ETN#)は「検索語①」としましょう.

さて,ソートのためのウインドウは,上から順に,

となっています.

検索語②には,音節を表す演算子ブーリアン演算子を用いることができます.

検索語①のソート方式は,文節のどちら側からソートを行うかということですが,文節の頭から揃えていきたいときは「順方向」で,語尾など文節の後側から揃えたいときは「逆方向」でソートすると良いでしょう.なお,検索語①のソート自体は常に昇順で行われるようです.

同じ検索語①の用例内では,前文脈の先頭から「文のソート方式」で指定された「昇順」もしくは「降順」でソートが行われます.

文節ソートの例

まず,検索結果から「検索語①の前1文節以内に를もしくは을で終わる文節がある例」を対象に,検索語①を文節の先頭から昇順にソートしてみます.

音節を表す演算子,ブーリアン演算子を利用して,検索語②の入力ボックスには「*를|*을」と入力します.演算の範囲は前文脈に「1」,後文脈は「0」を入力もしくは空白とします.ソートの方式などはそのままにして,「추가▼」(追加)ボタンを押してください.以下の図のようになったでしょうか.

"corpus_sort_seg_example"

その上で「정렬」ボタンを押すと,演算の場合と同じく,検索語②に該当する例のみ背景色が変わり,ソートが行われます.以下はその一部.

"corpus_sort_seg_result"

検索語①の先頭から昇順でソートが行われていることが分かります. また,多くは目的語を示す対格語尾がついた例ですが,例を見ていくと「큰 피해는 없을 것이기 때문이다.」のような連体形語尾の例も含まれています.

なお,図中で「강화하기」の一連の例を見ると,前文脈の先頭から昇順にソートされていることが分かります.これは「文のソート方式」で「昇順」を設定したためです.以下に抜粋してみます.

前文脈 検索語① 後文脈
EAEC는 우리 스스로 지역 경제의 이익을 강화하기 위해 만든 생산적 협의체이다.
럼에도 불구하고 […] 경제 협력을 강화하기 위한 ‘밀월 관계’에 있기 때문에 […]
사부는 지난 89년부터 […] 약품 임상 시험 기준을 강화하기 위한 위원회의 활동도 […]
시아 6 개국은 현재 경제 협력 관계를 강화하기 위한 작업을 진행 중이지만, […]
이러한 국제 질서 속에서 […] 우리의 입지를 강화하기 위해서도 경제를 우선적으로 키워 나가야 하겠다.
이번 회의에서는 또 유엔의 인권 활동을 강화하기 위한 구체적인 행동 계획의 일환으로 […]
장관은 이어 기업의 소비성 경비에 대한 규제를 강화하기 위해 접대비 등에 대한 손비 인정 한도를 축소하고 […]

「文のソート方式」で「降順」を設定すると,逆の順番にソートされます.

検索語①を全てソートしたい場合

検索語②に「*」を入力すれば,全ての用例について,検索語①を基準にソートが行われます.「検索語①のソート方式」で「順方向」を指定すれば文節の頭から,「逆方向」を指定すれば文節の終わりからソートが行われます.

「演算の範囲」としてそれぞれに「0」を入力するか,どちらも空白にしておけば,対象を検索語①に絞ることができます. ただ,「*」を入力した場合,範囲はあまり関係ないようでした.

形態素(意味)ソートの例

今度は,同じ検索結果を対象に,検索語①に過去の接尾辞を含む例を取り出し,文節の終わりからソートしてみます.

「形態素(意味)ソート」メニューを選び,検索語②には「#았/EP#|#었/EP#」と入力しましょう.こちらも,過去の接尾辞だけで構成される文節はないので,「았/EP」と「었/EP」のどちらにも,前後に「#」をつけておいてください.演算の範囲はどちらも「0」もしくは空白にしておき,「検索語①のソート方式」を「逆方向」にしておきます.以下の図を参照のこと.

"corpus_sort_morph_example"

これでソートを行うと,以下のようなソートが行われます.

"corpus_sort_morph_result"

最初の例はちょっと趣旨とはずれますが,それでも検索語①に過去の接尾辞が含まれていることにはなります.ほとんどの例で直後に「때문」が続いていることが分かります.