前回は基本的な正規表現の使い方をマスターした。今日は1つ上のレベルの正規表現「後方参照」にチャレンジしてみよう。K2Editorのヘルプで後方参照に関する項目を見てみると、次のように書かれている。
後方参照 正規表現の中で()を使ってグループ化された部分にマッチ文字列は、 \1,\2などの表現で、 再度正規表現の中に埋め込むことが可能です。 \の後ろに続く数字は、何番目のグルーピングされた文字列かを示します。 たとえば、(\w+)[ ]+\1 は "ABC ABC"や"ppp ppp"に対してマッチしますが、 "ABC ppp"にはマッチしません。 \の後ろに続く数字には制限はありません。ただし、1〜9までは常に後方参照と解されますが、 \10以降は、その後方参照に対応するグループがない場合は、8進数のコントロール文字と 解されますので注意が必要です。 また、本当に一桁の8進数のコントロール文字を書く場合には、 \001などという風に書きましょう。 (K2Editorのヘルプファイルから後方参照の部分を抜粋)
ちょっと分かりにくいかも知れないが、半角の
()
の中で指定したパターンにマッチした文字列を、
¥1
などという記号を使うことで、呼び出すことができるということだ。
まず簡単な例で操作をしてみよう
テキストデータ: A9JA49K6 に対して、 1. Aの次の1文字と、Kの次の1文字をすべて削除したい。 2. Aの次の1文字と、そのAの並び順を入れ替えたい。
というような問題があったとする。
K2Editorで実際に試してみると:
テキストデータ A9JA49K6 ・AかKの次の1文字を削除 検索文字列 ([AK]). 置換文字列 ¥1 ・Aに続く1文字とAの順序入れ替え 検索文字列 (A)(.) 置換文字列 ¥2¥1
では、もう少し具体的な例をつかって、段階的に説明してみよう。
まず、次のような書籍のリストがある。このリストを、K2Editorで開いてみよう。書籍リスト.txt
このリストには、出版年が含まれているにも関わらず、出版年の順番に並んでない。どうすれば、出版年で並び替えられるだろうか?
リストをよく見てみると
タイトル・著者,出版年,ページ・価格
という順番で並んでいる。ここで、
出版年だけを切り出して、 出版年 <タブ> タイトル・著者,出版年,ページ・価格
というリストを作り、エクセルにペーストして
出版年 | タイトル・著者,出版年,ページ・価格 |
という表を作り、出版年で並び替えれば良いということまでは、想像できるだろう。
では、出版年だけを切り出すにはどうすればいいだろうか?
まず、これまでにならった正規表現で表現できるところだけを書いてみると、
^ は行の先頭を表す [0-9]+年 は、数字の出版年を表す .*, は全角の,で終わる任意の文字列を表す $ は行の終わりを表すこれらを組み合わせて、
^.*,[0-9]+年.*$で1行の情報全てを表せるだろう。
検索文字列: ^.*,[0-9]+年で、
・琉球弧の成立と生物の渡来 木村政昭編著,沖縄タイムス社,2002年 ・植物の観察と実験を楽しむ−光と植物のくらし− 松田仁志著,裳華房,2004年 .....という出版年で終わる文字列は表せるけれど、これを年度に置換するときには、
置換文字列: 2002年 ^^^^今まで習った通りだと、何か置換文字列を指定しなければならない。
2002年 2004年 ....という異なる年度に置換したいので、一度の置換ではできそうにない。
検索文字列と一致した文字列を保存しておいて、置換文字列に使うということをやってくれるのが、後方参照だ。
前置きはともかく、まずやってみよう。新しく登場するのは、
( ) 半角のカッコで、検索文字列を囲んでおくと 置換文字列に半角の¥マークと数字を使うことで、 (例: ¥1 ¥2 こんな風に) 上でカッコで囲んだ検索文字列を呼び出せる。 では、上の書評リストを出版年と出版年以外のパートに分けて、カッコで囲んでみよう ^(.*,)([0-9]+年)(.*)$こうすることで、検索文字列で使われた( )内の文字列を、左から順番に置換文字列として指定することができる
(.*,) → \1 ([0-9]+年) → \2 (.*) → \3具体的に上の例の1行目で考えると
・絵でわかる細胞の世界 黒谷明美著,講談社, → ^(.*,) → \1 2001年 → ([0-9]+年) → \2 ,162ページ,2,000円 → (.*)$ → \3
出版年 <タブ> タイトル・著者,出版年,ページ・価格に置き換えてみよう。
検索文字列: ^(.*,)([0-9]+年)(.*)$ 置換文字列: \2\t\1\2\3
下に友達の誕生日リストが月、日、年の順で書かれている。
April 29, 1984 March 20, 1987 September 23, 1980 December 23, 1982 February 11, 1984 January 1, 1999 May 3, 1988 May 4, 1993 May 5, 1987 November 23, 1985 November 3, 1994
検索文字列:([A-Za-z]+) ([0-9]+), ([0-9]+) 置換文字列:¥3 ¥2 ¥1 あるいは 検索文字列:^([^ ]+) ([^ ]+), ([^ ]+)$ 置換文字列:¥3 ¥2 ¥1
また、上の例では
^ には2つの意味があるので注意!! ■検索文字列の最初においた場合は行頭から始まることを示す ^[A-Z].* で、行頭がアルファベット大文字で始まる任意の文字列 ■文字集合を表す[ ]の中で最初に置かれた場合、それに続く文字以外を表す [^a-z]+ で、英小文字以外の任意の文字からなる文字列 参考:$は検索文字列の最後に置かれた場合、行末であることを示す [a-z]+$ は、行末に続く英小文字の連続を示す正規表現の例のいくつかは、昨年度の学生の要望で作った、授業/H20/情報処理/正規表現熟語帳を参照してみよう。自分でこういう単語帳を作ってみると、正規表現への理解がますます高まるだろう。
やりたいこと | 検索文字列 | 対象文字列の例 | 置換文字列 | 置換された結果例 | コメント |
1行に含まれる全ての文字列を置換 | ^.*$ | abcdefg hijklmn 12345 opqrstu vwzya 98765 | Replaced! | Replaced! Replaced! | |
連続する半角スペースをタブに置換 | [ ]+ | abc def hij k | ¥t | abc<tab>def<tab>hij<tab>k | |
AまたはKをZに置換 | [AK] | BACK BaKery KABA | Z | BZCZ BaZery ZZBZ | |
AまたはKとそれに続く任意の1文字をZに | [AK]. | BACK BaKery KABA | Z | BZZBaZry ZBA | |
スペース以外の文字列の連続をtangoに置き換え | [^ ]+ | I am a boy. You are a girl. | tango | tango tango tango tango tango tango tango tango | |
1行を行頭からスペースで4つのパートに区切り、順序を逆に並べ替え | ^([^ ]+) ([^ ]+) ([^ ]+) (.*)$ | 12 34 56 78 90 Que sera, sera. Whatever will be. | ¥4 ¥3 ¥2 ¥1 | 78 90 56 34 12 Whatever will be. sera. sera, Que |
添付されているファイルsequence_Pdic.fastaには、Pedicularisという植物のDNA塩基配列データがFASTA形式で入っている。GenBankからダウンロードしたままの形式なので、
>gi|310769146|gb|HM596759.1| Pedicularis procera tRNA-Leu (trnL) gene (GenBankID, データベース、Accession No.、種名、遺伝子の種類...)
が、それぞれのデータを示すラベル情報として入っている。これを、よりシンプルに、
>種名の省略形_Accession No. という形に整形したい。上の例だと、 >P_procera_HM596759
に置換したい。どのようにすれば良いか、考えてみよう。
この操作は、実際にDNAデータベースのデータを使って、系統解析を行うときに、知っていると大変役に立つ。
前回授業のWordの機能に関するアンケート結果
これを見てみると、多くの人が、「今はできないけど、調べればできる」を回答してくれていた。これはとても頼もしい結果で、この授業で目指しているのは、まさに、「今は出来なくても、調べれば分かる」という自信をつけて貰うことだ。
毎年、この情報授業でWord、Excel, Power Pointの解説をすると、多くの学生が、
「機能がたくさんありすぎて、やり方を覚えられない」
という悩みを持つ。でも、大丈夫。
機能の全てを覚える必要は無い
これらのソフトをほぼ毎日使っている私も、機能を全部理解してないし、覚えていない。必要なのは、
「こんなことができる」というのを知っておくこと そうすれば、必要なときに、やり方を調べて対処できる
今日やる、目次の作成や、ページ番号、図形の作成にしても、ネットで方法を検索すると、初心者向け解説がたくさん見つかる。 そうやって作業しているうちに、こういうソフトの操作に慣れるので、あまり心配しないように。
あえて太字で繰り返すが、
この授業で習ったことの全てを今すぐ自分でできなくってもかまわない
「授業で習ったようやれば、こんなことができるはずだ」
「こういうことはコンピュータにやらせれば簡単にできるはずなので調べてみよう」
そういう理解を持って貰うだけでも十分です。授業中の演習がこなせていれば、良しとしましょう。
ポイント: あなたのメッセージを分かりやすく相手に伝えるために、Wordを使ってできる限りのことをしよう
第2回の授業で述べたようなレポートについての諸注意は、各自でよく考えて、十分にトレーニングする必要がある。申し訳無いけれど、この授業でこれといった即効性のあるテクニックは教えられない。でも、ワードを使って可能な限り読みやすいレポートを作り、採点者による減点を減らす努力はできるだろう。採点者は、たくさんのレポートに目を通さなければならない。そんなとき、読みにくいレポート(例えば、判読しがたい字で書き殴ったようなレポート)があると、減点をしたくなるのは当然だろう。
では、前回授業でmoodleページからダウンロードしたレポート作成用テンプレートを使って、架空のレポートを1つ作ってみよう。
要旨(摘要) 本論 結論 引用文献とか
要旨 序論 材料と方法 結果 考察 引用文献とか、最初に構成を決めておくと書きやすくなる。項目はレポートに応じて変える。たとえば、植物分類学野外実験のレポートなら、こんな感じ:
はじめに 目次 1.実習場所と実施日 2.観察植物リスト ・リストの作成方法 ・作成したリスト 3.注目した植物の観察結果 1. 2. おわりに 参考文献
いろんな証拠を使って、自分の意見ややったことを相手に納得させること!
Wordはさまざまな機能を持っている。上ではレポート作成に必要なごく一部の機能だけを紹介したが、さらに、卒業論文の作成などで便利な機能もいくつか紹介しておこう。
レポート等の文書を作成する場合、読みやすさを求めるには、フォントの種類や大きさを変えたり、行間を整えたり、いろんな手間が必要になる。しかし、こういった作業を何度も繰り返してやるのは面倒。そこで、自分専用テンプレート(ひな形)を1つ作っておく。そうすれば、今後のレポート作成のときには、ひな形に合わせて内容を書き換えるだけで、見栄えのいいレポートができることになる。
右のリンクから、レポート作成のためのテンプレートをmoodleページにアップロードしておいたので参考にして欲しい(ダウンロード)。
このファイルを開くと、レポートで使われる様々な書式設定の見本と解説が載っているのが分かる。説明を読みながら、自分用に内容を変更すれば、自分だけのためのレポート用のテンプレートが作成できることになる。
授業では全てを解説している時間は無いので、いくつかの項目を抜き出して解説する。残りは自分で読んで、いろいろと変更して、機能を体験して欲しい。
Wordの文書では、要素ごとにスタイルが設定することができる。この場合、基本のスタイルを変更すれば、そのスタイルが適用されている部分の書式を一度に変更できる。
Wordを使えるようになったからといって、良いレポートが書けるわけではない
伝えたいメッセージ(主張)が無ければ、良いレポートなんて書けやしない
下の本は、レポートを書くということについて、具体的に分かりやすくまとめられている。
今年の1年生にも、将来、研究者になることを志望している人が多い。そこで、研究者を目指す学生が、修士2年の春に直面する、「学振DC」申請を紹介しておこう。。
日本学術振興会特別研究員ホームページ:http://www.jsps.go.jp/j-pd/index.html
日本学術振興会特別研究員DC(略して「学振DC」)というのは、研究者の養成・確保を目的として、我が国トップクラスの優れた若手研究者に対して、自由な発想のもとに主体的に研究課題等を選びながら研究に専念する機会を与える制度。もし学振DCに選ばれると、
博士課程の3年間、月額200,000円の研究奨励金と、年間150万円以内の研究費が支給される
という、非常に有り難い制度。平成23年度の生物学分野の場合、申請者数367(DC1)に対して、84人(22.9%)が採用されていまる。しかも、博士1年からの採用(DC1という)への申請者は、それほど発表論文の本数(業績と言う)が多くないので、申請書のできが、審査に大きく影響する。
事項\年 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 ... | 2022.. |
学年 | 学部1年 | 学部2年 | 学部3年 | 学部4年 | 修士1年 | 修士2年 | 博士1年... | ポスドク |
主な活動 | 授業 | 授業 | 授業 | 研究・院入試・卒論 | 研究 | 研究・修論 | 研究・論文... | 研究... |
目標 | 自分次第 | 自分次第 | 自分次第 | 院入試で上位(奨学金に影響) 論文発表を目指した卒研 | 投稿論文発表 (投稿規定・論文書式) | 学振DC申請(5月) | 論文作成、学振PD申請... | 研究職応募.. |
サポート | - | - | - | - | 奨学金・返還免除 | 学振DC1、奨学金、 研究助成金、奨学金返還免除... | 学振PD、 助成金... | |
MS Wordの利用 | - | - | - | 研究・卒論 | 研究・論文・助成金申請 | 研究・学振申請書・修論 | 研究・論文・申請書・報告書... | 研究・論文・ 申請書... |
申請書のリンクを下にはっておいたので、ダウンロードして見てみよう。
特別研究員DC:申請用の様式(Word):http://www.jsps.go.jp/j-pd/data/shinsei/02_dc.doc
かなりの内容を分かりやすく、MS Wordを用いて書かなければならない。生物分野では無いが、実際にDC1に採用された人の申請書がネット上に公開されているので、見てみよう。
http://www.mibel.cs.tsukuba.ac.jp/~ceekz/dc1/dc1.pdf
(申請者本人のウェブページ:http://www.mibel.cs.tsukuba.ac.jp/~ceekz/dc1/)
こういう申請書を作成するときには、自分のアイデアを論理的に、分かりやすく説明できることが不可欠だ。そして、そういう能力(論理的説明能力や、文章作成能力)というのは、一朝一夕には身につかない。研究者を目指す皆さんは、今からちょうど5年後のM2の春には学振申請が待っていることを目標に定めて、今から、論理的説明能力や文章作成能力を磨いておくといいだろう。申請書の作成には、この授業で習う図の貼り付けや模式図の作成方法も必要だ。
また、学振特別研究員を狙うなら、論文(雑誌に発表された論文)はある方が有利だろう。moodleのページに実際の投稿論文で使われたWordファイル(新村さんの論文)を添付しておいたので、見てみよう。このファイルでは、投稿先の論文が指定するスタイルが使われている。
「論理的説明」ということに関しては、最近読んだ本:「論理的に説明する技術 説得力をアップする効果的なトレーニング法とは (サイエンス・アイ新書) 」は説明が分かりやすく書かれているし、イラストも多用されている。そもそも「論理的説明ってどういうこと?」というところから知りたい人にはお勧めだろう。
その他、学振申請や、論理的説明能力についてさらに知りたい人は、私やキャリア担当の教員に尋ねてください。