医薬業界のデータ解析

新型コロナウイルスに関する論文検索システムを開発・無償提供

概要

 2019年12月に中国武漢で発見されたCOVID-19(新型コロナウイルス)は瞬く間に世界中をパンデミックに陥れました。COVID-19は、短期間のうちに感染が広がったため、情報が錯綜している状況です。その中で、重要となってくることは、 信頼のおけるジャーナルに投稿された最新の論文を読み情報を収集することです。しかし、論文は各ジャーナルごとに管理されており、またCOVID-19に関しては数多くの論文が提出されています。そのような状況の中で、自分が求めている情報を検索することは非常に難しいというのが現状です。

 今回、紹介するCOVID-19論文検索システムは、COVID-19に関するリスク要因(肥満、性別、食事など)、雑誌名、論文の公開日などを指定することで、自分が求める論文を効率よく検索することのできるシステムになります。リスク要因を指定すると、そのリスク要因との関連度が高い順に論文が表示されるようになっており、COVID-19関連の論文を検索する上で役に立つと考えられます。

論文検索サイトはこちら

 以下では、そのシステムがどのように構築されているのかを解説していきます。まずでは今回のサービスを作成する上で使用したデータセットの解説を行います。次にどのようにして指定したリスク要因と論文の関連度を計算しているのかを解説します。そして、それを元にどのようにしてWebアプリケーション化するのかを解説していきます。

使用したデータセット

 今回のサービスを作成する上で使用したデータセットはKaggleのCOVID-19 Open Research Datasetです。データセットの中には、COVID-19以外の論文や本文が1000文字に満たない論文などがあるので、それらは除きました。最終的に使用するデータセットのカラムは、論文の公開日、タイトル、要約、その論文へのURL、著者、ジャーナル名です。要約の存在しない論文もあったため、そのような論文に対しては、BERTを使った要約抽出用のモデルbert-extractive-summarizerを用いて要約を作成しました。KaggleのAPIを使うとコマンドラインからデータをダウンロードすることができるので、APIを使い、定期的に最新のデータセットをダウンロードするようにしました。

リスク要因との関連度測定

 指定したリスク要因と論文の関連度を計算し、検索システムに組み込みました。関連度の計算方法の大まかな流れは以下のようになっています。

Step1: Query Expansion

ユーザーの調べたいクエリ(e.g.性別)を受け取ると、Gloveと呼ばれるsemantic modelを使い、そのクエリと意味的に似た単語を抽出し、それをクエリに付け加えます。ここで使われているGloveとはスタンフォード大学により作成された単語分散表現です。有名なWord2vecは各単語から周辺単語を予測するというタスクを解くことによって単語ベクトルを得ているので局所的な統計に依存していますが、Gloveはコーパス全体から得られる単語間の共起行列を持ち込んだ重み付き最小二乗法で学習して単語ベクトルを得ているので、Word2vecより精度は高いと言われています。

Step2: TF-IDF-based search engine

次に、論文内の要約の各単語とStep1で得たクエリのTF-IDFを測ります。それらを行列として扱うことで、コサイン類似度を用いて文書間の類似度を計算しています。TF-IDFとはTFという概念とIDFという概念を組み合わせたものになります。TFとは各文書においてその単語がどのくらい出現したかを意味し(つまり文章中に出現する頻度が多いほど重要)、IDFはある単語が出てくる文書頻度の逆数(多くの文章中に出現する単語はあまり重要ではない)です。そのTFとIDFを掛け合わせた値がTF-IDFとなります。結果として、その文章を特徴付ける単語には大きな値が、そうでない単語には小さな値が付与されます。

 このような二つのステップを踏むことで、クエリを与えると、そのクエリと各論文の要約との間の類似度をスコアとして出力してくれます。このスコアが高ければ高いほど、その論文は与えられたクエリと関連性が高いということになります。この情報検索技術を用いて今回のCOVID-19論文検索システムは構築されています。

Webアプリケーション化

 Flaskを用いてWebアプリケーション化しました。特徴としてはFlaskにDashを組み込んで開発を行いました。DashはPloty社が開発しているPython用のWebアプリを作成するためのフレームワークであり、手軽にインタラクティブなグラフやテーブルを表示させることができます。

 今回のサービスはリスク要因、雑誌名、公開日を指定することで論文を選択できるように設計しました。特に、即応性を高くするため、事前に考えうるリスク要因に関して、各論文との関連度合いをTF-IDFを用いて事前に計算しておきます。こうすることで指定したリスク要因と関連度の高い論文を、その計算しておいた類似度スコアに応じて素早く抽出することができるようになります。

 しかし、データセットは随時最新のものに更新されるため、このまま放置しておくと、このサービスで確認できる論文が古くなっていってしまいます。そのため、常に最新のデータを定期的にダウンロードし、リスク要因との関連度を計算するように設計しました。こうすることで、常に最新の論文を検索できます。

終わりに

 今回は手短にですが、論文などの書類の検索システムについて解説しました。今回紹介した検索システムは単純なものですが、研究者の方々の論文検索を少しでもお手伝いできれば幸いです。

参考URL

https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge

https://dev.classmethod.jp/articles/yoshim_2017ad_tfidf_1-2/

ABOUT ME
北爪 聖也
ダメ営業マンからデータサイエンティストへキャリアチェンジ。 技術とビジネスサイドの橋渡しが出来るため、ダメ営業マンの経験も役に立ちました。 広告代理店ADKにて3年勤務→データ分析受託の会社DATUM STUDIOにて1.2年勤務後、独立。
【事例集プレゼント】業務効率化したい医薬業界の方

株式会社piponでは医薬業界の企業様向けにDXの成功事例を集めた医薬DX事例集をe-bookとしてご提供しております。

ご興味ある方がいらっしゃいましたらこちらのフォームよりご連絡頂けると嬉しいです。