「学習者コーパス入門」修正一覧
2009年 9月 8日 火曜日 筆者: 阪上 辰也学習者コーパス入門 特別編
「学習者コーパス入門 第31回」でお伝えした通り、これまでの連載での修正点をお知らせします。
■第6回
(修正前)
ちなみに、「Token」とは、単語のすべての数を表します。一方で、「Type」は、単語の種類の数を表しています。例えば、apple と apples という2つの単語があった場合、Token としては別々に数えるので、2になりますが、Type としては1つの種類にまとめられるので、1になります。
(修正後)
ちなみに、「token」は具体的な特定の対象を指し、「type」は抽象的で一般的な存在のことを指します。例えば、「This book is mine. That book is yours.」という文があった場合、token の頻度としては、全てを別々に数えるため、8つとなりますが、type の頻度としては、同じ形をした「book」や「is」はまとめられてしまうので、結果的に6つということになります。
■第8回
(修正前)
「*」は、どんな文字でもよいことを示す、「正規表現」と呼ばれるものですが、
(修正後)
「*」は、あらゆる文字列のパターンに対応する「ワイルドカード」と呼ばれるものですが、
■第17回
(修正前)
そこで、コーパス検索の専用ソフト(WordSmith や AntConc など)を利用するという手段もあります。
(修正後)
もちろん、コーパス検索の専用ソフト(WordSmith や AntConc など)を利用するという手段もあります。
■第17回
(修正前)
UNIX をベースにした主要な OSとして、Linux や Mac OS X があります。
(修正後)
UNIX をベースにした OSには、Mac OS X があり、UNIX を手本にして一から作り上げられた OS として、Linux があります。
■第18回
(修正前)
UNIX を使ったデータ処理では、「ターミナル」というソフトを使います。
(修正後)
UNIX を使ったデータ処理では、「端末エミュレータ」というソフトを使います。なお、Mac OS X では、「ターミナル」という名前の端末エミュレータがはじめから使えるようになっています。
■第18回
(修正前)
最後の「*.txt」は、拡張子が TXT になっているものを検索対象にする、という意味です。
(修正後)
最後の「*.txt」は、拡張子が txt になっているものを検索対象にする、という意味です。
■第19回
(修正前)
結果として、コマンドを入力した次の行に、3 という数値が表示されているはずです。つまり、JPN001.txt の中には、「I think」というフレーズが3回出現していたということを示しています。
(修正後)
結果として、コマンドを入力した次の行に、3という数値が表示されているはずです。これは、「I think」を含んだ行が3つあったという意味であり、3回出現していたという意味ではありませんので注意が必要です。あくまで、含んでいた「行」の数を数えているだけなので、1行に「I think」が2回出現していても、2と数えられることはありません。したがって、grep コマンドで何か表現を検索した場合には、「数値=出現回数」と考えず、「その行に”少なくとも1つは”検索した表現が含まれている」と考えるようにしてください。
■第19回
(修正前)
ただし、この場合、「it’s」 のような縮約系を含んだ表現はヒットしないため、実際には、複数回検索を繰り返すなど、慎重に検索作業を進める必要があります。
(修正後)
ただし、この場合、「”it」「it’s」「it,」「it:」「it?」のように,it の前後にスペース以外の記号が来る表現はヒットしないため、実際には、複数回検索を繰り返すなど、慎重に検索作業を進める必要があります。(検索を繰り返す代わりに,正規表現で条件を一つにまとめて指定することもできますが,その為にはさらに正規表現について学ぶ必要があります。)
■第20回
(修正前)
正規表現が使えるようにするために使うのが、「E オプション」です。
(修正後)
「E オプション」を指定することで、「拡張正規表現」という別の新たな正規表現が利用できるようになります(E は、Extend の E を示す)。
■第21回
(修正前)
利用できる正規表現の種類を増やす「E オプション」
(修正後)
「拡張正規表現」という別の新たな正規表現が利用できる「E オプション」
■第21回
(修正前)
grep -v “@” *.txt [Enter キーを押す](※)
(修正後)
grep -v “^@” *.txt [Enter キーを押す](※)
★スクリプトは、本文中に@が含まれる可能性があるため、^ をつけて上記のように修正します。
■第22回
(修正前)
tr ‘[A-Z]’ ‘[a-z]’ < JPN001.txt [Enter キーを押す](※)
(修正後)
tr 'A-Z' 'a-z' < JPN001.txt [Enter キーを押す](※)
■第22回
(修正前)
tr [A-Z] [a-z] < JPN001.txt > komoji_001.txt [Enter キーを押す](※)
(修正後)
tr ‘A-Z’ ‘a-z’ < JPN001.txt > komoji_001.txt [Enter キーを押す](※)
★引用符が抜けている。この場合には,引数にスペースが含まれていないので
引用符がなくてもOKだが,引用符を付けておいた方が無難。
■第25回
(修正前)
なお、sort コマンドに付加されている「n オプション」は、数字を比較して並び換えを行うためのオプションで、「r オプション」は、大きい順に並び替えるためのオプションになります。
(修正後)
なお、sort コマンドに付加されている「n オプション」は、数値として比較して並び換えを行うためのオプションで、「r オプション」は、降順に並び替えるためのオプションになります。
謝辞
最後になりますが、今回の修正にあたり、有益なコメントをくださった方、および、連載の機会を与えてくださった三省堂Word-Wise Webの編集スタッフの方々にも、この場をお借りして感謝申し上げます。
—
▼お知らせ
2008年10月4日に、学習者コーパス「NICE」の正式版を公開しました。2009年4月9日にはバージョンアップを行い、ver. 1.1 を公開しました。無償で利用可能で、特別な手続きは必要ありませんので、ぜひ研究調査にご利用ください。詳しくは、こちらのサイトをご覧ください。
—
■筆者プロフィール
阪上辰也(さかうえ・たつや)
名古屋大学大学院 国際開発研究科 特任助教。
専門は、コンピュータを利用した外国語教育。
ウェブサイトは、sakauetatsuya.net。
学習者コーパス入門のまとめ
2009年 8月 25日 火曜日 筆者: 阪上 辰也学習者コーパス入門 第31回
今回は、30回に渡ってお伝えした「学習者コーパス入門」のまとめをしたいと思います。
まず、学習者コーパスとは、外国語を学習する人が、その学んでいる外国語で書いたり話したりしたデータベースのことです。NICE は、「Nagoya Interlanguage Corpus of English」の頭文字を取ったもので、名古屋圏を中心として、英語を学ぶ大学生・大学院生が書いた作文データを集めた学習者コーパスになります。
そして、NICE の特徴として、(1) 詳細な個人情報が記録されていること、(2) データが読みやすい状態で記録されていること、(3) 母語話者による添削文の付与がなされていること、という3点を挙げ、これまでの学習者コーパスでは十分に対応されてこなかった部分を補った新しい学習者コーパスであることを説明しました。
第8回以降では、NICE のデータを実際に検索する方法を説明しました。使うソフトウェアとして、テキストエディタとMicrosoft Excel を利用し、「Grep」による検索や、正規表現を用いた文字列の検索および置換、Excel で利用可能な関数を用いての語数カウントなどの方法を紹介しました。こうした作業は、コーパスの検索ソフトを利用することで、より簡単にできるのですが、敢えて回り道のようなことをしたのは、作業の過程をひとつひとつ知っておくべきという意図があったからです。専用の検索ソフトにあるボタンを押して自動的に結果が表示され、それを疑いもなく利用するというのは、研究調査上、危険な行為であるため、ひとつひとつの作業を細かく説明したわけです。
第17回以降では、UNIX を用いたデータ処理の方法について説明しました。文字によるコマンド入力を通して、大量のデータを瞬時に処理できることを紹介しました。具体的には、検索した文字列を含む行を表示させる「grep」コマンド、文字列の置換を行う「tr」コマンド、数値や文字をある条件で並べ替える「sort」コマンド、重複した行を1行にまとめる「uniq」コマンドと、これらのコマンドの組み合わせ方について説明しました。UNIX による処理は、操作自体が敷居の高いものに感じられますが、コマンドとその機能を学び、処理するパターンを覚えてしまえば、基本的にはどのようなコーパスに対しても応用可能で汎用的な技術であると言えます。
第28回から第30回までは、学習者コーパスの構築方法を説明しました。NICE では、CHAT 形式(Codes for the Human Analysis of Transcript)と呼ばれるフォーマットを採用しており、「1行1文」の状態でデータが記録される点が特徴的であると述べました。特に大事なことは、目的に応じて、どのようなフォーマットを採用すべきかを検討し、そのフォーマットに従ってコーパスを構築するということです。また、同時に、そのフォーマットをマニュアルとして文書化しておき、どのようなフォーマットでデータを構築しているのか、いつでも見直すことができるようにしておくことも大事なことであると述べました。
以上、30回に渡り、学習者コーパスとは何か、検索などのデータ処理をどのように行うのか、どのような点に気をつけてデータを構築したり処理したりすればよいのかを述べてきました。この連載をきっかけに、学習者コーパスを利用した研究調査に関心を持っていただければ幸いですし、実際のデータ処理の一助となれば嬉しく思います。本連載は、今回を一区切りとしまして、お休みとさせていただきます。また、機会がありましたら、コーパスデータの統計処理について説明ができればと思っています。ありがとうございました。
—
▼お知らせ (1)
過去の記事について、一部を修正いたします。修正点の一覧については、後日、本サイトにてお知らせいたします。
—
▼お知らせ (2)
2008年10月4日に、学習者コーパス「NICE」の正式版を公開しました。2009年7月22日にバージョンアップを行い、ver. 1.1.1 に更新されました。無償で利用可能で、特別な手続きは必要ありませんので、ぜひ研究調査にご利用ください。詳しくは、こちらのサイトをご覧ください。
—
■筆者プロフィール
阪上辰也(さかうえ・たつや)
名古屋大学大学院 国際開発研究科 特任助教。
専門は、コンピュータを利用した外国語教育。
ウェブサイトは、sakauetatsuya.net。
学習者コーパスの構築方法 (3)
2009年 7月 28日 火曜日 筆者: 阪上 辰也学習者コーパス入門 第30回
今回は、データの記録におけるトラブルを紹介します。
前回の記事で、コーパスの構築においては、「フォーマット」を決めておく必要があると述べました。今回は、そのフォーマットに従わなかったことで生じるトラブルを2つ紹介します。1つは「全角文字」によるトラブル、もう1つは「文字コード・改行コード」によるトラブルです。
まず、「全角文字」によるトラブルとして、英文データに全角文字が混ざってしったことで、実行したいコマンドやプログラムが動作しなかったというものがあります。日本人英語学習者の場合、日頃は、全角文字である日本語を入力しています。必要に応じて半角文字に切り替えて入力するわけですが、英文の入力中、気づかぬ間に全角のスペースを入力してしまい、データ処理する際に初めて全角のスペースが混ざっていたことが分かるということも少なくありません。
また、全角文字のスペース以外にも、アポストロフィやダブルクオーテーションマークが全角で記録されているという事例もあります。NICE のデータを収集した際は、Microsoft Word というワープロソフトを使用して、作文をしてもらいました。この時、プレーンテキストのファイルとして保存しなおすために、Microsoft Word のファイルからデータをそのままコピーして貼り付けると、入力された記号類は全角文字として貼り付けられてしまいます。この状態でデータ処理を行おうとした場合、処理上のエラーが生じてしまいます。例えば、語数を適切に数えられなくなったり、不要な記号類の削除をする際、削除できずに残ってしまったりするなどのトラブルが生じます。このようなトラブルを避けるために、全角文字を半角文字に置換する作業が必要になります。具体的には、テキストエディタにある置換の機能を利用するか、プログラムを書いて置換することになります。
続いて、「文字コード・改行コード」によるトラブルとして、文字化けや、1行としての処理を行うことができないといったものがあります。文字コードについては、アルファベットの場合、文字化け等の心配はありません。しかし、例えば、学習者の特定のデータについて、コメントなどを日本語で書き添えておく場合には、予め文字コードの統一をしておく必要があります。統一しなかった場合には、開くファイルにより文字コードが異なってしまい、文字化けが生じやすくなりますし、作業上の混乱をまねくおそれもあります。
また、改行コードについてですが、その種類は、Windows 用・Mac 用・UNIX 用の主に3つがあります。これらを区別をしないままデータを記録すると、見た目が1行になっている文でも、改行コードが異なっていることで、その行の次に続くデータと勝手に連結されてしまうといったトラブルが生じます。そのため、エディタなどの処理ツールが、どの文字コード・改行コードで処理をしているか、またデータの保存時に、文字コード・改行コードが統一されているかを確認しておくことが必要です。
以上、記録におけるトラブルを紹介してきましたが、大事なことは、先週と同様に、構築時にデータ記録に関わるフォーマットしっかりと定めておくことです。また、同時に、そのフォーマットをマニュアルとして文書化しておき、どのようなフォーマットでデータを構築しているのか、いつでも見直すことができるようにしておくことも大事なことです。
—
▼お知らせ
2008年10月4日に、学習者コーパス「NICE」の正式版を公開しました。2009年7月22日にはバージョンアップを行い、ver. 1.1.1 に更新されました。無償で利用可能で、特別な手続きは必要ありませんので、ぜひ研究調査にご利用ください。詳しくは、こちらのサイトをご覧ください。
—
■筆者プロフィール
阪上辰也(さかうえ・たつや)
名古屋大学大学院 国際開発研究科 特任助教。
専門は、コンピュータを利用した外国語教育。
ウェブサイトは、sakauetatsuya.net。
学習者コーパスの構築方法 (2)
2009年 7月 14日 火曜日 筆者: 阪上 辰也学習者コーパス入門 第29回
今回は、コーパスデータの記録方法について説明します。
コーパスを構築する際には、必ず、データの「フォーマット」を決めておく必要があります。フォーマットとは、どのような情報を、どのような並べ方で記録しておくかなどを定めた「形式」のことをいいます。コンピュータで処理することが前提となっているコーパスデータでは、このフォーマットの設定が、データ処理おける重要なポイントとなります。
NICE では、CHAT 形式(Codes for the Human Analysis of Transcript)と呼ばれるフォーマットを採用しています。CHAT 形式は、既に度々紹介していますが、「1行1文」の状態でデータが記録される点が特徴的です。
1行1文の形式で記録される CHAT フォーマットを採用する利点は2点あります。ひとつは、第3回の記事でも紹介しましたが、データが読みやすくなるという点です。コーパスを「処理」する際、記号類の扱いなどで様々な問題(次回の記事で説明します)が生じます。処理がうまくいっているかどうかを確認するには、データそのものの特徴を知っておく必要があり、そのためには、データそのものを目で見て内容をチェックしなければいけません。加えて、コーパスを「分析」する際、例えば、誤用を観察している場合に、何が誤用となり、それはなぜかを考える場合、やはりデータそのものを目で見て、内容を解釈する必要が出てきます。これらの場面を想定した場合、処理や分析時の作業上の誤りを防ぐ意味でも、読みやすさに配慮したフォーマットの採用が望ましいということになります。
もうひとつの利点は、数値化できるデータの特性を効率よく求められるという点です。数値化できるデータの特性として、例えば、単語や文の総数、単語および文の長さなどが挙げられます。CHAT 形式では、1文という単位で区切られて記録されているため、1文がいくつの単語で構成されているか(つまり、文の長さ)、また、各学習者の書いた文の数を効率よく求めることができます。特に、学習者と母語話者との比較を行う場合には、単語数や文の数といった数値をよく利用しますので、予め CHAT 形式にしておくことで、短時間で必要な数値を求めることができるようになります。
今回は CHAT 形式を主に取り上げましたが、CHAT 形式は、学習者コーパスの構築において必ず使用しなければならないフォーマットというわけではありません。大事なことは、目的に応じて、どのようなフォーマットを採用すべきかを検討し、そのフォーマットに従ってコーパスを構築するということです。フォーマットが決まらなければ、効率的なデータ処理は行えず、大量のデータに苦しめられることになります。場合によっては、作業上のミスにより、誤った数値データを示してしまうおそれもあります。こうした事態を避けるためにも、フォーマットはしっかりと設定し、データを記録しておくことが必要です。
次回は、データの記録におけるトラブルを紹介します。
—
▼お知らせ
2008年10月4日に、学習者コーパス「NICE」の正式版を公開しました。2009年4月9日にはバージョンアップを行い、ver. 1.1 に更新されました。無償で利用可能で、特別な手続きは必要ありませんので、ぜひ研究調査にご利用ください。詳しくは、こちらのサイトをご覧ください。
—
■筆者プロフィール
阪上辰也(さかうえ・たつや)
名古屋大学大学院 国際開発研究科 特任助教。
専門は、コンピュータを利用した外国語教育。
ウェブサイトは、sakauetatsuya.net。
学習者コーパスの構築方法 (1)
2009年 6月 30日 火曜日 筆者: 阪上 辰也学習者コーパス入門 第28回
今回から、学習者コーパスの構築方法とその問題点について説明します。
NICE や ICLE など、配布されている学習者コーパスを利用する側ではなく、構築する側となった場合、どのような手順でデータを構築するべきか、その方法を紹介します。今回は、1) データ提供者の募集、2) 収集活動の主な流れ、3) 書かれた作文データの著作権委譲について述べます。
なんといっても、学習者コーパス構築は、データ提供者となる学習者がいなければ始まりません。NICE 構築時には、「英語学習者がどのように英語の文章を書くかを分析するため」という目的を説明した文書(チラシ)を作成し、それを配布して提供者を集めました。その文書には、目的以外に、実際の活動とその手順、所要時間、謝礼の内容、連絡先を記しておき、より具体的な情報を与えるように努めました。
収集活動の主な流れとして、まずは、学習者に対して、活動内容の説明と作文時の注意事項(例:辞書を見てはいけない、作文は完結させるようにする、など)を説明します。続いて、著作権委譲のための契約書(後述)へのサインを行い、作文の基本的な構成法と 作文時に使用する Microsoft Word の基本的な使い方を説明します(15分間)。説明終了後に、実際に作文を書き(1時間)、最後に、学習者個人の情報について尋ねるアンケートの実施と謝礼受け渡しを行います(15分間)。すべての活動が終了するのにかかった時間は、およそ1時間半でした。説明の内容はなるべく簡潔にし、時には学習者からの質問を受けて疑問を解消させ、作文に集中できるように配慮する必要があります。
公開を前提とした学習者コーパス構築にあたっては、作文をしてもらう学習者に、「著作権の委譲」について同意を得ることが必要になります。この手続きは、データを公開する場合に、最も重要なものとなります。著作権委譲に関わる手続きを忘れると、データが公開できなくなってしまいます。データがあれば、分析こそ行うことができますが、公開ができなければ、他の研究者が利用して分析することはもちろん、集めた側が行った分析結果を再現することもできなくなります。どのようなデータを使っているかが分からない状態で、何らかの結果だけを示されたとしても、その後の研究の発展は望めません。したがって、(少なくとも日本国内で収集する場合、)この著作権委譲の手続きは、学習者コーパス構築時の必須の手続きと言えるでしょう。
NICE 構築にあたっては、実際に学習者に作文をしてもらう前に、契約書を作成し、その契約書に署名をしてもらいました。この手続きは、データを公開する場合に、最も重要なものとなります。なお、学習者が未成年の場合、契約書を有効なものとするために、本人だけでなく、親権者の同意も必要となりますので、注意が必要です。なお、実際に使用した契約書は、こちらのリンク(PDF, 80KB)をクリックすると読むことができます。
次回は、データの記録方法について説明します。
—
▼お知らせ
2008年10月4日に、学習者コーパス「NICE」の正式版を公開しました。2009年4月9日にはバージョンアップを行い、ver. 1.1 に更新されました。無償で利用可能で、特別な手続きは必要ありませんので、ぜひ研究調査にご利用ください。詳しくは、こちらのサイトをご覧ください。
—
■筆者プロフィール
阪上辰也(さかうえ・たつや)
名古屋大学大学院 国際開発研究科 特任助教。
専門は、コンピュータを利用した外国語教育。
ウェブサイトは、sakauetatsuya.net。
UNIX によるコーパスデータの処理 (11)
2009年 6月 16日 火曜日 筆者: 阪上 辰也学習者コーパス入門 第27回
今回は、UNIX によるコーパスデータの処理についてのまとめです。
第17回から、前回の第26回にわたり、UNIX を用いた基本的なコーパス処理の方法を紹介してきました。grep や wc などのコマンドを利用することで、学習者コーパスの分析でよく行われる語数や文の数のカウントが効率よく行えることを説明しました。
学習者コーパスに限ったことではなく、コーパスの分析においては、「テキスト処理」がほぼ必須の作業であると言えます。そして、調査の目的に応じて、不要な情報の削除や分析の効率を上げるための置換といった、データの整形処理を行うことになります。
第17回の記事でも少し触れましたが、幸いなことに、コーパス検索のためのソフトウェアがインターネット上で入手できます。実際のところ、これまでに紹介した処理は、決して楽なものではありませんから、データ処理に不慣れな場合、その過程を飛ばすことのできるソフトウェアは、とても有用なもののように思えます。しかし、その過程を飛ばしてしまったばかりに、コーパス中の不要な情報を削除しないまま総語数をカウントしたり、検索条件の不備があったせいで検索漏れが生じたりするなど、誤った処理結果を導くことになりかねません。
コーパスデータの処理において大事なことは、「処理過程を明らかにすること」です。処理過程が明らかになってさえいえば、仮に間違った処理を行っていても、その誤りに気づいた人がその問題点を指摘し、解決に至ることができます。しかし、その過程を明らかにしない、あるいは、検索ソフトによって、処理過程を「ブラックボックス化」させてしまった場合には、その処理に問題があるかどうかが判断できないため、結果として、算出された数値や分析内容に対する信頼性が揺らいでしまいます。
現在、様々なコーパスが存在しますが、そのデータ形式もまた様々であり、個々のコーパスに応じたデータ処理が求められます。つまり、検索ソフト1つだけでは、しっかりとした調査を行うことは難しいのが現状です。しかし、UNIX のコマンドを使った基本的で汎用性のある処理技術を身につけることで、NICE だけでなく、他のコーパス処理にも応用できるようになり、過程を明らかにしながら調査を進めることができるようになります。これを機に、UNIX のコマンドを使ったコーパスデータの処理を始める方が増え、データ処理に関する情報共有が広くなされることを願っています。
次回は、学習者コーパスの構築方法とその問題点を扱います。
—
▼お知らせ
2008年10月4日に、学習者コーパス「NICE」の正式版を公開しました。2009年4月9日にはバージョンアップを行い、ver. 1.1 に更新されました。無償で利用可能で、特別な手続きは必要ありませんので、ぜひ研究調査にご利用ください。詳しくは、こちらのサイトをご覧ください。
—
■筆者プロフィール
阪上辰也(さかうえ・たつや)
名古屋大学大学院 国際開発研究科 特任助教。
専門は、コンピュータを利用した外国語教育。
ウェブサイトは、sakauetatsuya.net。
UNIX によるコーパスデータの処理 (10)
2009年 6月 2日 火曜日 筆者: 阪上 辰也学習者コーパス入門 第26回
今回も、先回に引き続き、複数のコマンドの組み合わせについて紹介します。
UNIX のコマンドは、これまで見てきたように、その1つ1つは、単純な機能しかありません。例えば、sort コマンドなら、並び替えるだけですし、uniq コマンドなら、重複行をまとめるだけです。それぞれのコマンドだけでは、行える作業は限られてしまいますが、簡単なコマンドを組み合わせることで、複雑な処理を実行することができるようになります。裏を返せば、複雑な処理というのは、実は、単純な機能の組み合わせの結果とも言えます。
前回の記事でも少し触れましたが、語彙頻度一覧表を作るには、ヘッダー情報などを除いて産出された作文を整形し、1行1単語の状態にして、並び換えおよび重複行の削除を行うという一連の作業が必要です。
今回は、産出された作文のみのデータがあるという前提で、一気に語彙頻度表を作成できるコマンドの組み合わせを紹介します。前回は、語彙とその頻度求めるため、sort コマンドと uniq コマンドを利用しましたが、それらに加えて、cat コマンドと、tr コマンドも使用します。学習者の作文だけを抽出したデータ(nice_nns_all.txt)を準備し、そのファイルに対して、以下のコマンドを実行します(学習者の作文だけを抽出する手順は、第10回の記事を参照してください)。
cat nice_nns_all.txt | tr ‘ ‘ ‘\n’ | sort | uniq -c | sort -nr [Enter キーを押す]
第21回の記事でも紹介したように、「パイプ」を使い、今回は5つのコマンドを1行にまとめて実行しています。それぞれのコマンドにより処理結果が引き継がれながら、次のコマンドが実行され、結果的に、複数のコマンドがまとめて実行されることになります。
上記のコマンドでは、まず cat コマンドにより、ファイルの中身を表示させ(実際には、次の tr コマンドに引き継がれるため、表示されることはありません)、その表示内容を次のコマンド、つまり、tr コマンドで利用できるようにします。tr コマンドでは、引き継がれたデータに対し、「スペースがあったら改行に置換する」という処理を行っています。ここまでで、1行1単語の状態に整形されていることになります。その後のコマンドは、前回と同様の処理ですので、詳しい説明は割愛します。なお、この一連の処理の結果をファイルに保存する場合は、以下のように、ファイル名を指定してからコマンドを実行します。
cat nice_nns_all.txt | tr ‘ ‘ ‘\n’ | sort | uniq -c | sort -nr > freq_kekka.txt [Enter キーを押す]
今回は、5つのコマンドが組み合わさっていますが、これまで個別に見てきたものを組み合わせたであるということを知っていれば、複雑に見えることはないだろうと思います。また、今回紹介したコマンドの組み合わせは、NICE 以外での英語コーパスでも利用可能なものです。
次回は、UNIX によるコーパスデータの処理についてのまとめです。
—
▼お知らせ
2008年10月4日に、学習者コーパス「NICE」の正式版を公開しました。2009年4月9日にはバージョンアップを行い、ver. 1.1 を公開しました。無償で利用可能で、特別な手続きは必要ありませんので、ぜひ研究調査にご利用ください。詳しくは、こちらのサイトをご覧ください。
—
■筆者プロフィール
阪上辰也(さかうえ・たつや)
名古屋大学大学院 国際開発研究科 特任助教。
専門は、コンピュータを利用した外国語教育。
ウェブサイトは、sakauetatsuya.net。
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。
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。
UNIX によるコーパスデータの処理 (7)
2009年 4月 7日 火曜日 筆者: 阪上 辰也学習者コーパス入門 第23回
今回は、「sort コマンド」を紹介します。
Microsoft Excel などの表計算ソフトを使っている時に、数字や文字をある条件で並べ替えることがありますが、その並び替えを行うのが、sort コマンドの機能です。
コーパス処理では、ある語句の出現頻度順に並び替えるケース、また、単語をアルファベット順に並び替えるケースにおいて、sort コマンドを利用することになります。今回は、2つのオプションも交えて、sort コマンドの使い方を説明します。
まず、第13回と第14回の記事で紹介したように、1行1単語になっているファイルを準備します(当該記事にならい、ファイル名は「nice_all.txt」とします)。そのファイルに対する処理として、以下のようなコマンドを入力し実行します。
sort nice_all.txt [Enter キーを押す]
何もオプションを指定しない状態で sort コマンドを実行した場合、文字列の順序で並び替えが行われます。引用符などの記号類、数字、アルファベットの順で並び替えが行われます。例えば、引用符付きの「”NICE”」、引用符のない「nice」、数字の「1」という3種類の文字列があった場合、オプションなしの状態で sort コマンドを実行すると、「”NICE”, 1, nice」の順で並び替えられることになります。
続けて、「f オプション」をつけて実行してみましょう。
sort -f nice_all.txt [Enter キーを押す]
この「f オプション」により、大文字と小文字を「区別せず」に並び替えることができます。例えば、「NICE」、「Nice」、「nice」の3種類の文字列があった場合、これらは、並び替えの際に同じ文字列として並び替えられることになります。ちなみに、前回の記事で紹介した tr コマンドによって、事前に文字列を小文字に変換してしまうという手もあります(ただし、固有名詞としての NICE と形容詞の nice は区別する必要があります)。
次に、「r オプション」をつけて実行してみましょう。
sort -f nice_all.txt [Enter キーを押す]
この「r オプション」を用いると、逆順に並び替えることができます。アルファベットであれば、z から順に並び替えられることになります。このオプションと、後に紹介します「n オプション」を組み合わせることで、単語の出現頻度の並び替えができるようになります。
次回は、重複した行をまとめる「uniq」コマンドを紹介します。
▼お知らせ
2008年10月4日に、学習者コーパス「NICE」の正式版を公開しました。無償で利用可能で、特別な手続きは必要ありませんので、ぜひ研究調査にご利用ください。詳しくは、こちらのサイトをご覧ください。
—
■筆者プロフィール
阪上辰也(さかうえ・たつや)
名古屋大学大学院 国際開発研究科 特任助教。
専門は、コンピュータを利用した外国語教育。
ウェブサイトは、sakauetatsuya.net。
—
※編集部注
当サイト上ではいわゆる全角の引用符が表示されますが、実際の作業ではいずれもいわゆる半角の引用符を入力します。
— 次のページ »







![『新明解国語辞典 第七版[机上版]』7年ぶりに改訂『新明解国語辞典』の机上版。判型は並判より大きいA5判で、さらに文字が大きく見やすい。2色刷。紙面内容は並版と同一。 『新明解国語辞典 第七版[机上版]』](http://dictionary.sanseido-publ.co.jp/wp-images/smk_kijo.jpg)
![『新明解国語辞典 第七版[小型版]』7年ぶりに改訂『新明解国語辞典』の小型版。並判より一回り小さいA6変型判で、携帯にも便利。2色刷。紙面内容は並版と同一。 『新明解国語辞典 第七版[小型版]』](http://dictionary.sanseido-publ.co.jp/wp-images/smk_kogata.jpg)
![『新明解国語辞典 第七版[革装版]』7年ぶりに改訂『新明解国語辞典』の革装版。丈夫で使うほどに手になじむ。判型は並版・特装版と同じB6判。2色刷。紙面内容は並版と同一。 『新明解国語辞典 第七版[革装版]』](http://dictionary.sanseido-publ.co.jp/wp-images/smk_kawaso.jpg)














































































































































2007年









