« われ、なれ、おれ--藪睨み人称代名詞考 - 『三省堂国語辞典』のすすめ その64 »

UNIX によるコーパスデータの処理 (8)

2009年 4月 21日 火曜日 筆者: 阪上 辰也

学習者コーパス入門 第24回

今回は、「uniq コマンド」を紹介します。

コーパスの中には、同じ単語が何度も出現します。これらの頻度を数えて、コーパスの語彙頻度表を作成しようとする場合、今回紹介する「uniq コマンド」が必要になります。その uniq コマンドの機能は、「重複した行を1行にまとめる」ことです。

しかし、まず注意しなければならないのは、重複しているかどうかを確かめる uniq コマンドの条件として、「隣接する行との比較が行われている」という点です。つまり、事前に、前回紹介した sort コマンドを使って、予め並び替えをしておく必要があります。

前回と同様に、1行1単語になっているファイル(nice_all.txt)を準備します(参照:第13回の記事第14回の記事)。そのファイルに対して、まずは、以下のように sort コマンドを実行し、結果を保存しておきます。

sort nice_all.txt > nice_all_sort.txt [Enter キーを押す]

上記のコマンドにより、並び替えられたデータは、nice_all_sort.txt という名で保存されることになります。今度は、このファイルに対して、uniq コマンドを実行します。その際、「c オプション」を加えて実行します。この c オプションを付け加えることで、重複した行がいくつあったのかを数える(「count の c」と覚えておくとよいでしょう)ことができます。つまり、ある単語がコーパス中に何回出現したのか、その単語の頻度を求めることができるようになるわけです。それでは、uniq コマンドに「c オプション」をつけて実行してみましょう。

uniq -c nice_all_sort.txt [Enter キーを押す]

実行されると、各行において、「数字(スペース)単語」という形式で結果が表示されるはずです。この数字が、その単語の頻度ということにあります。

これまで見てきたように、単語頻度一覧表は、1) データを1行1単語に整形する、2) sort コマンドによる並び替えを行う、3) uniq コマンドによる頻度計算を行う、という3つの手順を経て作成されることになります。

次回は、複数のコマンドの組み合わせについて紹介します。


▼お知らせ
2008年10月4日に、学習者コーパス「NICE」の正式版を公開しました。2009年4月9日にはバージョンアップを行い、ver. 1.1 に更新されました。無償で利用可能で、特別な手続きは必要ありませんので、ぜひ研究調査にご利用ください。詳しくは、こちらのサイトをご覧ください。


■筆者プロフィール
阪上辰也(さかうえ・たつや)
名古屋大学大学院 国際開発研究科 特任助教。
専門は、コンピュータを利用した外国語教育。
ウェブサイトは、sakauetatsuya.net

2009年 4月 21日