DoclingでOffice文書から情報の読み取りを行う(Word・Excel・PowerPoint)
ドキュメント変換のツールである Docling を使って、Microsoft Officeの各ファイル(Word・Excel・PowerPoint)をどのくらい読み取ることができるのか、検証をしてみました。
Doclingそのものについては、公式サイトや下記の記事をご覧下さい。
※検証時はDoclingのバージョンとして 2.37.0 を使用しており、今後のリリースによって挙動が変わる可能性があります。
共通のポイント
Office文書はOCR処理されない

Markup-based formats like HTML, Markdown, or Microsoft Office (Word, PowerPoint, Excel) as well as plain formats like AsciiDoc can be transformed directly to a DoclingDocument representation with the help of several third-party format parsing libraries.
During parsing, we identify and extract common document elements (e.g., title, headings, paragraphs, tables, lists, figures, and code) and reflect the correct hierarchy level if possible.
( Docling: An Efficient Open-Source Toolkit for AI-driven Document Conversion より。)
上図のフローや引用の通り、PDF・画像以外のファイルはSimple Pipelineで処理されるため、OCRなどは行われないようです。
そのため、Word・Excel・PowerPointについては、
- ファイル中のテキストの部分については、読み取りによる誤字や脱字は基本的に発生しない(例外などはそれぞれの章で後述)
 - ファイル中の画像については、OCRなどされず、そのまま画像として扱われる
- 
force_full_page_ocrオプション も影響しない 
 - 
 
という挙動が確認できました。
公式の実装例 などを参考に実装してPythonで試してみましたが、パワーポイントなどのフォーマットに、PDF用のフォーマットオプションや StandardPdfPipeline ・ VlmPipeline を紐づけようとすると、変換実行時にエラーが発生しました。
pipeline_options = PdfPipelineOptions()  # 本来はPPTXならPipelineOptionsクラス
# …省略…
format_options = {
    # エラー
    # InputFormat.PPTX: PdfFormatOption(pipeline_cls=StandardPdfPipeline,
    #                                   pipeline_options=pipeline_options)
    # エラー
    #InputFormat.PPTX: PowerpointFormatOption(pipeline_cls=StandardPdfPipeline,
    #                                         pipeline_options=pipeline_options)
    # エラーにはならないがPDF向けのオプションは無効そう
    InputFormat.PPTX: PowerpointFormatOption(pipeline_cls=SimplePipeline,
                                             pipeline_options=pipeline_options)
}
doc_converter = DocumentConverter(
    allowed_formats=[InputFormat.PPTX, InputFormat.PDF],
    format_options=format_options
)
画像部分の出力方法を決めるimage_modeオプション
検証時はマークダウンファイルに出力して結果を確認しましたが、 image_mode オプションで、元々のファイル内の画像をどう出力するかコントロールできました。
出力の際に EMBEDDED を設定することで、ファイル中に画像を埋め込んでくれました。
# Export Markdown format:
with (output_dir / f"{doc_filename}.md").open("w", encoding="utf-8") as fp:
    fp.write(conv_result.document.export_to_markdown(image_mode=ImageRefMode.EMBEDDED))
↓Reference
Word(.docx)
日本語を含むWordファイルを、Pythonで動かしたDoclingでマークダウンファイルにして確認しました。
ファイル内のコンテンツごとに気になったポイントを記載します。
| コンテンツ | ポイント | 関連issueなど | 
|---|---|---|
| テキスト | ・脚注の関連性が分からなくなる ・目次機能のリンク部分が処理できない ・目次機能のアウトラインの番号がずれる →見出しの大きさで上から順に自動採番された ・レイアウトによっては文章がずれたり失われたりすることがある  | 
|
| 図形・SmartArt | ・取得できない ・中のテキストも無視される  | 
|
| 画像 | OCRに対応していない (取得はできるが画像のまま)  | 
OCR in .docx not Working #1880 | 
| 表 ※Word内の機能で作ったもの  | 
・セル中のテキストに関しては文字化けなどは無かった ・結合されたセルは分割される  | 
以下に変換前(.docx)と変換後(.md)を一部掲載します。
変換前①

変換後①
### 6.2 サービスポータルが実現すべき機能
サービスポータルが実現すべき機能として想定されるものは下記の通りである。これは、新しいガバメントネットワークの構成にあわせ、管理面、セキュリティ、利便性などを考慮した議論において執筆時点で検討した内容である。
表1:サービスポータルが実現すべき機能
| 分類                                | 機能                                               |
|-------------------------------------|----------------------------------------------------|
| アカウント (職員・外部利用者)管理 | アカウントの登録管理                               |
| アカウント (職員・外部利用者)管理 | アカウントの情報更新(属性変更・使用の中断)       |
| アカウント (職員・外部利用者)管理 | アカウントの組織間の異動や併任                     |
| アカウント (職員・外部利用者)管理 | アカウントの削除/廃止                              |
| グルーピング情報の管理              | 組織情報の登録管理                                 |
| グルーピング情報の管理              | 組織に紐づかないグループの登録管理                 |
| アセット・設備管理                  | 業務端末の登録管理                                 |
| アセット・設備管理                  | 共用設備の登録管理                                 |
| アセット・設備管理                  | 調達外端末に関する登録管理                         |
| アセット・設備管理                  | 個別ソフトウェア利用に関する管理                   |
| アセット・設備管理                  | 会議室情報の登録管理                               |
| アセット・設備管理                  | 機器等の一時的な貸し出し管理の機能                 |
| アセット・設備管理                  | メール環境、Web会議・ポータルサイトの登録管理      |
| 特殊権限の管理                      | 特権アカウントの登録管理                           |
| アカウントモニタリング              | 使用されていないアカウントを抽出して一覧にする機能 |
| アカウントモニタリング              | 登録データを様々な形式で集計出力できるBIの機能     |
| パスワード管理                      | セルフパスワードリセット                           |
| サポート                            | 問い合わせ(Q&A)                                 |
| サポート                            | FAQ                                                |
冒頭の目次の番号が自動的に置き換えられています。結合されたセルは分割され、同じ値で埋められています。表の途中でページが分かれても問題ありませんでした。
変換前②

変換後②
## 5 マスターディレクトリの構成
### 5.1 マスターディレクトリが管理すべき項目
政府職員のアカウントやアセットの管理では、アカウント情報だけでなく、グループやアセットなどを含めて、すべての管理すべき対象に一意の識別子を使用して管理する必要がある。また、それらの情報は、それぞれのつながりを正しく反映し、情報と情報を紐付けた管理にすることで、データの整合性を確保することができる。これらの情報を扱うマスターディレクトリは次のような項目を管理することになる。
マスターディレクトリの管理対象の例:
- アカウント情報
- 外部利用者のアカウント
- グループ情報(システム利用における申請ベースの集合)
- スマートフォン
- 複合機等の機器情報
- 入館ゲートなどのセキュリティ情報
- 会議室等のエリア情報
- ソフトウェア等のライセンス情報
- メールやWeb会議などのサービス情報
- 組織等の管理者の情報
箇条書き(リストのレベル)内のいくつかの要素が失われていました。
Doclingはいくつか苦手なWordのレイアウトがあるような感触でした。
Excel(.xlsx)
次に日本語を含むExcelファイルを確認しました。同じくコンテンツごとに気になったポイントを記載します。
| コンテンツ | ポイント | 関連issueなど | 
|---|---|---|
| セルの値 ※テーブルでなく文章など  | 
・表形式で出力 ・結合していたセルは解除され、その分の列/行として全て同じ値が出力される ・部分的にデータが出力に含まれないことがあった ・計算式はそのまま出力  | 
How to Extract Calculated Values Instead of Formulas from Excel Files Using Docling? #1235 | 
| テーブル | ・精度は高く、値のロスもない ・結合していたセルは解除され全て同じ値が出力される  | 
|
| グラフ | 無視された | |
| 画像 | OCRに対応していない | |
| シート | 全てのシートが対象 (出力されないこともあるが条件不明)  | 
以下に変換前(.xlsx)と変換後(.md)を一部掲載します。
変換前①

変換後①
| 現在                                                             |
|------------------------------------------------------------------|
| 現在の年齢                                                       |
| 仕事による世帯の年間所得                                         |
| 世帯の年間支出 (税金を含む)                                      |
| 世帯の年間貯蓄                                                   |
| 年間貯蓄の増加率                                                 |
| 現在の投資ポートフォリオ                                         |
| ポートフォリオ全体の増加率                                       |
| センシティビティ: 予想と比較した、ポートフォリオの増加または減少 |
| 数値                 |
|----------------------|
| 35                   |
| 50000                |
| 37000                |
| 18000                |
| 0.005                |
| 100000               |
| =Portfolio_CAGR_Real |
| 0                    |
| 退職時             |
|--------------------|
| 目標退職年齢       |
| 退職後の引き出し率 |
| 退職後の支出の割合 |
| 数値           |
|----------------|
| 59             |
| 0.033          |
| 0.8            |
| 省略可能な入力 |
| 0              |
| 0              |
| 0              |
| 退職後のその他の収入             |
|----------------------------------|
| 自宅のダウンサイジングによる現金 |
| 年間医療費の増加分               |
「=Portfolio_CAGR_Real」のように計算式のままになっています。
変換前の画像だと1つか2つのテーブルに見えるのですが、空の列があるせいか複数のテーブルとして扱われました。
変換前②

変換後②
| 月間支出を入力   | 月間支出を入力                                                                                           |
|------------------|----------------------------------------------------------------------------------------------------------|
| 月間支出         | =SUM(住宅小計,Food_SubTotal,Transportation_SubTotal,Loan_SubTotal,Taxes_SubTotal,Miscellaneous_SubTotal) |
| 住居費          | 費用         |
|-----------------|--------------|
| 住宅ローン/家賃 | 1000         |
| 電話番号        | 90           |
| 電気            | 56           |
| ガス            | 28           |
| 上下水道        | 20           |
| 受信料          | 34           |
| 廃棄物除去      | 10           |
| 保守/修繕費     | 0            |
| 消耗品          | 0            |
| 住宅保険        | 0            |
| その他          | 0            |
| 住宅小計        | =SUM(C6:C16) |
| 食費     | 費用          |
|----------|---------------|
| 食料品   | 1000          |
| 外食     | 0             |
| その他   | 0             |
| 食費小計 | =SUM(C20:C22) |
冒頭の「月間支出を入力」の値が、結合していた分の2列を埋めています。
全てのシートを処理してくれるのは便利だと思いました。
計算式がそのままになってしまうのは既にissueがあるので、アップデートに期待しています。
PowerPoint(.pptx)
最後に日本語を含むPowerPointファイルを確認しました。気になったポイントです。
| コンテンツ | ポイント | 関連issueなど | 
|---|---|---|
| テキスト | 問題無し | |
| テーブル | 問題無し。ただし、テーブル機能で作成したものだけで、四角図形などで自作したものは処理されない(↓の図形扱い) | |
| 図形 | テキスト部分が抜き出され、図形自体は無くなる | |
| 画像・アイコン | ・OCRに対応していない ・オプション設定で出力に埋め込めるが、位置関係など分からなくなる  | 
Feature Request: Support for .docx and .pptx similar to pdfPipeline #1504 | 
| ノート | 無視された | 
以下に変換前(.pptx)と変換後(.md)を一部掲載します。
変換前①

変換後①
# データスペースの対象領域
14
| 日本標準産業 大分類                 | EU                               | 日本                                             |
|--------------------------------------|----------------------------------|--------------------------------------------------|
| A 農業,林業                         | EDS農業                          | 準公共(農業)                                   |
| B 漁業                               | 漁業                             |                                                  |
| C 鉱業,採石業,砂利採取業           |                                  |                                                  |
| D 建設業                             | EDS建設                          | スマートビル、地下埋設物 国土交通PF              |
| E 製造業                             | EDS産業・工業、モビリティ        | 企業間取引、蓄電池                               |
| F 電気・ガス・熱供給・水道業         | EDSエネルギ                      | 水道                                             |
| G 情報通信業                         | EDSメディア                      |                                                  |
| H 運輸業,郵便業                     | EDS鉄道、モビリティ、 航空、海運 | 自律移動ロボット モビリティ(サービス)          |
| I 卸売業,小売業                     |                                  |                                                  |
| J 金融業,保険業                     | EDS金融                          | 金融                                             |
| K 不動産業,物品賃貸業               |                                  | 国土交通PF                                       |
| L 学術研究,専門・技術サービス業     | EDS文化遺産                      |                                                  |
| M 宿泊業,飲食サービス業             | EDSツーリズム                    |                                                  |
| N 生活関連サービス業,娯楽業         | EDSツーリズム                    |                                                  |
| O 教育,学習支援業                   | EDSスキル                        | 準公共(教育)                                   |
| P 医療,福祉                         | EDSヘルス                        | 準公共(医療)                                   |
| Q 複合サービス事業                   | EDSスマートコミュニティ          | 準公共(スマートシティ)                         |
| R サービス業(他に分類されないもの) |                                  |                                                  |
| S 公務(他に分類されるものを除く)   | EDS行政、 行政(法、調達、安全)   | 公的個人認証 公共サービスメッシュ 準公共(防災) |
| T 分類不能の産業                     | EDSグリーンディール              | CFP カーボンフットプリント                      |
■社会の幅広い分野でデータスペースが
 推進されている
■日本は、データスペースと呼んでいないが、
 準公共プロジェクトなどデータスペースに
 類似の取り組みが数多く行われている
EDS:欧州のデータ戦略で推進されるEurope Data Space
各分野で、単独もしくは複数のプロジェクトが進められており、機能や地域を限定したデータスペースも多い。
各コンテンツの順序などは失われていますが、コンテンツ内の情報は正確に取得できています。
変換前②

変換後②
クリックでコードを表示する/折りたたむ
# 背景:海外のデータスペースの取組






■ EU・米国・中国はデータ連携の手法を巡って野心的に取り組むことで、競争力・影響力を高めている   →日本国内の産業において、対策が必須
【データ収集】
 プラットフォーム企業単体で
 個人の膨大なデータを収集
【活動】
 単体企業で収集した
 ビックデータを活用し
 サービスを展開
米国・中国
EU


3
EU主導による
国際的な標準化
単体企業による
デファクトスタンダード化
社会の
経済活動データ集積型
データスペース
個人の
経済活動データ集積型
データスペース







【データ収集】
 データの基盤、ルールを整備し、
 社会の膨大なデータを収集
【活動】
 国、組織を超えたデータ連携が
 安全に素早く可能となり、
 企業のデータ活用が急進
※Zennの文字数制限のため、マークダウンへの出力後にImage部分を省略して掲載しています。
↓プレビュー(冒頭の一部)。

画像を保持することはできています。
図形やコンテンツの位置関係、画像のサイズなどの情報が失われるため、元のファイルがそれらに依存した表現だと分かりにくい出力になりそうです。
まとめ
Office文書は共通して、Doclingでテキスト部分は高い精度で抽出することができていました。
ただし、画像などはPDF用の処理(パイプライン)の方が、現時点(ver2.37)では多機能で使い勝手が良さそうです。
ファイルの内容によっては、一度PDFにしてからDoclingで処理することも検討した方が良いかもしれません。
簡単に試しましたが、Word・ExcelについてはPDFにする方が漏れる情報が少なく安定する印象です。
PowerPointは図ばかりのスライドだと、スライドごと1つの画像として扱われることがあり、PDF化すべきかどうかはレイアウト次第の面が特に強い印象です。
実装自体は非常に簡単でしたので、Doclingを利用してドキュメントを有効活用していきたいと思います。
関連資料
変換元として利用させていただいたもの
- ゼロトラストネットワークを実現するための政府職員のアカウントやアセットの管理(ディスカッションペーパー)
 - FIRE 見積もりツール
 - データスペース入門 ショート版(PowerPoint)(2.8 MB)
 
公式
公式の実装例
詳細な論文
Office文書であればMicrosoftのこちらも有効かもしれません…
Discussion