テキストファイル版ドイツ語逆引き辞典の作成とそ の利用
著者 城岡 啓二
雑誌名 人文論集
巻 47
号 1
ページ A277‑A310
発行年 1996‑07‑31
出版者 静岡大学人文学部
URL http://doi.org/10.14945/00000632
テキス トファイル版
ドイツ語逆引 き辞典の作成 とその利用
岡
GjksirO@ ka.acojp)
0.は じめに
1.電 子ブ ックの見出 し語データを取 りだ して整理する
1.l DDwinで 見出 し語 を取 り出す
1.2取 り出 した見出 し語の後処理
2.― 行一語の語彙 リス トを逆引 き配列にする
3。
テキス トファイル版逆引 き辞典 をつ くる
3.1結 合 した複数データの整理
3.2 Umlautな どの特殊文字の処理
3.3見 出 し語 として採用する語および語形
3.4 sedに よる一括削除 ,一 括変換
4.テ キス トファイル版逆引 き辞典 を利用する
4.1正 規表現 をつかった検索
4.2 awkに よる集計
5。
最後 に
0.は じめに
ドイツ語の逆引 き辞典 は少な くとも最近の ものは 2冊 しかない .東 ドイツか ら出ていた Erich Mater(1965)の ものは約 14万 語収録 している逆引 き辞典 だ .辞 典 といって も見出 し語以外 に意味やその他の情報があるわけではな く
,逆引 き配列のたんなる語彙表つ まり語彙の リス トである .そ れで も ,版 を重ね
,ドイツ統一以降 も他の出版社か ら出されているところをみると ,こ のての語彙 リス トは語構成 な どの研究 に利用 されているようで ,研 究者の需要があった よ うである .西 ドイツか ら 80年 代の後半 に出た Gustav Muthmann(1988)の 逆 引 き辞典は後発 ということもあって ,語 数が 17万 5千 語 で Materの もの よ り
啓 z u ︒
H ヽ
― ‑277‑―
多 く ,配 列 も文字の完全 な逆引 き配列ではな く ,発 音 を考 えて場合 によっては 配列 をず らすな どして新 しい工夫 をした逆引 き辞典 である
.したが って ,す でに 2冊 の ドイツ語の逆引 き辞典があるわけだが ,ど ち らも 紙 の辞典でパ ソコンを利用 した高度 な情報処理 には使 えない .テ キス トフアイ
ル版 ドイツ語逆引 き辞典があれば grepな どの文字列検索 ツールが使 え ,検 索 が容易だ とい うだけでな く ,従 来の紙の逆引 き辞典では不可能 な語中の要素の 検索 もお こなえる。語中要素 の研究 はこれ までは記憶 と内省 をもとにす るほか なかったわ けだが ,正 規表現 とい う記法の使 える grepな ら「
..*licher..*」とす れば ,語 中に―
licher―を含 む語 を語彙 リス トか ら正確 に素早 く抜 き出す ことが 可育旨である .こ ういうテキス トフアイル版の逆引 き辞典 がい くら便利だ といっ て も語構成 について しらべたい とい うひ とは言語学者か語学教師にふつ うは限 られ るわけで ,需 要が大 きい とは言 えない。そのためだ と思 うが,テ キス トファ イル版 の逆引 き辞典 は ドイツにおいて もまだ発表 されていない .な いな ら自作 して しまえということで作成 したのだが ,こ れが可能 になったのは ,ま ず ,Sony のつ くった電子 ブック と電子 ブックをパ ソコン上 で扱 うフ リー ソフ ト DDwin
のおかげである .ま た ,編 集作業 において必要不可欠 な役割 を果 た したのが sortや uniqや revや awkや sedと いった汎用テキス ト処理 ツールである
.電子ブ ック (Data Disc)と い う規格で多 くの辞典類が発売 されている。広辞 苑や大辞林や数々の英和辞典 な ど日本製の辞書・ 事典類 だけでな く ,Concise Oxford Dictionaryや American Heritage Dictionaryな ど海外の もの もある
.ドイツ製の電子ブックは ドイツ国内では普及せず既 に入手不可能 になった よう だが ,過 去 にはかな りの辞典類 が発売 されてい る .現 在 で も日本 で は Duden
Universalwё rterbuchや Mackensenの Deutsche Rechtschreibungな どが電 子 ブ ック版 で入手可能である .こ れ らの電子 ブック版の辞典類 は検索のスピー ドが早い し ,電 子 ブックによっては条件検索 といつて見出 し語ではな く解説文 中のキー ワー ドにしたが って検 索す る ことも可能 で (た とえば広辞苑 の電子 ブ ックで「ほうげん」 と「がい こくご」の条件検索 をす るとこのふたつを解説 文中にふ くむ「借用語」が検索で きる ),こ の ままで も十分 に利用価値のあるも のであるが ,中 身の情報 をテキス トファイルで取 り出す ことがで きれば ,た ん
なる辞書の検索ではないような語学研究 にも使 えそうである
.DDwinと いうのは ,電 子 ブックや EPWING規 約の 12cmCD― ROMを Win‐
dows上 (現 在 は 3.1用 と 95用 がある )で 使 えるようにす る草本和馬 さんのつ
くったフ リーウェアで ,パ ソコン通信やパ ソコン雑誌の付録な どで最新版が手
に入 る .ま た ,NIFTY― Serveで 作者 自身がサポー トしている .DDwinは ヴァー ジ ョンア ップのたびに機能が追加 され ,索 引情報 によらない全文検索 (条 件検 索 と似 ているが ,条 件検索 は索引情報が電子 ブック内に記録 されている場合 に だけ可能 になる )な ど ,元 の電子ブックプレーヤでは不可能 な検索 もで きるよ うになってい る .1.48で は電子辞書の見出 し語だけ ,あ るいは ,見 出 し語 と解 説文の両方を一括 してテキス トファイル として取 り出す機能が加わった .し ら べてみると ,こ の機能 を利用すれば ,一 枚 のデ ィスクに入 ったすべての見出 し 語で も効率的に取 り出せ ることが分かった
.また ,現 在 ,各 種 の汎用テキス ト処理 ツール (UNIX― like Toolsと か UNIX¨
like Utilitiesと か Text Toolsあ るいは DOS To01sな どと称 していることが 多い )が インターネ ッ トやパ ソコン通信であるいは CD― ROMを 媒体 に出回っ ているが ,こ れ らの汎用 ツール を使 うだけで一行一語の語彙 リス トを逆引き配 列 にす ることがで きることが試行錯誤 の結果分かった .逆 引 き配列 にす る際 に 必要なのは revと sortで ,重 複 したデータを整理す るのが tmiqだ .ま た ,rev のかわ りに awkを 使 うこともで きる .不 要なデータの削除や一括変換 には sed が便利だ .ま た ,cut,paste,f。 ld,dd,nl,tr,cOmm,wcな ども含め UNIXの コ マ ン ドに由来するツール群 はテキス トデータを扱 うならぜひ使 い方を覚 えたい 便利 な道具である
.以下では ,電 子 ブックか ら見出 し語 を効率的に取 り出す方法 ,取 り出 した見 出 し語データを逆引 き配列で整理す る方法 ,テ キス トファイル版逆引 き辞典 の 編集上の留意点 と利用法 について ,後 発の研究者の参考 になるようにで きるだ け具体的 に記述 してお きたい と思 う .記 述 に一貫性 をもたせ るため電子 ブック 版 クラウン独和辞典 の場合 を例 としてあげることが多いが ,他 の電子ブ ックか
らで も基本的には同様 の方法で見出 し語データは取 り出せ ,テ キス トファイル
版逆引 き辞典が作成で きる
.1.電 子ブ ックの見出 し語データを取 り出 して ,整 理する
1.l DDwinで 見出 し語 を取 り出す
DDwinを 利用 して電子 ブックか ら見出 し語 データを取 りだすのであるが ,こ うい う使 い方は語学研究者でなければ不要な使 い方で ,一 般 のひ とには思い も よらぬ作業 だ ろう。 また ,DDwinの ふつ うの使 い方で もない .し たが って
,DDwinの 詳細 なヘルプファイル を熟読 して もこれか ら述べ るような ことは書
‑279‑
かれていない .DDwinは 基本的には電子 ブック検索 ソフ トウェアであって ,見 出 し語や辞書の中身 をテキス トファイルで取 り出すためのソフ トウェアではな いか らだ
.見出 し語 データを DDwinで 取 り出す方法 を順 を追 って説明 してい こう
.a。
まず ,DD宙 nを 動 か しは じめ る前 にい くつか設 定 を確認 してお く .メ ニューバーの「その他」 を選択 し ,さ らに「環境設定」 を選択 し ,表 示 され るダイアログボックスで「高度」 を選択す る .こ れで「高度 な設定」のダイ アログボ ックスが表示 され るのだが ,「 上級者 メニュー」が選択 されていな かった ら選択する .ま た ,「 全項 目自動表示」が選択 してあれば選択 をはず し てお く .こ れが選択 してあると ,見 出 し語 をテキス トファイルに取 り出すの に不要な画面表示のために時間 を取 られることになるし ,場 合 によっては
,扱 う量が許容範囲を越 えるため ,「 表示可能 な行数 を越 えました .超 過行 を無 視 します」 とい う表示がでて ,見 出 し語 をすべて取 り出す という目的が達成 で きないので要注意である .そ れか ら 「編集 ファイル名」には保存 したいディ ンク トリ名 ぐらいまでは書いておいたほうがあ とで入力する手間が はぶけて 便利 である。
b。
電子 ブックを CD― ROMド ライブに入れ ,「 文献」を選ぶ .「 外字 の扱 い」を
「 16進 表示」に設定する .こ れ をしない と ,テ キス トファイルに出力する際 に ドイツ語の特殊文字が奇妙 な文字 に変換 されて しまうためである .「 外字 の 扱 い」が表示 されない場合 は 「上級者 メニ ュー」になっていないので ,メ ニュー バーの「 その他」か ら「環境設定」―「高度な設定」で「上級者メニュー」に 設定 しなおす
.C.検 索の準備 は終わったので ,い よい よ検索す る。 ワイル ドカー ドのアステ リスクを使 って ,「
*a」または ,「 a*」 を「索引検索」で検索 させ る .ア ステ
スクをどち らに付 けるかは最初 に選択 して しまお う .「
*a」な ら aで 終わ る見
出 し語 を逆引 き辞典 の配列で ,「 a*」 な ら aで 始 まる見出 し語がふつ うの辞書
の順番で取 り出す ことになるのだが ,ど ち らを選 んで も基本的には見出 し語
はすべて取 り出せ るし ,見 出 し語 さえ取 り出 して しまえば ,後 述す るように
逆引 き配列 にすることはどち らの場合 も可能である .逆 引 き配列で見出 し語
を取 り出す場合 は ,DDwinの 設定で「高度 な設定」の「該当 リス トの ソー ト」
のチェックを外 してお こう .こ の方法で取 り出 した見 出 し語 データを copy や catで 順番 につな ぐだけでひ とつの電子 ブック版辞書か らなら逆引 き辞典 がつ くれ る .し か し ,複 数の電子 ブ ック版辞書の見出 し語 を結合 して編集す る場合 には次節で述べ る方法で見出 し語の整理や配列の変換が必要である
.「候補表示二選択エ リア」を見ているとす こし時間がかかるが ,そ の うちに見 出 し語が連続 して表示 され る .見 出 し語が「候補表示―選択エ リア」に表示 さ れた らこのエ リアの下部 にある「全て」 というボタンを押 して ,検 索 された 見出 し語 をすべて選択状態 にする .そ れか ら ,メ ニューバーの「編集」か ら
「エディター起動」 を選択する .次 に出て くる表示で出力 したいファイル名 を指定 して ,「 該当項 目見出 しのみ」をチェックす る .そ して ,「 OKボ タン」
を押せ ば ,あ とは DDwinが 登録 してあるエディタを使 って自動的 にテキス トファイルに見出 し語 を出力 して くれ る。エディタは Windowsに 付属の も
のでは大 きなファイルが扱 えないので ,巨 大 ファイルで も扱 える別 のテキス トエディタを用意 してお く必要がある。なお ,「 索引検索」でな く 「全文検索」
を利用 して も見出 し語が取 り出せ る場合があるP
d。
「
*b」か ら「
*z」まで (c)の 作業 を繰 り返す .電 子 ブ ック版 のクラウン独和 辞典 で は ウム ラウ トは指定 しな くて も検 索 で きるよ うになってい るので
「
*ё」 な どとする必要 はない .ま たエスツェッ トで終わ る語 も「
*s」で検索 す ることになっている . ドイツで発売 された電子 ブ ック版 ドイツ語辞典では ウムラウ トやエスツェッ トを入力する必要があるが,日 本語版 WindOws 3.1 ではコー ド入力することになる。なお ,電 子 ブ ックでは大文字 と小文字 は内 部では無視 して しまうため ,検 索の際 にはどち らを使 って も結果 は同 じであ る。 ドイツ語のすべての特殊文字が このコー ド入力で うまく行 くか どうか私 自身 は確認 していない .私 自身 は英語版 WindOws 3.1で 入力 してい る
.DDwinは 表示 をすべて英語 に切 り換 えることがで き ,そ の まま英語版 Win̲
dowsで 使用す ることがで きる
.e。
(c)と (d)の 作業でつ くった 26個 の ファイル を連結す る .DOSの copyコ
マ ン ドで これがで きる .26個 のファイル を daten.a,daten.b,datenocと い う ふうにつくっていれば ,「 copy daten.*daten.dat」 とすれば ,最 終的
'こ
26個 のファイ 71/が 結合され ,daten.datと いうファイルができあがる。
―…281‑―
ここではテキス トファイル版 の逆引 き辞典 の作成 との関連で DDwinに よる 見出 し語の抽出法 について述べたが ,上 記の (c)の 工程で 「該当項 目見出 しのみ」
のチェックをしなけれ ば辞書 のすべてがテキス トファイル として取 り出せ る
(た だ し ,発 音記号 な どは文字化 けして しまう
)。私 は実際 Dudenの Univer‐
salwё rterbuchで そ うしている . こうい う使 い方がで きるのは DD宙 nの おか げであ り ,現 時点では DD宙 n以 外で はち ょつ と実現が難 しいので はないか と 思われるP
l.2取 り出 した見出 し語の後処理
[1.1]の 作業でで きた ファイル を完全な一行一語 の語彙 リス トにす るには
,まだかな りの加工が必要だ .と はいえ ,作 業 の大部分 はエディタソフ トの一括 置 き換 えや一括削除 をつか えばよいので ,そ れほ どの作業ではない .ま ず ,見
出 し語以外の不要な記号 を削除 しなければな らない .ク ラウン独和辞典 の例だ と最重要語の前 にはアステ リスクふたつが縦 に並んでいる外字が ,重 要語 には 上付 きのアステ リスクひ とつが付加 されている .「 外字 の扱い」が「 16進 表示」
にしてあればテキス トファイル中では [a424]と [a423]と なって出力 されて い るはずだ。 [a424]や [a423]を エディタなどで一括削除すればよい .ま た
,綴 りの分 け方 を示すのにナカグロがあるか ら ,こ れ も一括で削除 .ま た ,複 合 語内部 の要素間の切れ 目を示す語構成表示のための記号 としてイコール記号 を 波線 にした ような もの ([a16f])が 使われているが ,こ れ も下括削除 した .そ
れか ら ,見 出 し語 に続 けて解説文の一部 の記号な どが出力 され るケース もあっ たが ,こ れ も削除である .分 離動詞 の前つづ りと動詞本体 のあいだにはいる下 向 きの矢印 ([a171])も 削除 した eク ラウン独和辞典の見出 し語データの整理 で一番面倒だったのが,複数の見出 し語が一行 に出力 された ものの処理である
.た とえば Nesselausschlag,Nesselfieber,Nesselsuchtは ひ とつの見 出 しとし て扱われているのである .基 本的には これを 3行 に切 り分 ければいいのだが
,やっかいなのは , 3語 がひ とつの見出 しとして扱われていることで DDwinの
見出 し語表示限界 (電 子 ブックプレーヤで も表示 しきれない場合がある )を 越 え て しまうようで見 出 し語全体 が取 り出せ ない ことで あ る。 3番 め の Nessel‐
suchtで は実際 に出力 されたの は Nだ けだった。 こうい う場合 は出力 され な
かった語が何であるか もう一度個別 に検索 して確認す る作業が必要になって
,かな り時間 をとられる .ま た ,そ もそ も見出 し語だけを取 り出す ことがで きな
いような電子ブックもある .見 出 し語 といつ しょに解説文の一部が出力 されて
しまうのだ。 こうい う電子 ブックか ら見出 し語だけを取 り出 したい場合 は ,解
説文 の一部 を取 り除 く作業が必要になる
.ここまでの作業でかな り整理 されて きているが ,さ らに ,次 の方針で一行一 語の語彙 リス トの編集 を続 けた。
a。
()は 使わない
.b。
一行一語 にして行末のスペースは削除す る
.Selbstbestimmung(srecht)の ような書 き方 は人間が直接読 むには問題 ないが
,パ ソコンで検 索 す る こ とを考 え る と ,Selbstbestirrmungと Selbstbestim‐
mungsrechtの 2語 にしなければな らない。単語のあ とにスペースが ある場合 は ,こ れがあると ,grepな どで検索す るのが面倒 になる .た とえば ,合 成語 の 語中に出て くる ungを 検索 しようとして「 ..*ung"*」 とい う正規表現 ([3.4],
[4.1]参 照 )を 使 うと ,ス ペース も文字の一種 と見なされ
,「Begegnungス ペー ス」のような ものが意 に反 して検索 されて しまう .ま た ,語 末 にスペースがあ る と ,逆 引 き配列 にするために revを 使 って行 を反転 させたあ とsortす るとス ペース もコンピュータの処理 としては文字であるか ら ,こ ちらの期待通 りの配 列 にな らない
.なお ,人 間の行 うことは どうして も間違いが入 り込 む可能性がある .電 子 ブ ッ ク版 の辞書 は中身が紙 と違 って見 えないだ けに ,妙 な間違 いが編集過程 で は いった りして も十分 にチェックされずにその まま出版 されてしまう危険性が大 きいようだ .た とえば ,drawerが drOwer,interlineが inOerlineに なっていた り ,Dominanteや Konstatiemngが Domi nanteや Konsta tie― gと 出力 さ れた りす る電子ブックがあった。 この種の明 らかな間違いは気付いた範囲で直 した .ち ょっ と驚かされたのは ,電 子 ブック版の Hermarm Paul:Deutsches Wё rterbuchの 不具合で ,こ の辞書では索引情報のつ け方 に ミスがあった ょぅ で ,前 方一致検索では検索で きない語がかな りあった .た とえば ,ふ つ うの前 方二致検索では seinは検索で きず ,後 方一致検索でない と検索で きなかった
.したがって ,こ の辞書では前方一致検索ではすべての見出 し語 は取 り出せない。
ハイフンについて も問題 はある .ま ず ,出 力 されたハイフンは形式が不統一だっ た り ,キ ーボー ドか ら直接入力で きない ものだった りした .こ れはすべてキー ボー ドにあるふつ うのハイフンに一括置 き換 えした .さ らに ,ハ イフンでは
,単語が行末 に来たためにはいったハイフンも Al― tersmhegeldの ように出力 さ れて しまった。 こうい うハイフンは面倒で も手作業で削除 していかなければな
‑283‑
らない .編 集 方針 に よって はさ らに各種 の削除が必要 にな るが ,こ れ につ いて は後 で述 べ る。
2.― 行一語 の語彙 リス トを逆引 き配列 にす る
revと い うテキス ト処理 ツールが あ る .UNIXの 種類 に よって は最初 か ら備 わ つてい るコマ ン ドで あ るが ,MS― DOS用 として提供 され て い る もの は 1種
類 しか発見 で きなか ったり まあ ,後 で述 べ るように ,revの 機能 は awkで も可 能 だか ら revが 必要不可欠 とい うわ けで もない e revは どうい うツール か とい う と ,テ キス トフ ァイルの各行 の内容 を反転 す るツールで あ る .― 行 一語 の語 彙 リス トを逆 引 き配列 にす るには ,基 本 的 には revと sortを 組 み合 わせ るだ け で よい。例 として sportler.0と い う名前 のテキス トデー タ を とりあげ よう.内 容 は次 の 7行 とす る .様 々 な Sportlerが ふ つ うの辞 書 と同 じ順番 で並 んでい る
.各種 の Sportlerの あいだ には無関係 の語 (Deutsch,Rathaus,Splitter)が わ ざ と入れて あ る
.Berufsspoltler Deutsch Profisportler Rathaus Spitzensportler Splitter
Sportler
revで sportler.0の 内容 を書 きか えて sportler.1と い うフ ァイル に保存 す る
.rev sportler.0 > sportler。
1sportler.1の 内容 は次 の ようにな る。
reltropssfureB
hcstueD
reltropsiforP
suahtaR
reltropsneztipS
rettilpS reltropS
ここで sportler.1の 各行 をソー トす る と ,行 の順番 が入 れ代 わ る .語 頭 か らソー トしてい くこ とにな るが,本来 は語末 で あ る ものが語頭 に来 てい るわ けだか ら
,語 末 の文字 か ら語頭 にか けて語彙 を ソー トしてい くとい う意味 にな る。 sortは 各種 の ものが あって ,使 い方 も多少 ことな るのだが ,私 の使 った もので は次 の よ うにキー ボー ドか ら打 ち込 む .な お , ドイ ツ語 で逆 引 き辞典 をつ くる場合 に は大文字 と小文字 の区別 を しないいわ ゆ る辞書順 の ソー トが どうして も必要 な のだが ,こ の例 で は とりあ えず無視 してい る
.sort sportler。 1>s,Ortler.2
sportler.2の 内容 は次 の ようにな る
.hcstueD reltropS reltropsiforP reltropsneztipS reltropssfureB rettilpS
suahtaR
これ をあ らた めて revで 反転 させ る と配列 を除 けば元 どお りの単語 に戻 って
,逆 引 き配列 の語彙 リス トが完成 す る
.rev sportler.2 > sportler。 3 sportler.3の 内容 は
,Deutsch i
Sportler Profisportler Spitzensportler Berufssportler Splitter Rathaus
― ‑285‑―
の ようになっていて ,各 種 の Sportlerが な らんで出現す る語尾部分 のそろった 逆引 き配列 になっていることが確認で きる
.ここで述べた方法で語彙 リス トを逆引 き配列す るには ,行 の内容 を反転 させ る作業が どうして も必要である.し か し ,revは 一般 に普及 しているツール とは 言い難い .UNIXで もシステムによっては revコ マ ン ドがない し ,MS― DOS上
で使 える revが 入手で きない場合 もあるだろう .そ うい う場合 は ,上 ですでに
述べた ように awkで revの 機能が実現で きる .R.Stallman他 (1993,p.109) や植村・ 富永 (1993,pp.119‑120)に スク リプ トがある .私 もつ くってみたが
,ご く短 いスクリプ トで実現で きる
.#REV.AWK
{for(i=length();i>0;i一
)printf"%s",Substr($0,i,1) print'"'
}
sportler.0の 各行 の内容 を反転 させ ,そ の結果 を sportler.1に 保存 す るには次 のようにす る
.awk― f rev.awk sportler.0 > sportler。
1revや rev.awkは テキス トファイルの語彙 リス トな らなんで も適用可能 で あ る .要 は一行一語の語彙 リス トを入手す ることであるが ,電 子 ブ ック版の辞書 か らな ら [1]で 述べた ように DDwinを 利用 して見出 し語だけを取 り出す こと がで きるし ,語 学教材 を対象に使用語彙 を逆引 き配列 にす る ぐらいな ら量 は多
くないので手作業で入力するの もいいだろう .ま た,ス キャナ と OCRソ フ トで まずテキス トを入力 して ,そ れ を一行一語の語彙 リス トに wordな どのツール を使 って処理す る方法 もある .ま た ,将 来的 には一行一語のテキス トフアイル の語彙 リス トが流通す る可能性 もあるだろう .実 際,イ ンターネ ッ トを探す と
,英語の語彙 リス トな ら未整理だ と断 りのついている語彙 リス トであるが ,現 在 で も 10万 語程度の ものは入手で きるようだ
.ツールの revに して も awkス ク リプ ト rev.awkに して も行全体 を反転す る
仕組 みになっていて ,行 の第 1フ ィール ドだけ反転 させたい とい う場合 には使
えない .し か し ,た とえば第 2フ ィール ド以降に説明な どの付加情報のはいっ
ている語彙 リス トを逆引 き配列 にしたい場合 もあるだろう .こ うい う場合 には revで はど
.うしようもないが ,awkな らスク リプ トに手 を加 えることで対応で
きる
.#REV2.AWK(各 ンコー ドの第 1フ ィール ドだけ反転 させる
)(nagasa=length($1) for(i=nagasa;i>0;i―
)printf"%s",substr($1,i,1) print substr($0,nagasa+1)
)
た とえば次のような付加情報のはいった語彙 リス トのファイルがあるとする
.ファイルの名前は file.0と しておこう
.Ferienhaus Nr.1 Ferienwohnung Nr.2 Hauswesen Nr.3 Sorrmerhaus Nr.4 Sommerwohnung Nr.5 Wohnungswesen Nr.6
ふつうの辞書の順序にならんでおり ,語 頭の部分が共通 している語 も混 じって いる .付 加情報の例 として番号を書 き加 えてみた.さ て ,rev2.awkを つかって 逆引き配列に並べかえるには次のように打ち込む
.awk― f rev2.awk file.0 1 sortl awk― f rev2.awk>file。 1 file.1と い う新 しい フ ァイル が で き るが ,そ の 内容 は
,Ferienwohnung Nr.2 Sor― erwOhnung Nr.5 Wohnungswesen Nr.6 Hauswesen Nr.3 Ferienhaus Nr.1 Sonllnerhaus Nr.4
とな っ て い て ,語 彙 の 出 だ しはふ ぞ ろい に な っ て し ま った が ,後 半 部 が そ ろ っ
― ‑287‑―
た並び方 にふたつずつなっている .要 す るに ,逆 引 き辞典の配列 に正 し く変換 されている .行 の後半 も正 しく移動 していることは数字の対応 を見ればあきら かだろう。た とえば Nr.1が Ferienhausだ とい う事実 は変化 を受 けていない
.付加情報つきの語彙 リス トが逆引 き配列 にで きれば どんなメ リッ トがあるだ ろうか .逆 引 き辞典 の作成 と直接関係 はないが ,具 体例 をひ とつあげてお こう
.動植物名の一部 に形容詞が使われているものがあるが ,こ れ を整理 してみた こ
とがある .ま ず ,Harry Garms(1969):Pflanzen und Tiere Europaso Mmchen
(dtv)。
の索引か ら形容詞つ きの動植物名 をすべてテキス トデータ として入力 し
た .入 力形式 は形容詞の活用 を とった代表形 をまずあげ ,そ れか ら形容詞つ き
の動植物名 とした .ウ ムラウ トは ¥記 号 を aゃ oゃ uの 前 に付加 し ,エ スツェッ トも Sの 前 に ¥記 号 を付加す ることであ らわ している
.こんなふ うに入力 した行が えんえん と続 くわ けだが ,た とえば色彩の rotに 着 目して ,rOt― で始 まる合成形容詞の例が知 りたい とす る .こ れ はフアイル を単純 に sortで 並べかえればよい
.schwarz abgestutzt achtfYuYsig
rotadrig rotbauchig rotbeerig rotbraun
orangerot fleischrot ziegelrot ziegelrot rostrot
Schwarzer AaskYafer Abgestut zte Klaffmuschel AchtfYuYsige Zweikiemer
Rotadrige Singzikade Rotbauchige Unke Rotbeerige ZaunrYube Rotbraunes Kopfried
Orangerotes Habichtskraut Fleischrotes LYausekraut Ziegelroter RiYspilz Ziegelr oter
Schl angenstern Rostrote Segge
rotgeb¥andert Rotgeb¥anderter TotengrYaber
こうい う行が簡単 に見つか る .そ れでは ,今 度 は ,一 rOtで 終わ る合成形容詞が 知 りたい場合 はどうすればよいか .行 の先頭 にある形容詞 を逆引 き配列 にすれ
ばよい .rev2.awkを 不 U用 してそういうファイルをつ くると
,rostrot blutrot blutrot blutrot
Rostrote Uferschnepfe Blutroter SchnellkYafer Blutroter Seeampfer Blutroter Storchschnabel こういう調査が簡単 にで きるわ けだP
逆引 き配列 は単語の逆順配列 と行の ソー トとい うふたつの組 み合わせで可能 になるわ けだが ,ソ ー トについてはまだ触れていない問題点がある
ca。
大 きなファイルで もソー トで きるか ?
b.辞 書順の ソー トが可能か ?
MS― DOSに もsort.exeが ついている。しか し ,こ れだ とち ょっ と大 きなテキス トファイルが もう扱 えない .扱 えるファイルの大 きさはマニ ュアルで 64 KBま で となっている .実 際に どの ぐらいの大 きさの語彙 リス トなら扱 えるか しらべ てみた .― 行一語 の語彙 リス トで確認す る と 7500行 程度 で もうソ‐ 卜不能 に なった。 これでは とて もテキス トファイル版逆引 き辞典 の編集 には使 えない
.さいわい,sortは MS― DOSで 使 えるものが多 く出回っていて,大 きなファイル が扱 えるもの も多い。テキス トファイル版逆引 き辞典の作成では ,既 存の電子 ブックの見 出 し語 をもとにつ くるな らば―行一語 のテキス トファイルが 20万 行程度扱 えればよい .た だ ,辞 書順の ソー トも可能でない と困 る .本 来 ,sortは コー ド順 に行 を並びかえるもの らしいのだが ,こ のコー ド順 というのは辞書の 順番 と大文字 と小文字の区別 という点が大 きく異なる .コ ー ド番号 は大文字の ほ うがイヽさ く ,ABC...XYZabc...xyzと い う順番である .だ か ら ,こ の順番だ と
,すべての大文字で始 まる語が先で ,そ の後 に小文字で始 まる語が続 くことにな る。名詞 を大文字で書 くドイツ語では とて も容認で きない順番 になって しまう
.例 をあげて説明 してお こう
.essen Essen ewig Ewigkeit Floskel Flo¥s Flosse
‑289‑
鈎 ︒
e
Wig
e
これ は辞 書 の順 番 にな らべた ものだ .UNIXの sortを も とにつ くられ ,UNIX‐
like Toolsと い う名 前 で配布 され て い る sort.exeで 上 の 内容 の フ ァイル をオ プシ ョンをつ けず に ソー トした結果 が次 の もので あ る .大 文字 で始 まる Flosse が小文字 で始 まる essenの 前 に来 て い る
.Essen Ewigkeit Flo¥s Floskel Flosse
今 度 は ,大 文字 と小文字 を区別 しない― fオ プ シ ョンをつ けて ソー トしてみ る
.Essen essen ewlg Ewigkeit Floskel Flosse Flo¥s
となって,辞 書の順番 に近いが ,Essenが essenの 前 に来ている点が もとの辞書
の順番 とことなる .つ まり ,大 文字 と小文字の区別 をしないが同順位 になる場
合 は大文字 を小文字 にを優先 させているわ けだ .ま た ,エ スツェッ トを ¥sで あ
らわ していることもあって この順番 も本来の順番か らずれて しまうが ,こ れは
やむを得ない .な お ,私 がテキス トファイル版逆引 き辞典の編集 に利用 したの
は xsortと い う名称 の ソー ト ・ツールだが ,こ れだ と ,essenを Essenの 前 に出
す ソー トが可能だ
.3.テ キス トファイル版逆引 き辞典 をつ くる
編集作業の諸問題 を [3.1]か ら [3.4]で 述べ る
.3。
1結 合 した複数データの整理
辞書―■の見出し語データで も同音語 ,正 確 に言 えは ,同 字語がかな りある
.これをこの ままにしてお くと ,コ ンピュータで各種のテキス ト処理する場合 に 妨 げになる .現 状では同一の見出 し語 はひ とつだけにしてお くのが よさそうで ある .複 数の辞書か らの見出 し語 データを copyや catで 結合 した場合 ,当 然
,かな りの部分 は見出 し語が重複 しているはずだ .数 万か ら数十万 あるファイル で重複行 を手作業で削除 してい くことはとて もできない .こ ういうときのため に汎用のテキス ト処理 ツール sortと urliqが 使 える
.sort[フ ァイル ]l uniq>[新 ファイル ]
UNIXの sortや これの移植版だった ら一 uォ プションがあって ,こ れには uniq の複数の同一行 を一行 にまとめる機能が含 まれているか ら
sort― u[フ ァイル ]>[新 ファイル ]
とすればよい
.3.2 Umlautな どの特殊文字の処理
ウムラウ トやエスツェッ トについては ,基 本的 には日本独文学会 データベー ス委員会の方法で「 ドイツ語特殊文字 は ,¥記 号 を当該文字の直前 に付加す る [例 :¥A;¥a;¥s:¥0:¥0;¥u;¥u]」 とい うエスケイプ 2文 字方式 を採
用 した .た だ し ,こ の方式 には問題 もあるので ,研 究内容 によっては ,未 使用 記号方式で もファイル をつ くって利用す ることにした
.エスケイプ 2文 字方式の問題点 は ,語 彙の文字数 を問題 にした りする場合 は 本来 1字 の ものを 2字 で表現 しているため不正確 になるか ,処 理が複雑 になっ て しまうとい うことである .ま た ,特 定 の文字や文字列の位置 を文字数でかぞ えるような場合 にもエスケイプ文字の ¥記 号な どの分だけ字数が増 え位置 もず れ る .た とえば ,Flu¥sは 本 当は 4文 字 なのに ¥の せいで 5文 字 になって しま う .WYaschekOrbに は ascheな ど本当は含 まれていないのに含 まれているこ
‑291‑
とになってしまう .Fl¥acheの chは aに 後続 しているわけではないのに後続 していることになる .¥Argerの 1字 めは本来大文字なのにこの書 き方では 2 文字めが大文字である
.エスケイプ 2文 字方式の問題点のほとんどは ,特 殊文字 1字 を別の未使用の 記号 1字 に割 り当てれば解決する .利 用できる記号は語彙 リス ト中に未使用の 記号でた とえば「 ¥s」 のかわ りに「
*」を「 ¥a」 のかわ りに「 +」 を「 ¥A」 の かわ りに「 #」 を利用すればよい (sedの スクリプ トが読めるひとは [3.4]の 記 述を読めば私が未使用記号方式で利用 した記号の詳細が分かる ).未 使用記号方 式で特殊文字を記述すると ,可 読性が低 く ,人 間が読むには適 していないが
,パ ソコンで処理する際にだけ使 うことにすればよい .ま た ,「 ¥a」 のかわ りに
「
*」を使 うような未使用記号方式には可読性以外にもデメリットがあるので まとめておこう
.a.未 使用記号の数は限られているから ,表 現できる特殊文字が少ない。
b.ソ ー トするとその部分がふつうの辞書の順序 とずれてしまう
.C.記 号を使 うので大文字 と小文字の変換ができな くなる。
(c)に ついて補足すると,ド イツ語では名詞を大文字で書 くので ,大 文字 と小文 字の変換 という作業が必要になることがけつこうありそうだ .た とえば ,文 字 の頻度を出したいのだが ,大 文字 と小文字を区別 した くないということもある だろう .こ ういうときには未使用記号方式は無力である .大 文字 と小文字の変 換をして くれるツールは多い .し かし ,awkの tolowerO関 数や toupperO関 数 や ddの conv=lcaseや conv=ucaseで 大文字 と Jヽ 文字の変換が可能なのはア ルフアベ ットだけである。 「 ¥a」 のかわ りに「 +」 と書いてしまえば ,「 十」は 大文字でも小文字でもないから変換の対象にはならない。
さて ,エ スケイプ 2文 字方式でウムラウ トなどの特殊文字を記述する際には
,ドイツ語以外の特殊文字についても置 き換えのルールを定める必要がある . ド イツ語の逆引き辞典をつ くる場合に限つても ,見 出し語のなかにはフランス語 やチェコ語のものを始めかなり多 くの外来語などが混 じっていて ,そ れぞれの 国の特殊文字が使われていることもあるからだ .デ ータそのものから除外 して しまうことも考えたが ,Cafё のように重要な語彙 も混 じっているからすべて と
いうわけ
'こ
もいかない ,そ れで ,一 応 ,デ ‐タベース委員会方式を拡張した置
き換 えのルールを定 めることにした .な お ,中 には ドイツ語の辞典 には見 られ
ないスペ イン語の文字 も混 じつているが ,こ れ は英語 (米 語 )の 逆引 き辞典 を
編集する際に頻繁に出て くるスペイン語の文字に対応 したものである
.(1)iの 上 に ¨
がついた文字 (1)… ………¥i
(2)eの 上 に ¨
がついた文字
(ё)・ ………・。 「…………・ ・ ¥e (3)セ ディーユ (小 文字 )(c)… ……… ¥C (4)セ ディーユ (大 文字 )(c)・ ………・ ・ ¥C
(5)oと eの 合字 (oe) ……… ……… &o (6)0と Eの 合字 (CE)… …… ¨……¨… "… ………¨
"。&0 (7)nに 波線
(〜)が つ いた文字 (a)… … ……… ¥n (8)aに 右下 が りのア クサ ン・ グ ラー ヴ (a)・ …………・ ・ >a (9)aに 左 下が りのア クサ ン・ テギ ュ (a)・ ……… <a 00 eに 右下がりのアクサン・ グラーヴ
(ё)・ …………・ ・ >e CD eに 左下がりのアクサン・ テギュ (6)・ ………・ ・ <e O uに 右下がりのアクサン・ グラーヴ (a)Ⅲ ……… >u
aD uに 左下がりのアクサン・ テギュ
(■)・ ……… <u aO aに アクサン・ スィルコンフンックス (a)… ……… ^a
C51 eに アクサン・ スィルコンフレックス (O)… ……… ^e
aO iに アクサン 0ス ィルコンフンックス (1)… …………
^il171 oに ア クサ ン・ ス ィル コ ン フ レ ックス (0)… … … …
A。00 uに アクサン・ スィルコンフレックス (a)… ……… ^u a9 cに ハーチェク に )… ……… &c 00 Cに ハーチェク (C)… ……… &C
3.3見 出 し語 として採用する語および語形
すでに一行一語の語彙 リス トという形式 と行末にはスペースを置かないとい う点 ,ま た ,語 彙を記載する際には括弧は使わずに異形は 2語 として記載する こと ,見 出し語以外のデータ (重 要語の印 ,不 規則変化動詞の印 ,分 離動詞の 分離線 ,分 綴の印など )は 削除することを [1.2]の ところで述べた .編 集作業 をさらにすすめるには ,最 終的に採用する見出し語を決めて ,そ れに応 じて削 除や書き換 えが必要である .ど ういう研究に利用するかでテキス トファイル版 逆引き辞典に採用する見出し語は変わって くるはずだが ,私 自身は一応次のよ
うな編集方針をとにか く決めた
.― ‑293‑―
a.同 音意義語の配慮 はしない .し たが って ,一 語形 は一度だけ記載す る .分
離動詞 と非分離動詞の区別 もしない
.b.見 出 し語 は単語だけとす る .し たが って ,文 字や略語や記号や単位 な どは 採用 しない .そ れに接頭辞や接尾辞 も載せない .ま た , 2語 以上か らなる 表現 (た とえば諺 )も 削除する .2語 以上 の ものはフィール ド単位でテキス ト処理する際に例外的な扱いが必要 になる .定 冠詞つ きで名詞が見出 し語 になっている場合 は定冠詞 を削除す る。
C.動 詞 は不定詞 しか載せない .過 去分詞 は形容詞化 した ものだけ残す。
d.形 容詞 は活用語尾の付かない形 しか載せない
.e.地 名や国名な どの固有名詞 は載せ る。 Sri Lankaや New Yorkの ように 2 語か らで きている地名や国名 は削除 した ((b)を 参照 ).人 名 は家族名 は載 せない ことにした。Lisztや Nietzscheや Lukacsな どの有名人 の名前 は 辞書の見出 し語 になっていた りす るが , ドイツ語の語彙 として残す ことに は問題があると判断 したか らだ .た だ し ,Monikaや Klausな どの個人名 は削除 しなかった。
一語形 は一度だ け記載す る とい うのは ,動 詞 の seinと 所有代名詞の seinも 区 別 しない とい うことで問題のあるや り方であるが ,テ キス ト処理 を手軽 に行 う には必要である .[3.1]で 述べた miqを つかった重複行 の処理 などで もこの前 提があってはじめて可能 になる
.今の ところまだ編集上の方針が決 め られな くて ,元 のデータをその ままにし ている点 もある
.a.複 数形 の見出 し語 をどうす るか ?
b。
冠詞類や代名詞の語形 をすべて採用するか どうか ?
C.形 容詞型変化の名詞の見出 し語 としての語形 をどうするか ?
d.序 数詞の見出 し語 としての語形 をどうするか ?
e.形 容詞の比較級や最上級の見出 し語 を削除するか どうか ?
f.数 字や分数や回数 をどれだけ載せ るか ?
こういう問題がなかなかやっかいだ とい うことを複数形の見出し語で考 えてお
こう .複 数形 しかない Eltemの ような場合 には複数形の見出 し語 を採用するし
かない .そ れでは単数形がないわけではないが ,ふ つ うは複数形が使われる語
についてはどうす るべ きだろうか .Streitigkeitと Streitigkeitenの ような場合
である .ク ラウン独和辞典では「ふつ う複数で」 としなが らも見出し語 に採用 しているのは単数形だ .し か し ,辞 典 によってはこういう場合 に見出 し語 とし て複数形 を採用 しているもの もある .ま た ,ク ラウン独和辞典 は学習辞典だか ら重要語 については Hausbrの ように複数形 も見出 し語 としているものがかな りあるようだ .か りに複数形の扱いが決 まった として も ,書 き足すの も削除す るの も辞書全体 を手作業で確認 しなが ら行 うことにな り ,た いへんな作業 とな る
.3.4 sedに よる一括削除 ,一 括変換
4)編集作業 においては一定パターンの一括削除を繰 り返 し行 うことが多い .肖 J
除する リス トをつ くれば繰 り返 し活用できる sedが 便不 Uで ある .ま た ,sedを 利 用することで変換 と復元 とい う作業 を自動化することもで きる .一 括削除の例 として接頭辞 と接尾辞の削除の例 をあげてお こう .接 頭辞や接尾辞 の行 をすべ て削除するスク リプ トは次の 2行 でいい
./^―
/d
/― $/d
/^―
/や /― $/は 妙な記号の羅列に見えるかもしれないが ,正 規表現 と言われる書
き方 ([4.1]参 照 )で 汎用性があり ,覚 えてしまえばぅ他の awkや grepな ど でも同じように使える。上の 2行 のスクリプ トの内容は ,「 行頭にハイフンがあ る行 と行末にハイフンがある行を削除しなさい」 という意味になっている .こ れはsedに よる一括削除が非常にうまく行 く場合だが ,場 合によっては削除 リ ス トの作成にかな りの作業を覚悟 しなければならない .電 子ブック版クラウン 独和辞典では紙の辞典なら巻末についている動詞変化形索引がぶつうの見出し 語 といっしょに取 り出されたため動詞の変化形の削除を sedで おこなった .こ の場合は数千語を手作業で入力 して削除用スクリプ トを作ることになった .し かし ,こ の場合でも ,他 の電子ブック版の辞書から取り出したデータに対して
もこのスク リプ トが使 えるし ,失 敗があって元のデータか ら編集作業 をや り直 したい場合 も大助か りである
.[3.2]で 述べたようにウムラウ トなどの特殊文字は ,¥な どの記号をつかっ て基本的にはェスヶィプ 2文 字方式であらわすことにしている .た だし ,語 彙 の文字数の調査などの場合は必要に応 じて未使用記号方式で特殊文字を表わす ファイルを不 U用 するということも述べた .エ スツェットならエスケィプ 2文 字
― ‑295‑―
方式では「 ¥s」 だが ,未 使用記号方式で は「ホ 」ひ とつであ らわ している .テ キ
ス トファイル版辞書の編集作業では ,ふ たつのフアイルで別々に編集作業 をす すめるとい うのは効率的で はない。だか ら ,編 集作業な どはエスケイプ 2文 字 方式のフアイルに対 して行 い ,未 使用記号方式のファイルが必要な らエスケイ プ 2文 字方式のフアイル を変換 してつ くることにした .そ のため ,編 集の各段 階で くり返 しエスケイプ 2文 字方式か ら未使用記号方式 に変換する とい う作業 を行 なっている .sedな らこうい う一括変換 はスク リプ トをファイル に保存 し ておけるので便利である。 また ,未 使用記号方式のファイルで語彙の文字数の 処理 な どをしてその結果 に未使用記号方式の特殊文字が含 まれている場合 は
,その結果 を再 び見やすい ¥な どをつかったエスケイプ 2文 字方式の特殊文字 に 復元す ることもで きる .次 に私が実際 に変換 と復元の目的で使用 しているスク リプ トをあげる .実 際に使用するsedの スクリプ トは「 s〃
/g」の形式で一行に ひとつずつ書 くのだが ,そ れでは場所をとるので ,こ こでは 1行 に 4行 分を書 いてお くことにする
.a。
ェスヶィプ 2文 字方式の特殊文字を未使用記号方式に変換する
:s/¥¥s/1/g
s/¥¥0/%/g s/>e/)/g s/¥^a/:/g s/¥¥e/0/g s/¥^e/0/g s/&0/!/g
s/¥*/¥¥s/g s/%/警 0/g s/)/>e/g
s/:/^a/g
s/!/¥&0/g
s/<a/l/s
s/Y^ o/;/e
s/¥^i/0/g
s/近
Lc/0/g
s/>a/]/g s/¥¥c/@/g
s/¥^u/0/g s/&C/0/g
s/Y*o/$/s
s/ <e/ (/e s/Y*n/ - 19 s/*Yi/0/s s/>u/0/e s/&o/" /g
s/¥$ハ 合 Fo/g
s/(/<e/g s/=/¥¥n/g s/"/¥&o/g s/¥¥a/十 /g s/¥¥A/#/g
s/¥¥u/〜 /g S/¥¥U/̲/g
s/YYC/0/g S/<u/0/g
b.未 使用記号方式の特殊文字 を元 のエスケイプ 2文 字方式 に復元す る
:s/¥十 /YYa/g S/#/¥¥A/g
s/〜 /Y¥u/g S//¥¥U/g S/¥[/<a/g S/¥]/>a/g
s/;/^o/g s/@/¥¥c/g
復元するほうのスク リプ トの量が はるかに少 ないのは復元 をあきらめているも
のがかな りあるためである .大 文字 のセデ ィーユやハーチェクな どはエスケイ
プ 2文 字方式で記述す るには問題 はないが ,未 使用記号方式で別の記号 に割 り 当てるには記号が足 りない .そ れで ,頻 度 の少ない特殊文字 はすべて「
0」に 置 き換 えている .語 彙の文字数や文字位置 を問題 にす るような場合 ,こ れ らの 文字 自身が関係 しなければこれで十分である .し か し ,当 然 ,「
0」に置 き換 え て しまった ものは元の記号 には戻せない。 1か ら 9の 数字 に割 り当てることも 不可能ではないが ,場 合 によってはこの辺 りのアラビア数字が語彙の一部 に使 われていることもあって ,問 題がないわ けではない。特殊文字の変換および復 元スク リプ トで注意 しなければな らないのは ,よ く考 えて変換先の記号 を決 め ないと予想 しない結果になるということである .細 心の注意 と試行錯誤が必要 である .た とえば ,「 ¥u」 の変換先に「 &」 を指定 した りすると ,B¥ucherが まず B&cherに 変換され ,ス クリプ トの後ろのほうでふたたび「 &c」 が「
0」に変換されて ,BOherが 生成されてしまう .だ から ,置 き換え文字を決める際 には変換先 と変換元の両方を考慮にいれなければならない
.4.テ キス トファイル版逆引き辞典を利用する
現 時点 で編集 が一番 すすんで い るの は,ク ラウン独和辞典 と Langenscheidts Data Disc Wё rterbuch Frarlzё sischと Langenscheidts Eurowё rterbuch ltalienischの 3冊 の電 子 ブ ックか ら取 り出 した ドイ ツ語 の見 出 し語 データ を も とにつ くった テキス トフ ァイル版逆 引 き辞典 だ .一 応 jisho.datと 名付 けてお
こう .jisho.dat tま 今後整理がすすめばさらに小さくなる可能性があるが ,1996
年 4月 7日 現在で語数が 55464語 で平均文字数が 10.0337字 になっている .一
行一語のデータだから語数は行数であり ,各 行の文字数をどんどん足 していっ て ,そ の総和 を総行数で割れば平均文字数がでる .こ れを awkで ゃるなら awk"{all+=length($o)}END{print NR,al1/NR}''jisho.dat
とする .な お ,使 用する辞書ファイルは特殊文字がエスケイプ 2文 字方式では な く未使用記号方式のものでないと正確なデータは出せない。
さて,こ の節ではこの jisho.datを 実際に利用することを考えてみたい e一 般 の辞書の見出し語をもとに作成 しているので ,内 容的に偏 りのない語彙のはず で ,「 ドイツ語の語彙」の標本 として利用できることが期待できる .一 般的な利 用法は ,や はり ,検 索が主体であろう .テ キス トファイル版なら正規表現をつ かつた検索が可能で ,こ れについて [4.1]で 述べる .ま た ,awkに は検索機能
― ‑297‑―
だ けでな く ,集 計機能 もあ り ,こ れがテキス トファイル版 の語彙 リス トを利用 す る上で とて も役 に立 ちそうである .awkの 集計機能 については [4.2]で述べ る . ′
4。
1正 規表現 をつか った検索
語彙中に含 まれる特定の文字や形態素の調査 をしたいな らテキス トファイル の語彙 リス トはとて も役 に立つ .具 体例 をい くつかあげよう .弱 変化動詞で語 幹が tや dで 終わるものは ,文 法の学習では くり返 し登場 す る .現 在人称変化 で stや tの かわ りに estや etの 人称語尾 をとるし,過去分詞のつ くり方で も語 末 に tの かわ りに etを とる .ま た ,命 令形ではそれほ ど確かな規則性 はない よ うだが ,や は り ,語 幹 に eの ついた形が使われた りす る点が他の動詞 とことな る .授 業で こうい う動詞 の練習 を学生 とやっていて例 をさらにあげた くなるこ とがある。ところが ,こ れが意外 に難 しい .― tenや 一 denで 終わ る弱変化動詞 と 言 われ て も arbeitenや badenや betenや heiratenぐ らい はす ぐに思 い付 く が ,ほ かにはなかなか思いつかない .こ うい う場合 に役 に立つのが逆引 き辞典 であるが ,grepと テキス トデータな ら ,検 索 はもっ と容易で迅速 にで きる
.^[a―
z].ホ[dt]ens
妙 な記号 を使 った書 き方 をしているが (ウ ムラウ トな どの特殊文字の ことはこ こでは考慮 に入れていない ),こ れ は正規表現 という書 き方になっていて ,「 ア ル ファベ ッ トの小文字で始 まる行で denま た は tenで 終わ る行」 とい う意味で ある .正 規表現 とは ,な ぜ こんな命名 になるのか理解 に苦 しむが ,「 行 の先頭」
だ とか「行末」だ とか ,「 aか ら Zま での任意の 1文 字」だ とか「前の文字の O 回以上 の繰 り返 し」 といった通常の文字情報以外 の情報 を特殊記号であ らわ し た表記法の ことである .正 規表現 を使 えば正確 な検索が迅速 にで きる .た とえ ば ,行 末の enと 行頭の enや 行 中の enが 正規表現では区別で きて ,「 ens」 と書 けば englischの enや denkenの 最初 の enは 検索対象か ら除外 され る .grepで はこうい う正規表現が使 えるもの と使 えない ものがあるが ,使 えるものでは効 率的に一行一語の語彙 リス トか ら一 denあ るいは一 tenで 終わ る単語 を探 して く れ る。 もち ろん動詞以外 も検 索 の網 にひっかかって ,形 容詞 の irdenや
ver‐schiedenや 副詞の seltenや hintenな ども検索 されて しまうが ,こ れ はやむ を 得 ない
.ふつ うの検索では語頭か らあるいは語末か ら検索で きれば十分だか ら従来の
紙 の辞書や紙 の逆引 き辞典で も同 じように検索で きる .テ キス トファイルの語 彙 リス トとパ ソコン検索の利点 はそのスピー ドと検索結果が さらにパ ソコン上 で処理可能 とい う便利 さぐらいである .た だ し ,テ キス トファイル版の語彙 リ ス トな らでは という利用法 もある.頻度な どの集計 については次節で述べるが
,話 を検索 に限って も ,た とえば fё .111を 含 む語 をしらべ る とい うのは機械可読 のテキス トファイル版 な らではの利用法 と言 えよう .Erk(1985)の 語彙家族 (Wortfamilie)の イ ンデクスをしらべ ると ,fё rrnに 続 く要素 は約 25万 4千 語 のコーパスで igが 続 くもの しか見つかっていない .fё rmを 含 む異 な り語 は合 計 20語 で延べ 40語 が 25万 4千 語 にあったわ けだが ,す べて igが 後続 してい る .そ れでは ,fё rrnの あ とに ig以 外が くる単語 は存在 しないのだろうか.こ う い うことをしらべ ようと思 った ら ,紙 の辞書 は頼 りにな らない .な ぜな ら ,語
頭が fO・ 111と なっているとは限 らない し ,語 末 にして もig以 外があるか どうか しらべたいのだか ら辞書の引 きようがないわ けだ .テ キス トファイル版の辞書 な らこんな検索作業 はなんで もない .エ スケイプ 2文 字方式の辞書 ファイルな ら正規表現で「 [Ff]¥¥orm。 .*」 を使 うだけである .実 は「 ¥」 は正規表現 とし ては後続の特殊文字の意味 を打ち消す働 きのエスケイプ文字なので ,ウ ムラウ
トの「 ¥」 が この正規表現の「 ¥」 でない ということをあらわすために前者 を 後者で打 ち消 して「 ¥¥」 とい う書 き方になっている.jisho.datで これをしら べ ると ,や は り ,56語 中 52語 では igが 後続 していた .お mも し くは Fё rmで
igが 後続 してないのは ,fёrmlich, unfё .111lichと Fё .111lichkeitと Fё lllllich‐
keitenの 4語 だけだった .最 後の 2語 については [3.3]で 書いた ように ,元 に した 3冊 の辞書の中にどうや ら複数形の見出 し語 を採用 していた ものがあった ようである。整理中の もっ と大 きな辞書 ファイルで しらべてみて もig以 外が後 続す るものはほ とん どふ えない ようだ .あ とは
larlzettfёrmlichと Sandfё rrn…
chenぐ らいである
.また ,awkを 使 うな らさらに特殊 な検索 も可能で ,た とえば ,語 彙 ンヴェル の回文が簡単 にしらべ られ る .回 文 とい うのは必ず しも文の一種ではな く ,「 逆 さ
(さかさ
)」や「田植 え歌 (た うえうた
)」や「新聞紙 (し んぶん し
)」のよう な どち らか ら読んで も同 じ語や文 な どをさす もの らしい .ド イツ語では回文 に 相 当す る概 念 に Palindromが あ る .厳 密 に言 う と ,Palindromと い うの は Neger,Lager,Nebel,Beil,Eva,Amor,Koma,Drehの ように逆か ら読 む と男
Jの語 になるもの も指す ようだ。狭義の語彙 ンヴェルの Wort― Palindromは 逆か ら読んで も同一語で Ama,Otto,Madam,Reliefpfeilerな どが知 られている
.‑299‑
awkを 使 えば狭義 の Wort― Palindromを しらべ ることは容易 だ .[2]に ある rev.awkと い うスク リプ トを少 しい じればいい .要 す るに各行の単語 を反転 さ せ元の語 と同一であれば出力す るとい うスク リプ トを書 けばいいわけだ .た だ
し ,Arlnaと amAで は同 じにな らないか ら単語 を小文字 に変換 して比較 して いる
.#KAIBUNoAWK
{rev=''"
kOmOii=t01ower($0)
for(i=length($0);i>0;i― ―
)rev=rev sprintf("%s",Substr(komoii,i,1)) if(komOii==rev)
print$0
}
結果を見ると , 4文 字以上のものはやはりあまり見つからない。あまりに特殊 だ と思われる語を除 くと ,Ebbe,Kaiak,Renner,Rentner,Retter,Rotor, neben,nemen,neppen,stetsな どが出てきた
.4.2 awkに よる集計
awkは grepの ように文字や文字フリの検索にも使 えるし ,ス クリプ トを用意 すれば複数の検索が一括 しておこなえる .使 用した正規表現を出力するように しておけば ,後 から修正 した り ,点 検 した りするにも便不 Uで ある .さ らに ,awk
にはgrepや sedに はない計算機能があつて ,各 種の集計に使える .検 索 と集計
を組み合わせることも可能だが ,こ こでは ,awkに よる集計の例 として語彙の
長さ ,つ まり文字数についての統計 と文字頻度についての統計をとっておこう
.16文 字のところで結果を折 り畳んでいる以外は ,awkの 出力をそのまま使用 し
ている
.1文 字 2文 字 3文 字 4文 字 5文 字 6文 字 7文 字 8文 字 9文 字 10文 字 11文 字 12文 字 13文 字 14文 字 15文 字
2語 47語 369語 1297語 2485語 3970語 4549語 6008語 7259語 7110語 6123語 755語 3496語 2483冨 吾
857語
(0.004%) (0.085%) (0.665%) (2.338%) (4.480%) (7.158%) (8.202%) (10.832%) (13.088%) (12.819%) (11.040%) (8.573%) (6.303%) (4.477%) (3.348%)
16文 字 17文 字 18文 字 19文 字 20文 字 21文 字 22文 字 23文 字 24文 字 25文 字 26文 字 27文 字 28文 字 30文 字
1238言 吾 ( 849語 (
540語 (
375語 (
272語 (
160語 (
88語 (
43語 (
36語 (
21語
(16語 (
9語 (
5語 (
2語 (
2.232%) 1.531%)
0。
974%) 0.676%) 0.490%)
0。
288%) 0.159%) 0.078%) 0.065%) 0.038%) 0.029%) 0.016%) 0.009%) 0.004%)
これだけの作業をして くれるスクリプ トだが ,次 にあげるように意外に簡単で ある
.#MOJICHOU.AWK
(arr[lengthO]++
}
END(
for(i in arr)(
aver=arr[i]*100/NR
printf"%2d%‑5s%6d%s(%6.3f%%)¥n",i,"文 字 :",arr[i],"語 ",aver
}
}
mOiiChOu.awkを awkで 実行して,実行結果を mOiichOu.datに 保存するには
,awk― f moiichOu.awk jisho.dat l sort― n>moiichou.dat
とする。 「 l sort― n」 の部分は使用する awkの 種類によっては不要だが ,出 力 の各行を数字の順番で '並 べかえる意味がある
.― ‑301‑―
語彙 の文字数 について上の結果 を見てお くと ,55464語 のデータで最頻値 は 9文 字で 9文 字 の語彙 を中心 にすそ野が両側 に伸びている .平 均値 はこの節の 冒頭 に書 いたように 10文 字 ち ょっ とになる .最 大値が 30文 字で こち らのすそ 野のほうが最小値 1文 字 に伸 びるすそ野 よ りもやや長 くなっている。 9文 字 の 語彙 は最大派閥であるが ,こ れは辞書の見出 し語 としての話で ,通 常のテキス トで文字数 をしらべ ると ,一 番頻度が高 くなるのが 3文 字の語彙で , 3文 字 よ り文字数が大 き くなればなるほどそれにつれて頻度 は小 さ くなる。 100万 字強 17万 語弱の実用文例集 (詳 細 は後述 )で しらべた結果では ,30文 字の語彙 (10 語で 0.006%)ま で しらべて 9文 字の語彙が 8文 字 の語彙 よ りも頻度がやや高 くなる他 は文字数が増大す るにつれ頻度が例外な く減少 している .英 語の結果 が長尾 (1983,p.25)に のっているが ,一 番頻度が高いのはやは り 3文 字の語彙 で ,文 字数がふえるにつれて頻度が小 さ くなる点 も一致 している
.語彙の文字頻度 も awkで 出 してお こう.語彙全体の文字頻度 と語頭の文字頻 度 と語末 も文字頻度の 3つ をしらべ る .awkの スク リプ トはここにはあげない が , 3つ つ くって ,結 果 を汎用 ツールの pasteで 合成 している。なお ,awkを
使わな くとも多少面倒だが汎用ツールを組 み合わせ るだけで も文字頻度の計算 はで きる。全体 の文字頻度 な らfoldの ‑1指 定でテキス トファイル全体 を一行
―字 に折 り返す ことがで きるか ら sortと urliqの 一 cオ プ ションを組 み合 わせ ると文字頻度がかぞえられ る .語 頭 の文字頻度 な ら cutの 一 cl指 定 で 1桁 めの 文字 を切 り出 して ,sortと urliqの 一 cオ プションでや は り同 じように語頭文字 の頻度 を計算す ることがで きる .cutの 一 cオ プシ ョンを一c2と すれば 2字 めが 切 り出せ るし
,一c3な ら 3字 めが切 り出せ る.語 末の文字頻度 をかぞえる場合 は 各語の文字数がバ ラバ ラなので この方法で語頭か らの桁数 を指定 して文字 を切 り出す ことはで きない e revで まず行 を反転 させて語末の文字 を語頭 に してか ら cut― clで 1字 めを切 り出せばよい。
a。
文字頻度 (全 体
)1.e 79118(14.217%) 2.n 47520(8.539%) 3.r 4349(7.969%)
4。
i 37439( 6.7270/0)
5。
t 36773(6.608%) 6.s 35722(6.419%)
b.
S a b k
文字頻度 (語 頭 )C.
7126(12.848%)n 3958(7.136%)e 3562(6.422%)t
3289(5。 930%)g
3080(5.553%)r
2884(5。 200%)h
文字頻度 (語 末
)13561(24。 4500/0)
7493(13.510%) 6922(12.侶 0%) 6222(11.218%) 5776(10.414%) 2886(5。 203%)
g
h