【AI】網羅的に論文を検索するためのPubMed検索式をChatGPTに生成させる方法
■PubMedで目的に合った論文を網羅的に探す際には検索式が必要であり,自分で検索式を組み立ててもいいが手間ではある.そこでChatGPTに検索式をたててもらう方法がある.では,ChatGPTに検索式を生成してもらう際にどのようにプロンプト(質問や要求)を組めばいいだろうか?一番多いであろう質問の仕方は「『〇〇』についての論文をPubMed検索するための検索式を考えてください」という簡潔なパターンだと思われる.サラッと気軽に検索して程度ならこれでもいいだろうが,網羅的検索には向いていないプロンプトである.以下では,網羅的検索を行うためのPubMed検索式をChatGPTに生成してもらうための手順を解説する.なお,網羅的ではない検索をAIで行う場合は,ElicitかConsensusを使用するのがおすすめである(以下を参照).
AIを活用した医学論文検索■ChatGPTに適切な回答を生成させるためには,以下のようなコツが必要であり,検索式を生成させる際も同様である.
https://drmagician.exblog.jp/30307232/
ChatGPTに適切な回答を生成させるためのプロンプトのコツ■検索式を生成させる際の手順を考えていく.ここでは具体例として「市中肺炎に対するステロイド」について論文検索式を生成させてみよう.
①バックグラウンドを明確にする
②目的を維持させ続ける
③曖昧な表現を避ける
④略語を使用しない
⑤ChatGPTにやってもらいたいことのプロセスを明確にする
⑥段階的に考えてもらう
手順1.Clinical Questionを明確にし,ChatGPTに目的を維持させる.
■Clinical Question(CQ)は検索の目的としての大前提となる.そして,検索式を生成するというゴールに至るまでのスレッドの流れを作る必要がある.その上で一番最初のクエリ(ユーザーが入力する質問欄)は重要なポイントであり,適宜このクエリを認識させ続ける必要がある.この際,「①バックグラウンドを明確にする」「②目的を維持させ続ける」「③曖昧な表現を避ける」「④略語を使用しない」を意識したプロンプトテクニックがある.
■まず目的を明示する.ここでの目的は「Clinical Questionに回答しうる医学論文をPubMedで検索するための検索式を生成する.」である.次に,CQを書く.ここでは「成人の市中肺炎に対するステロイドの投与は有用か?」である.
■ここまでは誰でも行うと思うが,次からである.まず,CQの骨格となる各要素P(患者・対象:Patients/Participants),I(介入:Intervention),C(対照:Comparison),O(評価項目:Outcome)から構成される「PICO+α」を作成しておく.
■そして,ここからは重要なプロンプトテクニックであるが,行うことはコンテキスト(CQにかかわるバックグラウンド)を添えることである.ChatGPTは,スレッド内で一番最初のクエリから全体的なコンテキストを理解するため,全体像や目的を維持し続ける上で役立つ.これにより,ChatGPTはより関連性の高い応答を生成する.また,コンテキストが添付されることでユーザーからの質問や要求がより具体的になり,ChatGPTの回答生成もそれに応じて精度が向上する.コンテキストには,質問の背景,目的,特定の要件などの情報をChatGPTに提供する.ただし,あまりに情報が多くなり過ぎると,質問が複雑になりすぎてChatGPTが理解しにくくなる可能性もあるため,適度なバランスにする必要がある.
■加えて,最初のクエリにタグを付けることでさらに正確性が増す(タグは自由に設定する).これは,スレッド内で特定のクエリにタグをつけておくと,別のクエリにおいてタグを提示することで,最初にタグを付けたクエリにChatGPTが適切にたちかえることができる.ここではスレッド内での目的,CQ,コンテキストにたちかえさせることになる.このタグ付けテクニックは,ChatGPTが不正確な回答を生成する原因の一つであるハルシネーション(幻覚)を98.88%排除できたと報告されている(https://arxiv.org/abs/2306.06085).
■以上を踏まえて,一番最初のクエリは以下のようになる.なお,ChatGPTはこの段階で検索式を提示してくるが,後で説明するプロセスを経ていないものなのでこれは一旦無視でよい.
クエリ1手順2.CQからPICO+αを作成する.
以下のClinical Questionに回答しうる医学論文をPubMedで検索するための検索式を生成します。
Clinical Question:成人の市中肺炎に対するステロイドの投与は有用か?
P:成人の市中肺炎患者
I:ステロイド
C:プラセボまたは標準治療
O:効果
コンテキスト:成人市中肺炎において,ステロイドの投与による効果はまだ確立されていません。ステロイド投与は抗炎症効果が期待できる一方で免疫抑制の副作用も有し,また血糖値上昇の懸念もあります。CQに回答しうる無作為化比較試験を収集し,その益と害についてエビデンスをまとめるのが目的です。
タグ:Source01
■2つ目のクエリ以降で検索式を生成していく.CQの内容にもよるが,できるだけ網羅的に検索するならPI+αのみが推奨される.CとOは比較対象の介入があったり,特定のアウトカムを調べたい場合に加えるとよいだろう.また,網羅的に検索するためには「感度が高く特異度が低い検索式」が必要である.
■ここで,「『PI+α』について感度が高く特異度が低い検索式を生成してください」としてしまうと,網羅的検索式にはならない可能性がある.ここは段階的にP,I,+αについてそれぞれで検索式を生成してもらう方がよい.その際には1つの検索式につきクエリ1つを使った方がいいだろう.これは,PI+αの各要素についてワンステップでまとめてしまうと,限られた回答時間内で生成するため,検索式が簡潔になってしまい,感度が下がってしまう恐れがある.ただし,クエリを分けることのデメリットもあり,ChatGPTが認識するスレッド全体の流れが断片的になってしまい,CQから離れすぎた検索ワードが紛れ込むこともある.そのデメリットを補うために手順1のタグ付けがある.
クエリ2
Clinical Quetion(タグ参照:Source01)のPICOから検索式を生成します.
「成人の」「市中肺炎」に該当するそれぞれの検索ワード(英語)をリストアップし,それらを組み合わせて感度が高く,特異度が低い検索式を生成してください。
また,この検索式を#1とします。
タグ:Source02
ChatGPT回答
"成人の"と"市中肺炎"に該当する検索ワードを英語でリストアップすると、以下のようになります。
成人の:
"adults"
"adult population"
"elderly" (高齢者にも適用)
市中肺炎:
"community acquired pneumonia"
"CAP"
これらの検索ワードを組み合わせると、感度が高く特異度が低い検索式が次のようになります。
#1: (("adults"[Title/Abstract] OR "adult population"[Title/Abstract] OR "elderly"[Title/Abstract]) AND ("community acquired pneumonia"[Title/Abstract] OR "CAP"[Title/Abstract]))
この検索式は成人における市中肺炎に関連する論文を広範囲に検索します。
クエリ3
Clinical Quetion(タグ参照:Source01)のPICOから検索式を生成します.
「ステロイド」に該当する検索ワード(英語)をリストアップし,それらを組み合わせて感度が高く,特異度が低い検索式を生成してください。
また,この検索式を#2とします。
タグ:Source03
ChatGPT回答
「ステロイド」に該当する検索ワードを英語でリストアップすると以下のようになります:
"steroids"
"corticosteroids"
"glucocorticoids"
"hydrocortisone"
"prednisone"
"dexamethasone"
"methylprednisolone"
これらの検索ワードを組み合わせると、感度が高く特異度が低い検索式は次のようになります:
#2: ("steroids"[Title/Abstract] OR "corticosteroids"[Title/Abstract] OR "glucocorticoids"[Title/Abstract] OR "hydrocortisone"[Title/Abstract] OR "prednisone"[Title/Abstract] OR "dexamethasone"[Title/Abstract] OR "methylprednisolone"[Title/Abstract])
この検索式はステロイドに関連する論文を広範囲に検索します。
クエリ4手順3.検索式を合成する
Clinical Quetion(タグ参照:Source01)のPICOから検索式を生成します.
「無作為化比較試験」に該当する検索ワード(英語)をリストアップし,それらを組み合わせて感度が高く,特異度が低い検索式を生成してください。
また,この検索式を#3とします。
タグ:Source04
ChatGPT回答
「無作為化比較試験」に該当する検索ワードを英語でリストアップすると以下のようになります:
"randomized controlled trial"
"randomised controlled trial"
"RCT"
"random allocation"
"randomly allocated"
"allocated randomly"
"randomized"
"randomised"
これらの検索ワードを組み合わせると、感度が高く特異度が低い検索式は次のようになります:
#3: ("randomized controlled trial"[Title/Abstract] OR "randomised controlled trial"[Title/Abstract] OR "RCT"[Title/Abstract] OR "random allocation"[Title/Abstract] OR "randomly allocated"[Title/Abstract] OR "allocated randomly"[Title/Abstract] OR "randomized"[Title/Abstract] OR "randomised"[Title/Abstract])
この検索式は無作為化比較試験に関連する論文を広範囲に検索します。
■次にクエリ5で検索式を合成させて完成である.
クエリ5■かなり回りくどいことをやっていると思われるかもしれないが,このようなプロンプトをテンプレート化しておけば効率的にPubMed検索式を生成することが可能である.
検索式#1(タグ:Source02),#2(タグ:Source03),#3(タグ:Source04)を以下のように合成してください.
(#1) AND (#2) AND (#3)
ChatGPT回答
検索式#1、#2、#3を組み合わせると以下のようになります:
((("adults"[Title/Abstract] OR "adult population"[Title/Abstract] OR "elderly"[Title/Abstract]) AND ("community acquired pneumonia"[Title/Abstract] OR "CAP"[Title/Abstract])) AND ("steroids"[Title/Abstract] OR "corticosteroids"[Title/Abstract] OR "glucocorticoids"[Title/Abstract] OR "hydrocortisone"[Title/Abstract] OR "prednisone"[Title/Abstract] OR "dexamethasone"[Title/Abstract] OR "methylprednisolone"[Title/Abstract])) AND ("randomized controlled trial"[Title/Abstract] OR "randomised controlled trial"[Title/Abstract] OR "RCT"[Title/Abstract] OR "random allocation"[Title/Abstract] OR "randomly allocated"[Title/Abstract] OR "allocated randomly"[Title/Abstract] OR "randomized"[Title/Abstract] OR "randomised"[Title/Abstract])
この検索式は、成人の市中肺炎患者に対するステロイドの投与を対象とした無作為化比較試験を広範囲に検索します。