Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ChatGPTとNoteableによる科学技術情報分析

hayataka
May 31, 2023

 ChatGPTとNoteableによる科学技術情報分析

ChatGPTとNoteableプラグインを使って、科学技術情報分析ができるかを試した記録と所感メモです。本資料では、下記の分析プロセスにおける活用を試しています。

1. 論文情報収集
arXivから指定した検索条件にヒットするプレプリント情報を収集する。

2. 書誌情報分析
時系列推移、カテゴリ集計、著者集計を実施する。

3. テキストマイニング
キーフレーズ抽出・集計、クラスタリングと解釈、 俯瞰可視化(二次元可視化)を実施する。

汚いままですが、実際のChatGPTとのやり取りや、生成されたスクリプトも資料の中でURLを公開しています。参考になれば幸いです。

noteでも簡単な説明と補足・追加コメントをまとめました。
https://note.com/hayataka88/n/ndfd913dab62f

hayataka

May 31, 2023
Tweet

More Decks by hayataka

Other Decks in Science

Transcript

  1.  はじめに ChatGPTによって、プログラミングスキル関係なく、誰もが⾃然⾔語でデータ・テキストマイニングを実⾏できるようになった。 しかし、素のChatGPTに分析・集計をお願いしても、出⼒された数値が間違っていることが多い。したがって、分析作業をChatGPTにしてもらう には、出⼒結果の信頼性をどう担保するのかが課題だと感じていた。 そんな中、『ChatGPTプラグイン「Notable」だけでデータ分析コンペに挑戦してみた話[1]』という記事を読んだ。Noteable[2]というChatGPTの プラグインを活⽤すれば、上記の課題は解決し、より⾼度なことができるのではないかと考えた。 そこで本資料は、私が⽇々⾏っている科学技術情報分析を事例に、ChatGPT+Noteableでどんなことができるか、下記の分析プロセスごと に試した記録である。汚い状態のままであるが、実際のChatGPTとのやり取り[3]と⽣成されたスクリプト[4]も共有したい。 [1]

    ChatGPTプラグイン「Notable」だけでデータ分析コンペに挑戦してみた話 https://qiita.com/ot12/items/ba74fa150e160d94a71f [2] Noteable https://noteable.io/ [3] ChatGPTとのやり取り https://chat.openai.com/share/35cd3f1b-5e8d-4f7c-98c3-50ebd40d7a47 [4] Noteableによって⽣成されたスクリプト https://app.noteable.io/published/a50d12fa-3224-4419-9e1b-acaa9cfbb24d/arxiv_data_analytics 論⽂情報収集 書誌情報分析 テキストマイニング arXivから指定した検索条件にヒットするプレプリント情報を収集する。 時系列推移、カテゴリ集計、著者集計を実施する。 キーフレーズ抽出・集計、クラスタリングと解釈、 俯瞰可視化(⼆次元可視化)を実施する。 P2 P3-4 P5-7
  2.  論⽂情報収集:arXivからのプレプリント情報取得 • 最初はarXiv APIをそのまま叩きに⾏こうとしていたが、うまいクエリが⽣成できずにエラーになってしまった。そこで、arXiv APIのpythonラッパ ーであるarXivを使うように指⽰したところ、うまく実⾏された。 • 今回、ChatGPTを含むプレプリントを取得している。ブラウザでの検索でも、API経由でもどちらも600件程度(少しズレはある)。 ※⾃動⽣成されたクエリ

    ⽣成されたクエリは、指定条件に則っていないので、ちゃんと⾒直す必要がある。ただし、今回のケースでは 実質似た条件になる。検索している”ChatGPT”という単語は最近のものなので、全期間でも2021年以 降でも同じ。また検索対象がallでも、この単語が出るのは基本的にTitle, Abstractだと考えられるため。
  3.  テキストマイニング:アブストラクトからのキーフレーズ抽出と集計 各レコードについて、Abstractに含まれるキーフレーズを抽出し、集 計してください。ここには、表形式で上位10個を表⽰してください。 指⽰代名詞、⼈代名詞を除いた場合の上位10キーフレーズを 教えてください。 • ⼿段を指定せずに依頼すると、はじめはnltkのrakeを利⽤していたが、途中回線が切れてしまった。やり直したら、SpaCyのTextacyを使い 始めた。時と場合によって、実⾏されるライブラリが異なることは注意。 •

    元々、⽂献数で集計して欲しいと思っていたが、出現した回数を算出している様⼦。この辺りの集計単位はちゃんと指⽰しないといけない。 • 単純に聞くだけでは⼀般的な⾔葉が並ぶので、ストップワード設定などが必要。今回は試しに、代名詞を除外して欲しいと依頼してみた。 ただ、それでもthisが残ったりしているので取り切れていない。意味のあるキーフレーズだけを抽出するには⼯夫が必要。
  4.  テキストマイニング:俯瞰可視化(⼆次元可視化) Abstractを⽤いて、レコード同⼠の類似性に基づ て、⼆次元可視化をしてください。なお、ここには 対話的に表⽰できる図を表⽰してください。具体 的にはプロットにマウスオーバーすると、Titleと arxiv_idが表⽰されるようにしてください。 • ⼿段を特定せずに⼆次元可視化の依頼をすると、ベクトル化にはTF-IDF、可視化にはT-SNE法が利⽤されていた。「doc2vecでベクトル 化してUMAPで可視化したい」などと依頼することも可能だと思う。(少なくともUMAPで依頼して実⾏できることは確認済み)。

    • 対話的可視化は⼿段の指⽰がないとplotlyを利⽤していた。これもBokehでやって欲しいなどと依頼すればできるだろう。 • ストップワードや各種パラメータの設定によって、より良い俯瞰可視化をしないといけない。きっとこれもプロンプトでできてしまうのではないかと 思う。⾯倒な場合は、⽣成されたコードを直に触って⼿直ししてしまっても良いだろう。
  5.  おわりに 最後に雑多な所感をまとめておく。 • 本資料で実施した実験⾃体は1.5時間程度。知識がない⼈が1から⾃⼒でプログラミングしてやるのと⽐べると、断然早いと思う。 • ChatGPTによって、プログラミングができない⼈でも、データへのアクセスやデータ・テキスト分析が容易にできるようになった。 • ⼀定レベルのエラーは⾃動的に修復・実⾏してくれる。このエラー回復能⼒はありがたい。 •

    素のChatGPTだけでは分析・集計は任せられないが、Noteableを活⽤すればスクリプトを⽣成して実⾏してくれるので、信頼性と確認の しやすさが増した。ただ、⽣成されたコードが依頼したものと違うことがあるので、⾃分で確認できる⼒は必要である。 • みんなが⾔う通り、「⾃分のやりたいことがある」、「それを的確な指⽰を出せる」、「出⼒結果を確認してフィードバックや⾃分で修正できる」、 「結果を考察・解釈できる(考察・解釈もAIと対話的に⽀援してもらえる)」ことは、⼈間側にとって⼤切なことだと感じた。そのためには、 データ分析、アルゴリズム、プログラミング等の知識が重要であることは変わらない。 • プログラミングを使ったデータ分析にチャレンジしたいけど、なかなか⼿を出せてなかった⼈にとって良い学習環境である。⾃分のやりたいことを ChatGPT + Noteableで⽣成してもらい、スクリプトを⾒て勉強するのは良いのではないか。 • こちらから⼿段を提⽰せずに、逆に良い⼿段を提案して欲しいと依頼すると、どこまでより良いものを作り上げてくれるのか。「試⾏錯誤の⾃ 動化」能⼒に興味がある。 • arXivだけでなく、APIを提供している他の科学技術情報DBも試してみたい。例えば、PubMed、Lens、OpenAlex、Semantic Scholarな ど。特許系DBも試してみたいので、API取得できるものをご存知の⽅は教えてください。