
この記事では、Antigravityに先行研究集めを丸投げした経緯・丸投げの手順について説明しています。
大学3年生の春学期が終わり、いよいよ夏休みが始まった。
しかし、夏休みに入る直前に行われた卒業論文の説明会で、教員から夏休みのうちに先行研究をしっかり読んでおくように、と言われてしまった。
先行研究の読み込みという作業自体は避けては通れないことだと理解している。だが、実際に手を動かすとなると、非常に骨が折れそうだというのが本音。
本番の論文読解に入る前の作業があまりに多すぎる。論文を実際に読み始めるまでの作業を分解すると、5つの段階に分けられる。
- 論文の検索
- 論文の入手
- 情報を整理する文献リストの作成
- 論文の読解
- 要約の作成
このうち、後半の読むこととまとめることは自分で頭を動かすしかないとあきらめがつく。だが、前半の探して、集めて、リストにするという作業は、自分が手を出さずとも機械的に処理できる単純作業である。わざわざ自分の手で時間と体力を削ってやるべきことではない。
しかも、教員からは英語の論文も読んでくるようにと指示された。日本語の論文なら日本語で検索すればヒットするが、英語の論文は英語で検索しないとヒットしない。当たり前のことではあるが、若干ハードルが高いのも事実だ。
自分はマメな性格ではない。だからこそ、この前半の単純作業をすべて自動化し、要領よくサボるために本気で頭を使うことにした。そこで導入したのが、Googleが出しているAIエージェントのAntigravityである。
先行研究集めをAntigravityに丸投げするのに、以下のような手順で進めた。
教員の指示、自分の興味・レベルなどから論文探しの方向性を決める。
専攻する分野の学術誌の①すべての掲載論文リスト②興味に合わせた論文リストをそれぞれ作成する。
②興味に合わせた論文リストから最初に読む論文を選び、ダウンロードする。
ダウンロードした論文をNotion上の先行研究データベースに登録する。
それぞれの手順の詳細は、以降の記事で説明している。
普通、大学生が論文を探すなら、CiNii ResearchやGoogle Scholarといった検索サービスを使うのが一般的だ。しかし、自分は今回、別の方法で論文を探すことにした。
理由は単純、まだ卒論のテーマすら決まっていない学部生が読むべき論文の判別なんてできないからだ。
教員からは優れた論文を読むことが重要と言われたが、何が優れた論文なのかこれっぽっちも分からない。それに日本語の論文ならまだしも、英語の論文は読解しながら質を見極める自信はない。
なので、信頼性が高い学会誌の論文に限った検索から始めてみることにした。
自分の専攻する分野の学会誌をいくつか調べてみると、掲載された論文の一覧が公開されていることが分かった。あとはAntigravityと相談しながら、自分の興味・関心を言語化することに。
大学の講義の情報がすべて連携済みのNotionにあるので、この授業のここが面白かった、という話をすると勝手に情報を取ってきてくる。おかげでAntigravityが的確な質問を投げ返してくれて相談がはかどり、検索の方向性を決めることができた。
自分の関心から探すべき論文の方向性がはっきりと分かったら、あとは単純作業をすべて自動で処理してもらう。
まず、公開されていた論文の一覧から、掲載論文全体のリストを作成してもらうことにした。このリストには、著者名・出版年・タイトル・リンクの情報が含まれている。
そこから、相談内容を元に論文をAntigravityに厳選してもらい、自分の興味に沿った論文リストを作成してもらった。これは、掲載論文全体のリストとは別に作成した。
結果、174本の論文のリストを作成することができた。
中身を見てみると、確かに自分が読みたいと思うような論文ばかりが選ばれている。
まだ大学3年生の夏休み(しかも始まったばかり)なので、これから興味が別の分野に移っていく可能性とはいえ、これを作れるというだけで、Antigravityを使う意味があるのではと思う。
次にAntigravityにやってもらったのは、厳選された論文のリストから、最初に読む論文を選んでダウンロードすること。
一度にダウンロードしまくるのは倫理的に問題があるうえ、そもそも174本も読み切れない。なので5本ずつダウンロードして読むことにした。
最初に読む5本を選ぶのも、Antigravityにやってもらうことにした。先行研究を入れるフォルダの作成も、PDFファイルのダウンロードも、ファイル名の変更も、全部丸投げした。
余談だが、Antigravityに最初に読む論文をなぜそれにしたのか、選んだ理由も説明して、と頼んだら、
- 興味のある分野から偏りがないように選出した
- 基礎的な実験手法・統計のアプローチが使われている(応用が利く)
といった回答があった。
論文のPDFのダウンロードができたら、あとは入手した論文を文献リストに登録するだけだ。
文献リストはNotionのデータベースで管理することにした。先行研究のためのデータベースを作成し、タイトルや著者名、出版年、キーワードなどの情報を流し込んでもらう。
データベースIDを直接Antigravityに伝えると、どこのデータベースに追加するべきなのか分かりやすいようだ。プロパティの設定方法も事前に説明しておき、登録時のルールとして読み込んでもらうと、問題なくデータベースに情報を登録してもらえた。
ただ、他のNotionを使った作業でも言えることだが、地味に時間がかかる。Notionヘビーユーザーでもない限り、CSVで出力してもらう方がよほど手っ取り早い。
ただし、すべてが最初から完璧に動いたわけではなく、途中でちょっとした問題が発生した。そのことにも少し触れておこう。
どのような問題が発生したのかというと、データベース化の際の誤表記が発生した。Notionのデータベースに正しい論文タイトルが登録されていなかったのだ。
なぜ本来のタイトルと少し違うタイトルで登録されたのか調べてみると、Antigravityが集めたデータを英語で管理していたのが原因だった。日本語の論文タイトルをデータベースに入力する際、英語のタイトルをAIが自動で和訳してしまい、それで登録を行ったらしい。
原因が分かったので、データベースに登録する前に必ず元論文の実際の日本語タイトルを確認する、という手順をルール化した。これ以降、正しいタイトルで登録されるようになっている。
ちなみにこの原因の究明も、データベースの修正も、手順のルール化も、Antigravity自身にやってもらった。Antigravityで起こった問題の対処は、できる限りAntigravityにやってもらうのが楽だ。
今さらだが、今回の内容は前回記事「大学生も夏休みの自由研究をやってみたい~Antigravityでどこまでできる?~」の続きになっている。
大学生の夏休みは長いが、長いからと言って無駄にはしたくない。論文を読むのに時間をかけるのは仕方がないことだけど、検索やファイルの整理、データベースの作成には時間をかけたくない。
かつて、プログラマーの三大美徳として、怠惰、短気、傲慢を挙げた開発者がいた。 手作業の繰り返しに耐えられない短気さ。将来の労力を減らすために本気で自動化の仕組みを作る怠惰さ。そして、他人に文句を言わせない完成度を目指す傲慢さを持つこと。
皮肉に満ちたエンジニア用語だが、自分はサボるためなら、仕組み作りにどれだけでも時間と頭を使う。自分のこのサボるための本気は、ある意味でその美徳に忠実なのかもしれない。
Antigravityに面倒な手続きを一瞬で終わらせてもらったおかげで、夏休みを楽しめそうだ。

