« 人名用漢字以外を子供の名づけに使うには (3) - 『三省堂国語辞典』のすすめ その68 »

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

2009年 5月 19日 火曜日 筆者: 阪上 辰也

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

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

これまでは、1種類のコマンドを取り上げながら、コーパスデータがどのように処理され、どのような結果が得られるのかを説明してきました。しかし、実際のコーパスデータの処理においては、1つのコマンドだけでなく、複数のコマンドを複数回繰り返すか、それらを組み合わせることが必要になります。

例えば、前回の記事で紹介したように、コーパスに含まれる語彙とその語彙の頻度一覧を作成しようとする場合、「sort コマンド」に加え、「uniq コマンド」を実行する必要があります。もちろん、これら2つのコマンドを使う前に、データの整形をしておかなくてはいけませんから、「grep コマンド」や「tr コマンド」などを予め実行しておく必要もあります。

今回は、語彙とその頻度を求めるため、sort コマンドと uniq コマンドをまとめて実行する例を見てみましょう。まず、1行1単語になっているファイル(nice_all.txt)を準備しておき(参照:第13回の記事第14回の記事)、そのファイルに対して、以下のコマンドを実行します。

sort nice_all.txt | uniq -c | sort -nr [Enter キーを押す]

複数のコマンドを連続して実行する方法は、第21回の記事でも紹介しているのですが、「パイプ」と呼ばれる縦棒の記号「|」を使い、複数のコマンドを1行にまとめて入力します。それぞれのコマンドにより処理結果が引き継がれながら、次のコマンドが実行され、結果的に、複数のコマンドがまとめて実行されることになります。

上記のコマンドでは、まず sort コマンドにより、アルファベット順での語彙の並び換えが行われます。次に、その結果を引き継ぎ、uniq コマンドによって各語彙の頻度が計算されます。この時、頻度を数えるための「c オプション」を忘れないようにしてください。ここまでの処理結果を出力させても頻度は分かるのですが、頻度表では、頻度の高いものから並べておくことが多いので、ここでは、頻度をもとに並び換えを行うために、再度 sort コマンドを実行しています。

なお、sort コマンドに付加されている「n オプション」は、数字を比較して並び換えを行うためのオプションで、「r オプション」は、大きい順に並び替えるためのオプションになります。

もし、この一連の処理の結果をファイルとして保存する場合は、以下のように、ファイル名を指定してからコマンドを実行します。

sort nice_all.txt | uniq -c | sort -nr > freq.txt [Enter キーを押す]

結果のファイルを見ると、「頻度(スペース)単語」という形式で、一覧表が作成されているはずです。処理の手順が考えて、組み合わせるコマンドを決めることで、効率的にコマンドの実行とデータ処理が行えるようにになります。

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


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


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

2009年 5月 19日