はじめに
- 現代社会では人工知能技術がさまざまな分野で革新を牽引しており、データの重要性は増している
- HWPフォーマットはAI学習に有利な要素を備えている
- 単純なテキストだけでなく、画像、表、チャートなど多様な要素で構成されており、豊富な情報を提供する
- 見出し、段落、表などさまざまな形式で構造化されているため、AIモデルが文書を理解し分析するうえで役立つ可能性がある
- 本稿では、HWPフォーマットの構造と文書情報の保存方式を見ていく
HWPフォーマットとは?
- HWPフォーマットはHancomが開発した文書フォーマットで、1997年に初めて公開された。
- このフォーマットはCFB(Compound File Binary File Format)で構成されており、複数のデータストリームを単一ファイルに保存する方式である。
- HWPファイルにはFile Header、DocInfo、DocOptions、BodyText、Script、HwpSummaryInformation、PrvImage、PrvTextなどの情報が含まれている。
1. File Header
- HWPファイルのファイルヘッダーには、Hancom文書の認識情報が含まれている。
- 署名情報、文書バージョン、ファイル認識情報などが含まれており、これによってHWPファイルの文書種別を判別する。
2. DocInfo
- 文書で使用されたフォント、文字属性、段落属性などの共通情報を格納しているストリームである。
- DocInfoはzlibで圧縮されて保存され、展開すると元のデータを確認できる。
- 複数種類の情報がレコード形式で保存されている。
3. DocOptions
- リンク文書、配布用文書、公的認証書などの情報がストリームとして保存される。
4. BodyText (Section)
- 文書本文に該当する実際の内容が保存される。
- 本文のセクション数に応じて、複数のSectionストリームで構成される。
5. Script
- スクリプトマクロ機能で定義されたスクリプト情報が記録されたストレージである。
6. HwpSummaryInformation
- 文書の要約情報が保存されており、MicrosoftのPropertySet構造になっている。
7. PrvImage
- 文書のプレビュー画像で、1ページ目の画像が保存される。
8. PrvText
- 文書のプレビューテキストで、1ページ目の内容がUnicode文字列として保存される。
おわりに
- HWPフォーマットはバイナリ形式で保存されるため、人が直接読むのは難しく、特定のソフトウェアでのみ閲覧・修正できるよう設計されている。
- 一方、HWPXフォーマットはオープンXMLベースのフォーマットで、データが構造化されており、人が内容を容易に理解できるよう設計されている。
- 次回は、HWPXフォーマットがHWPフォーマットとどのように差別化された方法で情報を保存するのかを見ていく。
13件のコメント
hwp.js (https://github.com/hahnlee/hwp.js) を開発していた hahnlee です :)
私はそのプロジェクトを開発していた当時も、そして今も、HWP はあまり好きではありません。特に公開性のレベルについてはです。
ただし、「HWP フォーマットは AI 学習に有利な要素を持っている」という点については、ある程度共感します。
RAG を構築したときの経験から言うと、韓国では特に表を多用するのですが、PDF の場合は印刷を前提に作られたフォーマットなので、「表」というものは PDF にはありません。あるのは線分とテキストだけです。
そのため、複雑な表情報からデータを抽出する作業は、PDF 文書をベースにすると難しかったです。特に表がページをまたぐ場合はなおさらです。
大まかにたとえるなら、hwp が一種のリッチテキスト文書だとすれば、pdf は txt 文書のような感覚でした。もちろん「表」に限った話です。
ただ、これが hwp フォーマットの特長なのかと言えば、そうではないと思います。簡単なものは Markdown で十分ですし、もう少し複雑なら HTML で定義するほうがよいと思うからです。
そして決定的なのは、docx や odt も同じ利点を持っていることです。
Netscape は IE に完敗したあと、ソースを公開したり何だりと、後追いで必死に対応していましたよね。
HWPは好きではなく、今のハンコムという会社の製品については良いことは言えませんが、昔は製品自体はWordよりはるかに優れたソフトウェアだったと思います。
私もハングル 97 が出るまでは、優れたソフトウェアだったと思います。
えっ、本当に?
世界標準になれなかった不運な存在
ワードプロセッサは「アレアハングル」で覚えましたが、今では大韓民国の発展のために消えるべき遺物ではないかと思います。
MS WordやLibreOfficeと比べると、Hangeulのほうが自分の思いどおりの形の文書を作るのにはずっと使いやすかったです。配布はPDFにすればいいですし。
もちろん、私がHangeulに慣れているからそう感じる面もあるとは思いますが。
「HWPフォーマットはAI学習に有利な要素を持っている」
これ本当ですか..?
AIの学習はPDFに注力して、ハングルはPDF変換器をうまく作る方がいいんじゃないでしょうか(笑)
私もその部分を読んで不思議に思いましたが、元のドメインを見て納得しました(笑)
ああ.. なるほどですね..(笑)(笑)(笑)(笑)
あまり共感できませんね。本文でも言及されていた
hwpxならまだしも…