---
# System prepended metadata

title: 論文のPDFデータからのBIF情報自動抽出に向けたツールの検討(第一弾)

---

# 論文のPDFデータからのBIF情報自動抽出に向けたツールの検討(第一弾)

## 1.目的

BIF情報を論文のデータから自動抽出するツールの開発を目指す。具体的には、現時点のBIFにおいて、シートCircuitsにおけるCircuit ID、Names及びProcess（Function?）、 シートConnectionsにおけるSender Circuit ID(sCID)、 Receiver Circuit ID(rCID)及びその補足情報について、論文のPDFデータから自動抽出することを目指す。 
→あくまで、図や表から情報抽出をすることを前提にする。

## 2.ツールを構成する要素について

前章で述べたツールにおいて想定される作業の流れは以下の通りである。

```mermaid
graph TD
    論文データを準備する --> 図Figure.や表Tabel.を抜き出す
    図Figure.や表Tabel.を抜き出す --> 図や表中の単語を抜き出す
    図Figure.や表Tabel.を抜き出す --> 図の中から矢印を認識する
    図の中から矢印を認識する　--> sCIDとrCIDを埋める
    図や表中の単語を抜き出す　--> 単語を捕捉した段落を抜き出す
    単語を捕捉した段落を抜き出す --> Process?Function?を埋める
    図や表中の単語を抜き出す　--> CircuitIDとNamesを埋める
```

次章以降で各作業について詳しく述べる。


## 2.1 論文データを準備する

論文データはPDFであることを想定する。1980年代など古い論文のPDF形式の場合、後述するライブラリでは図や表の情報が抜き出せない場合があり得るが、その対応については今後の検討課題とする。

## 2.2 図Figure.や表Table.を抜き出す

今回のツール中では、PDFFigure2.0、PyMyPDF、またはLayoutParserを利用した抽出を考えている。各種ツールの概要は以下に述べる。
### 2.2.1 PDFFigure2.0
[PDFFigure2.0](https://ai2-website.s3.amazonaws.com/publications/pdf2.0.pdf)では論文中のFigureとその説明文、Tableを抜き出すためのライブラリとして開発されている。

![](https://i.imgur.com/6HPuTu1.jpg)
参考） PDFFigure2.0で実際に抽出される情報を可視化したもの、画像はPDFFigureの[原文](https://ai2-website.s3.amazonaws.com/publications/pdf2.0.pdf)より引用

### 2.2.2 PyMyPDF

[PyMyPDF](https://pymupdf.readthedocs.io/en/latest/)では、PDFファイルを操作する各種ライブラリが充実していて、[How to Extract Images: PDF Documents](https://pymupdf.readthedocs.io/en/latest/recipes-images.html#how-to-extract-images-pdf-documents)あたりの情報を利用するとPDF中からの画像情報が抽出できると考えられる。

### 2.2.3 LayoutParser

[LayoutParser](https://github.com/Layout-Parser/layout-parser)は論文に限らずドキュメントから図や表、文章などの各要素を分けて抽出することができるライブラリで、PDFに限定したPDFFigure2.0やPyMyPDFに比べると、論文以外のフォーマットの文書にも適用できることから、PDFデータがなく、本文がWeb上に記載されている稀有なケースの論文にも適用できるメリットがある。


上記の３つのツールを試しつつ、後述する別の機能との連携を考えて利用するライブラリを選択する。


## 2.3 図や表中の単語を抜き出す

2.2で抜き出した図や表の中で、脳部位に関する単語を抜き出すためには、画像中の文字を抜き出すようなOCRの仕組みを考える必要がある。商用利用は現在不可となっているが(Microsoftのライセンス関係のため)、[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)はさまざまなシーンにおけるOCRを高精度で実現したライブラリである。英語版であれば学習済みのモデルも使用可能なことから、今回はPaddleOCRを利用して単語情報の抽出を考える。
![](https://i.imgur.com/mYB82ju.png)
参考）PaddleOCRの利用例、画像左側が実際の画像で、右側がPaddleOCRによって処理された際の情報。画像はPaddleOCRの[Githubページ](https://github.com/PaddlePaddle/PaddleOCR)より引用

## 2.4 図の中から矢印を認識する

SenderとReceiverの関係を抜き出すために必要となるため、図中の矢印を認識する必要がある。
![](https://i.imgur.com/cObRZ7a.png)
参考）[Parkinson’s disease as a system-level disorder](https://www.nature.com/articles/npjparkd201625.pdf)より、実際に論文中に記載されている図。矢印や丸印によって、SenderとReceiver、さらには伝達される情報の違いを表している。

現状、Arrow型（矢印の形状のもの）を認識する問題は[Poisson-FOCuS](https://www.researchgate.net/figure/A-schematic-of-the-detection-system-with-the-arrow-thickness-corresponding-to-the_fig2_362429232)や[CBIR](https://link.springer.com/article/10.1007/s13042-016-0623-y)で行われているが、画像にあるような丸印の認識は学習済みモデルを使用しただけでは認識できないので、新規にモデルを作るなどの対策が必要となる。但し、論文ごとに色々な表記で記載されていることもあるため、認識問題にしてしまうと際限がない可能性もあることから、この章についてはうまくいく方法を検討する必要がある。

## 2.5 単語を捕捉した段落を抜き出す

Circuit ID、あるいはsCID、rCIDに対応する単語を抜き出してから、それらの単語を説明する文章を論文中から抜き出すことを考える。今回の場合、[LayoutParser](https://github.com/Layout-Parser/layout-parser)のように論文をセクションごとに区切っておいて、[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)を利用してPDF中の文章をテキスト化し、単語に対応する文章を抜き出すことを考えている。抜き出したい情報としては
```
a. Process → 仮説／モデル論文,
b. OutputのSemantics,→レビュー論文／教科書
c. Neural Activity→実験論文
```
の３つを考えている。
(現時点では要約や必要な情報のみを抜き出す仕組みを作るのは難しいため、まずは抜き出した段落を全て列挙し、人手によって振り分けるようにしていく。)

## 3. 今後のアクション

1. 実装のスケジュールを決める
2. 各種ライブラリの試走を行う（題材はHCDにトライアルしたことのある、[Parkinson’s disease as a system-level disorder](https://www.nature.com/articles/npjparkd201625.pdf)に対して行う）
