文節の検索

ここでは,延世大学(연세대학교)言語情報研究院(언어정보연구원)が公開しているコーパス(연세 말뭉치)のうち,문어 균형 말뭉치(文語均衡コーパス)の使い方,特に「어절(文節)」の検索についてまとめます.

検索結果の数や例を提示しますが,本文執筆時点での結果であることをお断りしておきます.

延世コーパスの概要については연세 말뭉치(延世コーパス)の使い方を参照のこと.

なお,ここで扱う文語均衡コーパスは,ホームページの記述によると

다양한 장르의 텍스트를 포함하여 구축한 문어 말뭉치 (多様なジャンルのテキストを含めて構築した書きことばコーパス

とされており,規模は1,054,362文節,とされています.100万文節のジャンル別内訳については表示がありません.

検索に先立って

ここでの「어절」(「文節」と訳しています)は,入力データの上で,半角スペースで区切られた単位を指します.「文節の検索」では,この「文節」の単位を超えた検索はできません.

文節を超えた検索を行いたい場合は,別の文書「連語の検索」を参照してください.

「入力データの上で」としましたが,データの上でスペースが入っていないと,1つの文節とみなされてしまう,ということになります.正書法の上で分かち書きをすべきところでも,データの上で(あるいはデータ入力の元となる原文で)分かち書きされていないと,1つの文節という扱いになります.

よく見られるのが,形式名詞などを前の文節につけてしまう,というようなケースです.

こうしたデータ上の誤り(?)があるかもしれない,ということは覚えておきましょう.

원시(原文コーパス)の検索

まず,メインの画面を見てみましょう.

一番左の「어절/원시」となっている部分で,検索の範囲・対象を選びます.デフォルトは「어절/원시」なので,原文コーパスはこのままで利用できます. 左から2つ目のボックス「검색어」となっている部分に,

학교

と入力して,一番右の「검색」ボタンを押してみましょう.そうすると,「학교」だけで構成される文節を含む例が検索されます.「학교」だけで構成されている文節なので,「학교」「학교」「초등학교」などといった文節は検索されません.あくまで文節を単位として検索する,という点に注意してください.

また,文節内に記号が含まれている場合は,検索語にその記号を含めない限り,検索されません.例えば検索語を「그리고」とした場合,「그리고」や「그리고,」と入力されている文節は検索にマッチしません.記号を含む文節まで検索したい場合は,以下で説明する「正規表現」の使用を検討してください.

正規表現の活用

検索語を入力するボックスの右側に○で囲まれた「?」ボタンがあり,これを押すと検索の例や,使用できる正規表現を見ることができます.原文コーパスで使える正規表現は以下の通りです.

長さが0またはそれ以上の文字

*?の使い分けを例で見てみましょう.

検索例:살+0以上の文字(*)+고

살*고

結果(一部):

「長さが0以上」なので,살と고の間に文字があってもなくてもよいことになり,また文字がある場合も長さの制限はありません.単独の文節内で条件に合致する限り,どんな長さでも該当します.

長さ1の文字

検索例:살+長さ1の文字(?)+고

살?고

結果(一部):

今度は,「長さが1の文字」なので살と고の間に必ず何らかの1文字がある,という文節が検索されます.

正規表現の組み合わせ

次に,正規表現を組み合わせてみましょう.

検索例:살+長さ1の文字(?)+고+0以上の文字(*)

살?고*

結果(一部):

先ほどの「살?고」の例に加え,上記のように「고」以降に文字や記号が含まれる文節が検索されました. 「살*고*」のようにすると,「살펴보고자」「살고싶어’」のような例もマッチします.

なお,「*고*」や「?고*」のように,正規表現を検索語の両端に使うことはできません.検索しようとすると,警告メッセージが出ます.

正規表現文字列のエスケープ

正規表現で使う文字列「*」と「?」を検索したい場合は,「\」(バックスラッシュ)を使ってエスケープします.

検索例:「*」という文字+0以上の文字(*)

\**

結果(一部):

ただし,手元の環境(Windows・日本語)では「\?」を認識(?)できず,「갑니까\?」とすると検索結果なし,となってしまいました.

OR条件の検索

正規表現と言ってよいか分かりませんが,検索語に「|」を用いて,「OR(または)」の条件による検索を行うことができます.

検索例:대학교または(|)대학생

대학교|대학생

結果(一部):

上記のように,「대학교」または「대학생」という文節が検索されます.「대학교에서」など,文節内に他の文字列がある場合は検索に該当しません.

正規表現式とOR条件とを組み合わせることも可能です.

検索例:0以上の文字(*)+죠または(|)0以上の文字(*)+지요

*죠|*지요

結果(一部):

上記のように,「죠」もしくは「지요」の例が検索されていますが,仮に終止形語尾の「-지요」とその縮約形である「-죠」を検索しようとしているのであれば,上記は少し問題があります.検索語として「죠(もしくは(지요)で終わる文節」を記述しているので,実際には文節内に「.」(ピリオド)や「?」(疑問符)を含んでいる例が検索結果に含まれていません. 一部のテキストは,なぜかピリオドやコンマなどの記号の前にスペースが1つ入っていて,別の文節として検索が行われているようです.それで上記の結果が出てくるわけですが,これでは記号が同じ文節内に記述されている例が除外されてしまいます. これを防ぐため,前後に「*」や「?」を入れたいところですが,先に書いたように,検索語の両端に正規表現を使うことはできないため,この検索では無理と言えそうです. 文法項目を検索したい場合には,形態・意味コーパスを利用するのがよいでしょう.

「字素検索」の活用

さらに右側に「자소 검색」(字素検索)と書かれたボタンがあり,デフォルトではオフ(背景が白地)となっています.これを押すと,字素検索がオン(背景が灰色)となります.字素検索をオンにすると,一部の字母を特定して検索を行うことができます.

字素検索は,ここで説明する「어절(文節)の検索」と,後述する「연어(連語)の検索」の原文コーパスでのみ利用可能です.

字素検索オンの際は,上記の正規表現との組み合わせが必須です.また「?」の扱いが「長さが1の文字」ではなく,「長さが1の字母」という扱いになります.

検索例:나+不特定の初声(?)+不特定の中声(?)+ㄹ지

나??ㄹ지

結果(以下の2例のみ):

「~ㄹ지」で終わる文節なので,「~ㄹ지」など,さらに文字が続く文節は検索されません.後ろに続く場合も含めたい場合は,正規表現「*」も使います.

検索例:나+不特定の初声(?)+不特定の中声(?)+ㄹ지+0以上の字母(*)

나??ㄹ지*

結果(上記2例に以下の例が追加):

単に「~ㄹ지」で終わる文節を検索する場合は,正規表現「*」を使います.

検索例:0以上の字母(*)+ㄹ지

*ㄹ지

結果(一部):

こちらも,「*ㄹ지*」のように「*」を検索語の両端に使うことはできませんが,中間に使うことは可能です.

検索例:만+0以上の字母(*)+ㄴ지+0以上の字母(*)

만*ㄴ지*

結果(一部):

|」を用いたOR検索も可能です.

検索例:0以上の字母(*)+ㄴ지または(|)0以上の字母(*)+ㄹ지

*ㄴ지|*ㄹ지

結果(一部):

なお,字母「ㄴ」で終わる文節をしたい,ということで「*ㄴ」のように検索語を指定すると,「자소만으로는 검색할 수 없습니다.」としてエラーになります.ただし,「ㄱ*ㄴ」のように字母を2つ以上記述する場合は問題ありません.検索語として字母を1つだけ指定することは無理,ということになります.

형태의미(形態・意味コーパス)の検索

形態素解析と意味解析がなされ,その注釈がつけられたコーパスの検索が可能です.語尾や助詞などの文法項目や,同音異義語がある単語を区別して検索する場合に便利です.

検索の画面で一番左のドロップダウンリストから,「어절/형태의미」を選びます.次に,その隣のボックスに検索語を入力しますが,ハングルで入力を始めると,逐次候補が表示されます.

형태의미 입력 중

上の図は,ハングルで「ㄴ」を入力したところです.複数の候補が,頻度とともに提示されます.韓国語の項目に続けて,「/」(スラッシュ)の後ろにアルファベットで品詞タグが表示されます.上記の例では,「EF」は終結語尾,「ETM」は冠形詞形語尾,「JX」は補助詞を指します.項目の直後にある「_」(アンダースコア)は,意味や用法別の枝番号を示しています.枝番号に「y」とあるのは,「연세한국어사전」(延世韓国語辞典)への参照です.カーソルを合わせると,以下のように辞書の対応する項目が表示されます.

형태의미 사전 내용 표시

ちょっと気をつけないといけないのが,品詞・意味のタグ付け内容がまちまちかもしれない,ということです.すぐ上の図で,「y2」が2つあるだけでなく,「y2v」などというものもあります.図に示したように,「-ㄴ2」は動詞につく連体形語尾です.ところが同じ「y2」の項目でも,品詞タグに「JX」と記述されたものもあります. また,候補として「ㄴ_y3/EMT」と「ㄴ_y3/ETM」とがありますが,前者はどうも「ETM」の誤りのようです.しかも,前者を選択してみると動詞の過去連体形で,形容詞の現在連体形語尾を指す「y3」に該当しません.いずれも例が1つずつなので,大きく問題にならないかもしれませんが,検索の際には注意してください.

なお,原文コーパスとは異なり,OR条件(|)も含む正規表現が使えません.異形態などを検索する場合は,複数回検索を行う必要があります.上記のタグ付け内容と関連して,方言などもまとめられていることがあり,注意が必要です.1

終わりに

文節の検索については以上です.次は「연어(連語)」の検索をどうぞ.

内容に誤りや不正確な部分があれば,ご教示お願いいたします.

  1. 例えば終止形語尾の「-지요」(지요_y0/EF1)を検索すると,「그렇지유.」「모르지유」のような文節も検索されます.