Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GROBIDを用いて論文PDF翻訳補助ツールを作成する
Search
matsumototo180
May 23, 2022
Programming
1
2.6k
GROBIDを用いて論文PDF翻訳補助ツールを作成する
第1回Tokushima.R 発表資料
matsumototo180
May 23, 2022
Tweet
Share
Other Decks in Programming
See All in Programming
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
120
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
230
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
150
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
640
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
130
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
5k
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
710
これならできる!個人開発のすゝめ
tinykitten
PRO
0
140
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
Grafana:建立系統全知視角的捷徑
blueswen
0
280
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
260
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
180
Featured
See All Featured
Chasing Engaging Ingredients in Design
codingconduct
0
95
Abbi's Birthday
coloredviolet
0
4.2k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
190
Designing for Performance
lara
610
70k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
1
880
AI: The stuff that nobody shows you
jnunemaker
PRO
1
160
Statistics for Hackers
jakevdp
799
230k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
100
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
97
GraphQLとの向き合い方2022年版
quramy
50
14k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
54
Transcript
GROBID を用いて論文PDF 翻訳補助ツールを作成する 松本 涼
目次 1. はじめに 2. つくりたいもの 3. GROBID とは 4. 実装
5. 実際の使用感 6. 今後の課題
はじめに
自己紹介 松本 涼 デザイン型AI 教育研究センター 特任技術員 創成科学研究科 地域創成専攻 2 年(修士)
研究テーマ:深層学習を用いた音楽のジャンル変換 wav やmp3 などの楽曲データのジャンルを変換する 楽曲データ [Rock] 楽曲データ [Hip-Hop] ジャンル変換
背景 英語の論文を読む機会が多い 英語が苦手・・・読むのに時間がかかる 機械翻訳を使って読む
機械翻訳の利用 Google 翻訳や DeepL など そこそこ自然な翻訳が得られる 英語で読むよりも早く理解できる PDF 形式の論文の翻訳に難あり
PDF ファイルの翻訳 ファイルごと翻訳する (Google 翻訳 ) 翻訳文
None
PDF ファイルの翻訳 不自然な翻訳になりがち 文章内の改行が正しく認識されていない 手作業で修正する必要あり
そのままコピペした場合
手作業で修正
PDF ファイルの翻訳 文章コピペ補助ツール Shaper - dream-exp.net PDF 論文翻訳補助 | EVT1.COM
改ページ・脚注などの問題が残る PDF 論文翻訳補助 | EVT1.COM
つくりたいもの
つくりたいもの 以下のような機能のツールを作成したい PDF ファイルを入力したら翻訳したものを出力 翻訳文が正しいかどうか確認できるように、原文と対照して表示 翻訳文はその場で編集可能
つくりたいもの PDF ファイルを入力したら翻訳したものを出力 英語 変換 日本語 機械翻訳にかける作業の自動化
つくりたいもの 翻訳文が正しいかどうか確認できるように原文と対照して表示 訳が正しいかどうか確認するための機能
つくりたいもの 翻訳文はその場で編集可能 訳に不自然な点を見つけたら修正できるようにする
GROBID とは
GROBID とは GROBID...GeneRation Of Bibliographic Data PDF のような生の文書の内容を 抽出、解析、再構築するための機械学習ライ ブラリ
Java で書かれたものだが、 Python 用のクライアントが用意されている オープンソース https://github.com/kermitt2/grobid
GROBID とは GROBID では以下のようなことができる 書誌情報(タイトル、抄録、著者、所属、キーワードなど)の抽出 参考文献の抽出と解析 論文中の引用コンテキスト認識と、その参考文献へのリンク 著者名(姓、名、ミドルネーム)、所属、日付、住所など細かい情報の解析 文書全体のセグメンテーションと、テキスト本文の構造化 (段落、セクションタイトル、参考文献の吹き出し、図、表など)を含む、PDF
論文からの全 文抽出 様々な書誌情報が XML/TEI 形式に構造化されて抽出される
実装
実装 GROBID を用いて論文 PDF からテキストを抽出し機械翻訳にかけるための整形処 理を行う 以下のような流れのプログラムを作成する GROBID PDF の⼊⼒
本⽂抽出・構造化 PDF の⼊⼒ 整形した HTML ファイル
実装 利用するライブラリ・プログラム等 GROBID grobid_client_python tei-xsl (teitohtml ) BeautifulSoup FastAPI Google
Chrome PDF ファイルからXML/TEI ファイルへの変換(抽出) GROBID のPython 用クライアント XML/TEI からHTML への変換(CLI ツール) HTML ファイルの整形 ツールのWeb アプリ化 入出力のインターフェイス・翻訳に利用
実装 処理の流れ 1. GROBID サーバー&Web アプリサーバー(FastAPI )を起動 2. ブラウザ(Chrome )のフォームからPDF
ファイルを受け取る 3. Python スクリプトでPDF をGROBID に入力 4. GROBID からの出力をHTML に変換(teitohtml ) 5. GROBID からの出力をPython (BeautifulSoup )で整形 6. ブラウザに整形したHTML ファイルを返す 7. ブラウザの翻訳機能で翻訳する
実際の使用感
今後の課題 図・表・数式などを見やすく表示する 現状:文章だけしか抽出できていない GROBID は図・表・数式の出現する座標を取得できるので 構造を保ったまま表示できるようにしたい 翻訳品質の向上 現状:Chrome の翻訳機能を利用 DeepL
等のAPI を利用するようにしたい 編集機能の向上 現状:HTML5 の編集機能(contentEditable 属性) を利用 より使いやすい編集機能にしたい