非構造データを価値化する！DNPの構造化AI × RAG 体験デモアプリを作ってみた

## はじめに

大日本印刷株式会社（DNP）では、企業が保有する膨大な文書資産を構造化し、新たな価値創出を図る構造化AIビジネスを推進しています。構造化は、単なるデジタル化ではなく、情報の意味付けと階層性を持たせ、機械が理解しやすい形式に変換する技術です。この取り組みにより、既存の文書群から有用な情報を抽出・活用しやすくし、AIによる情報処理を促進するとともに、その処理結果の質を向上させることを目指しています。

詳細は以下のニュースリリースをご覧ください：

- 👉 [生成AIの回答精度を向上させる独自のデータ整形技術を開発](https://www.dnp.co.jp/news/detail/20170163_1587.html)  
- 👉 [「日本語文書の構造化技術」×「AI技術」で生まれたDNP独自の「構造化AI」](https://www.dnp.co.jp/biz/column/detail/20175235_4969.html)
- 👉 [大日本印刷と大阪市　生成AIに適したデータのあり方を検討する連携協定を締結](https://www.dnp.co.jp/news/detail/20175148_1587.html)

本記事では、この構造化AIで生成されたXMLデータを活用する方法の一例として、**Streamlit製の簡易 RAG（Retrieval-Augmented Generation）アプリ**をご紹介します。

## DNP ドキュメント構造化AI について

ドキュメント構造化AIは、PDFやWordなどで作成された文書を、生成AIが参照しやすいデータ形式に整形する技術です。テキスト・画像・表組等が混在したドキュメントに対し、独自のAIモデルを使ってタイトルや本文、画像や表の内容・キャプション等の各要素に分割することで、生成AIが参照しやすい形式にします。

- 元のデータ

![2023年3月期決算短信_飲料事業.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4114699/27d2e255-bcf1-49d6-98c6-a8fa869a145a.png)

- 構造化前のデータ

```text
2023年3月期 決算短信
     :
【飲料事業】
・飲料部門
原材料価格や物流コストの上昇の影響にともない、大型ＰＥＴボトル商品や小型パッケージ商品等の価格改定を実施しました。また、…
その結果、部門全体の売上高は、コンビニエンスストアでの販売が回復したほか、飲食店やネット販売の伸長もあり、516億円（前期比3.8％増）となりました。…
     :
```

- 構造化データ（XML形式）

```xml
<structural-data>
    <filename>00001.pdf</filename>
    <title>2023年3月期決算短信</title>
     :
    <section_1>【飲料事業】</section_1>
        <section_2>飲料部門</section_2>
            <text>原材料価格や物流コストの上昇の影響にともない、大型PETボトル商品や小型パッケージ商品などの価格改定を実施しました。また、…</text>
            <text>その結果、部門全体の売上高は、コンビニエンスストアでの販売が回復したほか、飲料展やネット販売の伸長もあり、516億円（前期比3.8%増）となりました。…</text>
     :
</structural-data>
```

## 構造化データとRAGの関係性

DNPのドキュメント構造化AIを用いることで、文書内の意味や構成を明確化し、再利用しやすいXML形式として出力可能になります。こうした構造化データは、生成AIがより正確に内容を理解・応答するための「検索＋生成（RAG）」技術と非常に相性が良く、以下のような活用が可能です：

1. 構造化された社内ドキュメントから関連セクションを検索・抽出  
2. その内容をプロンプトに組み込み、大規模言語モデル（LLM）が高精度な回答を生成

非構造な PDF や Word 文書では難しかった「意味単位での検索」や「階層的な情報抽出」が、構造化によって効率よく実現できるため、検索精度・応答品質の両面で大きなメリットがあります。

## 開発したデモアプリの特徴

今回のアプリは、構造化データによる効果を直感的に体験できることを目的として、営業や企画担当者がクライアント向けにスムーズなデモを実施できるよう設計しました。
主な特徴は以下の通りです：

- 🖥 **Webブラウザで直感的に操作可能（Streamlitベース）**
- 📂 **構造化データ（ZIP/XML）をアップロードするだけで利用可能**
- 🖼 **画像を含むデータでも対応可能：画像データをメモリ展開し、回答に活用**
- 💬 **自然文による問い合わせにも対応し、業務に近いUIで評価が可能**
- 🔍 **キーワードによるチャンクの並べ替え・フィルタリング機能（ベクトルDB不要）**
- 📊 **可視化されたチャンク一覧により、回答の根拠となった文章を把握可能**
- 🧭 **簡易なプロンプト調整機能で、出力のチューニングが可能**

## アプリの操作イメージ

以下はアプリ画面の一例です。

![構造化データ体験デモアプリ画面１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4114699/a5d23102-a1fd-45e7-ba39-608098ff6c12.png)

1. **構造化データをアップロード**  
   構造化されたデータ（ZIP/XML形式）は自動で解析され、
   チャンク（文書の単位）として一覧表示されます。

2. **自然文で質問を入力**  
   例：「セグメント別の売上高を、図と表を用いて説明してください」など、  
   自然な文章で検索することが可能です。

3. **関連チャンクの抽出と再構成**  
   検索意図に沿って関連度の高いチャンクを抽出し、  
   必要に応じて複数チャンクが統合され、文脈のある回答が生成されます。

4. **非テキスト情報の活用**  
   表や画像などの情報も含めて回答されるため、  
   よりリッチで視覚的に分かりやすい応答が得られます。

## 対応データ形式

アプリは、DNPの構造化AIツールが出力する以下のようなXML形式データに対応しています：

```xml
<structual-data>
  <article>
    <title>DNP業績_会社情報_202403</title>
     :
    <section>2024年3月期の事業環境および決算の概況</section>
    <text>　当連結会計年度におけるDNPグループを取り巻く状況は、‥</text>
    <text>　DNPグループは、環境・社会・経済が急激に変わるなかでも、‥</text>
     :
    <section>セグメント別情報</section>
    <text>セグメント別売上高構成比（2024年3月期）</text>
    <img>images/figure_6.png</img>
     :
  </article>
</structual-data>
```

上記XMLと画像ファイルは、以下のようなZIP形式でアップロード可能です：

```zip
統合報告書2024.zip
├─ DNP業績_会社情報_202403/
│  ├─ DNP業績_会社情報_202403.xml
│  └─ images/
│       ├─ figure_0.png
│       ├─ figure_1.png
│       └─ ...
├─ .../
│  ├─ ...
```

業務文書の多くは複雑な階層構造や図表を含みますが、このような構造化は、複雑な業務文書を機械処理可能にする土台として重要です。

## 構造化データ活用による効果

### ✅ 回答精度の向上

DNPの独自技術で整形されたデータを参照することで、誤回答や非回答の件数を減らし、高い精度での回答を実現します。構造的な文書情報が事前に整理されているため、LLMが文脈を正しく捉えやすくなり、曖昧な質問に対しても論理的な応答が期待できます。

### ✅ 業務効率化の実現

構造化されたデータにより、生成AIが文書内容を正確に理解し、迅速な情報抽出が可能となります。従来、担当者が手動で行っていた検索や抜粋作業をAIが代替することで、大幅な作業時間の短縮が見込まれます。

### ✅ ユーザー体験の向上

自然文による検索入力に応じて、関連するチャンクが抽出・表示され、必要に応じて画像や表が挿入されるため、利用者は「探す」よりも「読む」「判断する」ことに集中できます。直感的なインターフェースと構造化データの可視性により、非エンジニア職種でもすぐに活用が可能です。

---

### 📌 具体例

以下の自然文質問を入力すると、アプリはMarkdown形式で保存された表から該当データを抽出し、比較計算および再整形を経て、見やすい形式で回答を表示します。

> **質問：**  
> 「2023年度3月の売上高と売上高純利益率を、前年度比と併せて表示してください。」

**実際のアプリで表示された結果例：**

![構造化データ体験デモアプリ画面２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4114699/420edff4-f182-4319-9434-d47d03428e39.png)

## 今後の展望：RAGアプリのローカルLLM実装

今後の進化として、ローカル環境で稼働可能なLLMとの連携を視野に入れています。これにより、次のような利点が期待されます：

- **セキュアなオフライン環境での活用**  
  工場や研究施設など、インターネット接続に制約のある現場でも生成AIを安全に活用できるようになります。

- **ドメイン特化による高精度な応答**  
  業種や業務に合わせたカスタムチューニングにより、実務に即した精度の高い応答が可能になります。

- **運用コストの削減**  
  外部APIの利用を最小限に抑えることで、通信コストや課金型サービスへの依存を減らし、長期的なコスト最適化が図れます。

- **信頼性と可用性の向上**  
  インターネット接続に依存しないため、ネットワーク障害など外部要因による業務停止リスクを低減できます。

現在は、RAGアプリをローカル環境で動作させることを目指し、モデルの技術検証を進めています。具体的には、生成結果の品質、処理速度、メモリ使用量といった項目の最適なバランスを見つけることが課題です。

この機能が実現すれば、構造化された業務データとAIの連携がさらに広がり、製造現場や研究開発、管理業務など多様な領域への応用が期待されます。将来的には、信頼性の高い情報インフラの構築と、企業内で自律的に運用可能なAI体制の実現につながると考えています。

## おわりに

ドキュメント構造化AIの成果物を「どう使うか」は、今後の重要なテーマです。  
今回ご紹介したアプリは、その活用可能性を広げる1つのアプローチとして開発しました。

検索・可視化によって構造化データの価値を体感できるこのツールを、今後も進化させていきます。引き続き、技術面・運用面のフィードバックをいただきながら、より実務に根差したソリューションへと深化させていく予定です。