文書構造が重要という話

文書構造が重要という話

※目次をスキップする

目次

    文書構造とは

    この記事のタイトルを見て、「文書構造って何のことだろう」と感じられた方も多いのではないでしょうか?
    「文書」とは文や文章が書かれた書類や資料のことです。
    「文書構造」とは、文書内に記述された文書タイトル、章節見出し、箇条書きなどの構造的な情報のことを表します。

    もっと広く捉えれば、文書内に文字列として記された作成日付や作成者といった書誌情報も構造情報と言えますが、この記事では深くは取り上げないことにします。章節見出しや箇条書きなどの文書構造を表す要素のことを「文書構造要素」と呼ぶことにします。

    下の例では、文書構造要素の例として、「2.2 文書構造要素」という章節見出しや、「・」の行頭記号が付いた箇条書きがあります。

    2.2 文書構造要素

    文書を改行コードで区切った行の集まりと捉えるとき、次のような内容を表す文書構造要素がある。

    ・文書タイトル
    ・章見出し
    ・箇条書き

    文書構造情報が重要なわけ

    他人が読む文章をある程度の長さで書く場合、タイトルも章節見出しも付けずに書くことはほとんどないと思います。少なくとも何について書くかは前もってある程度決めるでしょうし、どういう構成にするか、どのように話を展開するかという構想を持った状態で書き進めるのが普通でしょう。それを文書タイトルや章節見出しという構造で表すのが一般的です。

    文書構造化のメリット

    文書を構造化することは、書く側だけのメリットではありません。構造を持っていれば、読む側としても文書の構成を把握でき、内容を理解するための助けになります。タイトルは通常は文書の内容を端的に表した記述になっているでしょうし、章節見出しは文書の構成を把握する良い手がかりになっているはずです。

    人が文書を読む場合だけでなく、何らかの機械的な処理をする上でも同様のことが言えます。文書全体をベタ書きの文字列とみなして全文検索する場合と、見出しなどの構造情報を考慮した上で検索(いわゆる構造検索)する場合とでは、後者の方がより良い検索結果が得られることが期待できます。

    また文書の要約を作成する場合でも、文書の構造情報があれば、見出しを集めて提示するだけでも、文書内容を把握するための助けとなります。大量の文書を対象にする場合は、このような利点は顕著に表れてきます。

    構造化されている文書は少ない

    このように文章構造情報は検索や要約など文書を再利用する際に大きな力を発揮すると言えますが、適切に構造情報が付いた文書は限られているのが実情です。

    見た目は大きいフォントで「1.概要」のように書かれていても、それはあくまで見た目だけの話で、(そこが一つ目の見出しであるという)意味的な構造情報として保持されているわけではないということです。

    これはつまり、人が見ればそれが見出しとわかりますが、コンピュータにはそのような慣例や常識は通じないので、人が期待するような動作はしてくれないということです。

    文書構造の自動抽出

    このように文書構造情報は、その文書を再利用する際に重要な情報になりますが、構造情報が適切に付与されていないと、文書が本来持っている構造情報を利用することはできません。
    本質的には文書構造を持っているのに、明示的に設定されていない情報を利用するにはどうすれば良いでしょうか。

    見出しの文書構造

    人が見出しと認識する際には、無意識のうちに例えば、「数字+ピリオド+数字」のパターン照合をして、「ここは章立てっぽいな」と認識しているはずです。

    であれば、同様の処理を作り込むことで、コンピュータにも文書構造を認識させることができることになります。慣例的に使用される見出しの連番や行頭記号、またはフォントサイズや太字などの文字飾りが規則的に使用されている場合、このような見た目でわかる文書構造を自動的に推定することは可能です。

    例えば判定条件としては、次のような手掛かりが考えられます。

    • 「1.概要」「第一章 背景」のような行頭連番
    • 「●まとめ」「- 詳細情報」のような行頭記号
    • 「【報告事項】」のようなカッコ書きの強調表示
    • 他部分と異なるフォント種別やフォントサイズ、太字などの文字装飾

    これらの手掛かりを文字列パターン照合や文字列条件としてチェックして、必要なら文字列長や字下げの大きさの違いや規則性などを条件に追加すれば、見出しらしい行を抽出できます。

    メール文書の構造情報

    大量に蓄積されて有効利用が求められるものとしてメール文書があります。

    文書構造という観点では、メールには他文書にはない特殊な文書構造要素があります。メールの末尾には作者の署名を付けることが多いですし、また受け取ったメールに返信する場合は元メールの行を引用して返事することもあります。

    例えば次のメールでは ">" 記号で始まる引用行や、末尾の "---" で区切られた以降に署名行があります。

    メール文書のもう一つの特徴として、行長を揃えるために、文の単位とは無関係に入れられた改行が挙げられます。上の例では、引用行の後の3行は、文の途中で改行されています。

    メールを検索したり、メール本文から用件となる文を抽出する際には、署名や引用行、行長を揃えるための改行はコンピュータによる処理の妨げとなります。メール文書に対しても文書構造を自動的に抽出できれば、余計な部分を処理の対象から除外して文単位で適切に処理することができ、性能の向上につなげることができます。

    例えば、判定のための手掛かりとして、次のような特徴が挙げられます。

    • 行頭に ">" などの記号が付いた行は引用
    • メール後半にある "-----Original Message-----" などの行以降は引用
    • 署名には、氏名、会社名、部署名、住所、電話番号、メールアドレスなどの情報が記述されることが多い
    • 行末に句点が存在する場合は文末の可能性が高い
    • 「です」「ます」のような文末らしい表現で終わらない行末は、文末でない可能性がある

    このような特徴を条件として組み込めば、不要な行を除外して文単位に処理することができるため、メール文書の有効利用につなげることができます。

    まとめ

    この記事では、大量の文書に対して検索や要約のような再利用をする場合、文書構造が有効な情報となることと、文書の本文文字列から文書構造情報を自動的に抽出する機能について紹介しました。

    ビッグデータと言われる大量のテキスト文書資産を有効活用するために、文書構造を利用することで活用の幅を広げることを考えてみてはいかがでしょうか。

    シェアしませんか?

    この記事の執筆者

    次へ

    入社一年目のための!プレゼンでの喋り方

    入社一年目のための!プレゼンでの喋り方


    前へ

    UIデザインと使いやすさ

    UIデザインと使いやすさ