[解析]
研究は複数人で行なわれることが
あるため、発表論文には複数の人の名前が書かれています。そして、基本的に第
一著者(一番最初に名前が書かれている人)が書き、発表します。
全ての共同研究者が同一の所属であれば良いのですが、そうでない場合も少なく
ありません。ですから、ここでは第一著者の所属を数えることにします。そのた
めには第一著者を見つけるプログラムを書かなくてはいけません。そして、第一
著者を求めるためにはデータがどのような形式になっているか調べる、つまりデー
タの規則性を見つけなくてはいけません。
9月8日(木) 15:00〜17:30 3号館3階 3300教室
5Sセッション [コンピュータシステム] 座長 吉永 努 (電通大)
C-022 H8マイクロコンピュータを用いた小型バッテリーアナライザの試作
◎鈴木太朗・野木兼六・五百蔵重典(神奈川工科大)
C-023 マルチボディモデルによる多関節ロボットアームのシミュレーション設計法
○佐藤宏明・高津戸 稔(岩手大)・池田千恵(富士通エフ・アイ・ピー)・柏葉安兵衛・田山典男(岩手大)
C-024 ウィンドウの透視化と輝度低下機能を持つマルチウィンドウシステムの評価
◎宮崎 仁(岡山県大)・茅野 功(川崎医療短大)・佐藤洋一郎・横川智教・早瀬道芳(岡山県大)
C-025 (講演取消)
C-026 リソース融通のためのサーバ移送機構の試作
◎木場雄一・善明晃由・木村哲郎・吉田英樹(東芝)
C-027 ATAディスク適用ストレージ向け高信頼化技術の開発(1);ATAディスク高信頼化対策
◎新井政弘・中川 豊・松並直人(日立)・八木沢育哉
C-028 ATAディスク適用ストレージ向け高信頼化技術の開発(2); データインテグリティ向上技術
◎中川 豊・新井政弘・松並直人・八木沢育哉(日立)
どうやら講演者は、行頭に○または◎で始まっている行に書かれていて、所
属は括弧で囲まれているようです。第1著者と第2著者(以降)の著者の所属が
同じ場合は、第1著者の所属は省略され、それ以降の人の所属が同じ人に所属が
書かれている。ようです。結論からいうと、一番最初に括弧で囲まれている文字
が第一著者の所属のようです。
[プログラム化]
日本語というのは割と厄介で、正規表現を使って、括弧にうまく照合させること
ができませんでした。本来ならば、日本語の交じった正規表現の使い方を学習す
る必要があります。しかし、それは時間がかかりそうなので、データの方を変更
することにしました。具体的には、エディタ(emacs)で、括弧"(...)"を
"<<...>>"に置換しました。
後は以下の正規表現を書けば取り出すことができます。
- 行頭に○または◎がある行を処理する
- 最初に"<<...>>"で囲まれた文字を取り出す。
注意点としては、"<<...>>"を取り出す時に、最短一致で取り出すことです。正
規表現のデフォルトである最長一致で取り出すと、不具合が置きます。具体例と
して以下の文字列を考えると、赤い文字の部分に照合してしまいます。
人名1<<大学名1>>・人名2<<大学名2>>
取り出すことができたら、後は読み込み部分と、数えあげ部分、表示部分を作る
だけです。ここでは省略して、最終的に出来上がったプログラムを以下に示しま
す。
#!/usr/bin/perl
while ( <> ) {
if ( m/^○/ || m/^◎/ ) {
$count{$1} += 1 if m/<<(.*?)>>/;
}
}
foreach $key (keys %count) {
print "$count{$key} $key\n";
}
実際には、この結果を並べ変えるために、この実行結果に対して"sort -r
-n"というフィルタプログラムを通しています。