(57)【要約】【課題】  ビジョンベースの文書セグメンテーションを提供すること。【解決手段】  ビジョンベースの文書セグメンテーションは、文書の意味内容の１つまたは複数の部分を特定する。この１つまたは複数の部分は、文書の複数の視覚ブロックを特定し、複数の視覚ブロックの視覚ブロック間の１つまたは複数のセパレータを検出することによって特定される。文書の内容構造は、少なくとも一部には複数の視覚ブロックと１つまたは複数のセパレータとに基づいて構築され、内容構造は文書の意味内容の１つまたは複数の部分を特定する。ビジョンベースの文書セグメンテーションを使用して得られた内容構造を、文書検索中に任意選択で使用することができる。【選択図】  図２
2005050344.tif 000002
【特許請求の範囲】
【請求項１】
文書の１つまたは複数の部分を特定する方法において、
前記文書内の複数の視覚ブロックを特定するステップと、
前記複数の視覚ブロックの視覚ブロック間の１つまたは複数のセパレータを検出するステップと、
少なくとも一部には前記複数の視覚ブロックと前記１つまたは複数のセパレータとに基づいて前記文書の内容構造を構築するステップであって、前記内容構造が前記異なる視覚ブロックを前記文書の意味内容の異なる部分として特定するステップと
を備えたことを特徴とする方法。
【請求項２】
前記文書がウェブページを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記文書が複数のノードを有するツリー構造によって記述されており、前記文書内の前記複数の視覚ブロックを特定するステップが、
前記複数のノードの一群の候補ノードを特定するステップと、
前記一群の候補ノードの各ノードに対して、
前記ノードが分割できるか否かを判定するステップと、
前記ノードが分割できない場合、前記ノードが視覚ブロックを表しているものと特定するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記ノードが分割できない場合、前記ノードが表す前記視覚ブロックに対するコヒーレンス度を設定することを特徴とする請求項３に記載の方法。
【請求項５】
前記ノードが分割できない場合、前記一群の候補ノードから前記ノードを除去することを特徴とする請求項３に記載の方法。
【請求項６】
前記ノードが分割できるか否かを判定するステップが、前記ノードが＜ＨＲ＞ハイパーテキストマークアップ言語（ＨＴＭＬ）タグ付きの子ノードを有する場合は、前記ノードが分割できると判定するステップを含むことを特徴とする請求項３に記載の方法。
【請求項７】
前記ノードが分割できるか否かを判定するステップが、前記ノードの背景色が前記ノードの子の背景色と異なる場合は前記ノードが分割できると判定するステップを含むことを特徴とする請求項３に記載の方法。
【請求項８】
幅および高さが０より大きい子を前記ノードが有するか否かをチェックし、前記ノードが幅および高さが０より大きい子を有しない場合は前記ノードを前記一群の候補ノードから除去するステップをさらに含むことを特徴とする請求項３に記載の方法。
【請求項９】
前記ノードが分割できるか否かを判定するステップが、前記ノードのサイズが少なくとも前記ノードの子ノードのサイズの合計よりも大きい閾値の量である場合は前記ノードが分割できると判定するステップを含むことを特徴とする請求項３に記載の方法。
【請求項１０】
前記ノードが分割できるか否かを判定するステップが、＜ＢＲ＞ハイパーテキストマークアップ言語（ＨＴＭＬ）タグをそれぞれが有する複数の連続した子ノードを前記ノードが有する場合は、前記ノードが分割できると判定するステップを含むことを特徴とする請求項３に記載の方法。
【請求項１１】
前記文書が複数のノードを有するツリー構造によって記述されており、前記文書内の前記複数の視覚ブロックを特定するステップが、少なくとも一部には前記複数のノードのハイパーテキストマークアップ言語（ＨＴＭＬ）タグに基づいて異なる視覚ブロックを特定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記文書が複数のノードを有するツリー構造によって記述されており、前記文書内の前記複数の視覚ブロックを特定するステップが、少なくとも一部には前記複数のノードの背景色に基づいて異なる視覚ブロックを特定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記文書が複数のノードを有するツリー構造によって記述されており、前記文書内の前記複数の視覚ブロックを特定するステップが、少なくとも一部には前記複数のノードが前記複数のノードのテキストおよび前記サイズを含むか否かに基づいて異なる視覚ブロックを特定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記１つまたは複数のセパレータを検出するステップが、
前記視覚ブロック間の１つまたは複数の水平セパレータを検出するステップと、
前記視覚ブロック間の１つまたは複数の垂直セパレータを検出するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１５】
前記１つまたは複数のセパレータを検出するステップが、
前記視覚ブロック間に１つまたは複数の可能なセパレータを含むセパレータリストを初期設定するステップと、
前記視覚ブロックのそれぞれに対して前記視覚ブロックが前記セパレータリストのセパレータに重複するか否かを分析し、重複する場合は前記視覚ブロックが前記セパレータにどのように重複するかを分析するステップと、
前記視覚ブロックが前記セパレータに重複するか否かに基づいて前記セパレータをどのように扱うかを決定し、重複する場合は前記視覚ブロックが前記セパレータにどのように重複するかを決定するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１６】
前記視覚ブロックが前記セパレータに含まれる場合、前記セパレータを複数のセパレータに分割することを決定するステップをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記視覚ブロックが前記セパレータを横断する場合、以後は前記視覚ブロックが前記セパレータを横断しないように前記セパレータのパラメータを修正することを決定するステップをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記セパレータが水平セパレータの場合、前記修正が前記セパレータの高さを減らすステップを含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記セパレータが垂直セパレータの場合、前記修正が前記セパレータの幅を減らすステップを含むことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記視覚ブロックが前記セパレータを覆う場合、前記セパレータを前記セパレータリストから除去することを決定するステップをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項２１】
前記１つまたは複数のセパレータ各々に前記セパレータの両側の視覚ブロックの特性に基づいた重みを割り当てるステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項２２】
前記重みを割り当てるステップが、前記セパレータの両側の２つの視覚ブロック間の距離に基づいて前記重みを割り当てるステップを含むことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記重みを割り当てるステップが、前記セパレータが＜ＨＲ＞ＨＴＭＬタグと同じ位置にあるか否かに基づいて前記重みを割り当てるステップを含むことを特徴とする請求項２１に記載の方法。
【請求項２４】
前記重みを割り当てるステップが、前記セパレータの両側の２つの視覚ブロックに使用されるフォントのサイズに基づいて前記重みを割り当てるステップを含むことを特徴とする請求項２１に記載の方法。
【請求項２５】
前記重みを割り当てるステップが、前記セパレータの両側の２つの視覚ブロックに使用される背景色に基づいて前記重みを割り当てるステップを含むことを特徴とする請求項２１に記載の方法。
【請求項２６】
前記複数の視覚ブロックのそれぞれがコヒーレンス閾値度を満たすか否かをチェックするステップと、
前記コヒーレンス閾値度を満たさない前記複数の視覚ブロックのそれぞれに対して、前記視覚ブロックの新しい複数の視覚ブロックを特定し、前記新しい複数の視覚ブロックを使用して前記検出するステップと構築するステップとを反復するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項２７】
前記内容構造を構築するステップが、
前記複数の視覚ブロックに基づいて１つまたは複数の仮想ブロックを生成するステップと、
前記内容構造内に前記１つまたは複数の仮想ブロックを含めるステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項２８】
前記１つまたは複数の仮想ブロックを生成するステップが、前記複数の視覚ブロックの２つの視覚ブロックを組み合わせることによって前記１つまたは複数の仮想ブロックを生成するステップを含むことを特徴とする請求項２７に記載の方法。
【請求項２９】
前記１つまたは複数の仮想ブロック各々に対するコヒーレンス値度を決定するステップをさらに含むことを特徴とする請求項２７に記載の方法。
【請求項３０】
仮想ブロックに対する前記コヒーレンス値度を決定するステップが、少なくとも一部には前記仮想ブロックを生成するために使用される２つの視覚ブロック間のセパレータの重みに基づいて前記仮想ブロックの前記コヒーレンス値度を決定するステップを含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
装置の１つまたは複数のプロセッサによって実行される場合、前記１つまたは複数のプロセッサに、
文書内の視覚ブロックを特定させ、
前記視覚ブロック間の視覚セパレータを検出させ、および
少なくとも一部には前記視覚ブロックと前記視覚セパレータとに基づいて、前記文書の意味内容を表す前記文書の領域を特定する前記文書の内容構造を構築させる
複数の命令を記憶することを特徴とする１つまたは複数のコンピュータ読取り可能な媒体。
【請求項３２】
前記文書が複数のノードを有するツリー構造によって記述されており、前記１つまたは複数のプロセッサに前記文書内の視覚ブロックを特定させる前記命令が、前記１つまたは複数のプロセッサに、
前記複数のノードの一群の候補ノードを特定させ、
前記一群の候補ノードの各ノードに対して、
前記ノードが分割できるか否かを判定させ、および
前記ノードが分割できない場合、前記ノードが視覚ブロックを表しているものと特定させる
命令を含むことを特徴とする請求項３１に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項３３】
前記１つまたは複数のプロセッサに視覚セパレータを検出させる前記命令が、前記１つまたは複数のプロセッサに、
前記視覚ブロック間の１つまたは複数の水平セパレータを検出させ、および
前記視覚ブロック間の１つまたは複数の垂直セパレータを検出させる
命令を含むことを特徴とする請求項３１に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項３４】
前記１つまたは複数のプロセッサに視覚セパレータを検出させる前記命令が、前記１つまたは複数のプロセッサに、
前記視覚ブロック間に１つまたは複数の可能な視覚セパレータを含むセパレータリストを初期設定させ、
前記視覚ブロックのそれぞれに対して前記視覚ブロックが前記セパレータリストのセパレータに重複するか否かを分析させ、重複する場合は前記視覚ブロックが前記セパレータにどのように重複するかを分析させ、および
前記視覚ブロックが前記セパレータに重複するか否かに基づいて前記セパレータをどのように扱うかを決定させ、重複する場合は前記視覚ブロックが前記セパレータにどのように重複するかを決定させる命令を含むことを特徴とする請求項３１に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項３５】
前記命令が前記１つまたは複数のプロセッサにさらに、
前記視覚ブロックのそれぞれがコヒーレンス閾値度を満たすか否かをチェックさせ、および
前記コヒーレンス閾値度を満たさない前記視覚ブロックのそれぞれに対して、前記視覚ブロックの新しい視覚ブロックを特定させ、前記新しい視覚ブロックを使用して前記検出と構築を反復させることを特徴とする請求項３１に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項３６】
複数の文書を検索する方法において、
照会に対応する照会基準を受信するステップと、
前記複数の文書に対応する複数のブロックにアクセスするステップであって、前記複数のブロックの異なるブロックが前記複数の文書の異なる文書に対応し、前記複数のブロックが前記複数の文書のそれぞれを視覚的にセグメント化することによって得られたステップと、
少なくとも一部には前記ブロックが前記照会基準にどの程度一致するかに基づいて前記複数のブロックの１つまたは複数に対するランキングを生成するステップと、
前記複数の文書の１つまたは複数に対するランキングを生成するステップであって、前記複数の文書のそれぞれのランキングが少なくとも一部には前記文書に対応する前記複数のブロックの前記ランキングに基づくステップと、
前記１つまたは複数のランク付けされた文書の少なくとも１つの指標を戻すステップと
を含むことを特徴とする方法。
【請求項３７】
前記複数の文書のそれぞれがウェブページを含むことを特徴とする請求項３６に記載の方法。
【請求項３８】
前記複数の文書の１つに対する前記ランキングを生成するステップが、
前記１つの文書に対応する前記複数のブロックのそれぞれの前記ランキングを特定するステップと、
前記１つの文書に対する前記ランキングとして前記特定されたランキングの最高ランキングを選択するステップと
を含むことを特徴とする請求項３６に記載の方法。
【請求項３９】
前記複数の文書の１つに対する前記ランキングを生成するステップが、
前記１つの文書に対応する前記複数のブロックのそれぞれの前記ランキングを特定するステップと、
前記１つの文書に対するランキングを形成するために前記特定されたランキングを組み合わせるステップと
を含むことを特徴とする請求項３６に記載の方法。
【請求項４０】
前記組み合わせるステップが前記特定されたランキングを平均するステップを含むことを特徴とする請求項３９に記載の方法。
【請求項４１】
文書を視覚的にセグメント化する前記ステップが、
前記文書内の複数の視覚ブロックを特定するステップと、
前記複数の視覚ブロックの前記視覚ブロック間の１つまたは複数のセパレータを検出するステップと、
少なくとも一部には前記複数の視覚ブロックと前記１つまたは複数のセパレータとに基づいて前記文書の内容構造を構築するステップであって、前記内容構造が前記異なる視覚ブロックを前記文書の意味内容の異なる部分として特定し、前記異なる視覚ブロックが前記文書に対応する前記複数のブロックの前記ブロックであるステップと
を含むことを特徴とする請求項３６に記載の方法。
【請求項４２】
前記文書が複数のノードを有するツリー構造によって記述されており、前記文書内の前記複数の視覚ブロックを特定するステップが、
前記複数のノードの一群の候補ノードを特定するステップと、
前記一群の候補ノードの各ノードに対して、
前記ノードが分割できるか否かを判定するステップと、
前記ノードが分割できない場合、前記ノードが視覚ブロックを表しているものと特定するステップと
を含むことを特徴とする請求項４１に記載の方法。
【請求項４３】
装置の１つまたは複数のプロセッサによって実行される場合、前記１つまたは複数のプロセッサに、
１つまたは複数の検索用語を含む照会を受信させ、
複数のブロックが前記１つまたは複数の検索用語とどの程度一致するかに基づいて前記複数のブロックをランク付けさせ、前記複数のブロックのそれぞれが複数の文書のうちの１つの文書の一部であり、前記複数のブロックのそれぞれは前記複数の文書の１つの視覚セグメンテーションによって得られ、
前記複数の文書の各々に対して、少なくとも一部には前記文書の一部である前記ブロックの前記ランキングに基づいて前記文書をランク付けさせ、および
前記照会に応じて、前記複数の文書の１つまたは複数の前記ランキングの指標を返させる
複数の命令を記憶することを特徴とする１つまたは複数のコンピュータ読取り可能な媒体。
【請求項４４】
前記１つまたは複数のプロセッサに前記文書をランク付けさせる前記命令が、前記１つまたは複数のプロセッサに、
前記文書の一部である各ブロックに対する前記ランキングを特定させ、および
前記文書に対する前記ランキングとして前記特定されたランキングの最高ランキングを選択させる命令を含むことを特徴とする請求項４３に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項４５】
前記１つまたは複数のプロセッサに前記文書をランク付けさせる前記命令が、前記１つまたは複数のプロセッサに、
前記文書の一部である各ブロックの前記ランキングを特定させ、および
前記文書のランキングを生成するために各ブロックに対する前記ランキングを組み合わせさせる命令を含むことを特徴とする請求項４３に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項４６】
文書の前記視覚セグメンテーションが、
前記文書内の複数の視覚ブロックを特定するステップと、
前記複数の視覚ブロックの前記視覚ブロック間の１つまたは複数のセパレータを検出するステップと、
少なくとも一部には前記複数の視覚ブロックと前記１つまたは複数のセパレータとに基づいて前記文書の内容構造を構築するステップであって、前記内容構造が前記異なる視覚ブロックを前記文書の意味内容の異なる部分として特定し、前記異なる視覚ブロックが前記文書の一部である前記複数のブロックの前記ブロックであるステップと
を含むことを特徴とする請求項４３に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項４７】
前記文書が複数のノードを有するツリー構造によって記述されており、前記文書内の前記複数の視覚ブロックを特定するステップが、
前記複数のノードの一群の候補ノードを特定するステップと、
前記一群の候補ノードのそれぞれに対して、
前記ノードが分割できるか否かを判定するステップと、
前記ノードが分割できない場合、前記ノードが視覚ブロックを表しているものと特定するステップと
を含むことを特徴とする請求項４６に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項４８】
複数のウェブページを検索する方法において、
前記複数のウェブページを検索する要求を受信するステップと、
前記要求に基づいて前記複数のウェブページの部分集合に対するランキングの第１の集合を生成するステップと、
ウェブページの前記部分集合の各ウェブページを視覚的にセグメント化することによってウェブページの前記部分集合に対するランキングの第２の集合を生成するステップと、
少なくとも一部にはランキングの前記第２の集合に基づいてウェブページの前記部分集合に対するランキングの最終集合を得るステップと
を含むことを特徴とする方法。
【請求項４９】
ランキングの前記最終集合を得るステップが、ランキングの前記最終集合としてランキングの前記第２の集合を使用するステップを含むことを特徴とする請求項４８に記載の方法。
【請求項５０】
ランキングの前記最終集合を得るステップが、ウェブページに対する前記最終集合として、前記第１の集合の前記ウェブページの前記ランキングと前記第２の集合の前記ウェブページの前記ランキングの高い方のランキングを選択するステップを含むことを特徴とする請求項４８に記載の方法。
【請求項５１】
ランキングの前記最終集合を得るステップが、ウェブページに対する前記最終集合を得るために、前記第１の集合の前記ウェブページの前記ランキングと前記第２の集合の前記ウェブページの前記ランキングとを平均するステップを含むことを特徴とする請求項４８に記載の方法。
【請求項５２】
ウェブページを視覚的にセグメント化するステップが、
前記ウェブページ内の複数の視覚ブロックを特定するステップと、
前記複数の視覚ブロックの前記視覚ブロック間の１つまたは複数のセパレータを検出するステップと、
少なくとも一部には前記複数の視覚ブロックと前記１つまたは複数のセパレータとに基づいて前記ウェブページの内容構造を構築し、前記内容構造が前記異なる視覚ブロックを前記ウェブページの意味内容の異なる部分として特定するステップと
を含むことを特徴とする請求項４８に記載の方法。
【請求項５３】
前記ウェブページが複数のノードを有するツリー構造によって記述されており、前記ウェブページ内の前記複数の視覚ブロックを特定するステップが、
前記複数のノードの一群の候補ノードを特定するステップと、
前記一群の候補ノードの各ノードに対して、
前記ノードが分割できるか否かを判定するステップと、
前記ノードが分割できない場合、前記ノードが視覚ブロックを表しているものと特定するステップと
を含むことを特徴とする請求項５２に記載の方法。
【請求項５４】
装置の１つまたは複数のプロセッサによって実行される場合、前記１つまたは複数のプロセッサに、
複数の文書が検索基準にどの程度一致するかに基づいて前記複数の文書に対する第１のランキングを生成させ、
前記複数の文書のそれぞれを視覚的にセグメント化することによって前記複数の文書に対する第２のランキングを生成させ、および
少なくとも一部には前記第２のランキングに基づいて前記複数の文書に対する最終ランキングを生成させる複数の命令を記憶することを特徴とする１つまたは複数のコンピュータ読取り可能な媒体。
【請求項５５】
前記１つまたは複数のプロセッサに最終ランキングを生成させる前記命令が、前記１つまたは複数のプロセッサに前記最終ランキングとして前記第２のランキングを使用させる命令を含むことを特徴とする請求項５４に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項５６】
前記１つまたは複数のプロセッサに最終ランキングを生成させる前記命令が、前記１つまたは複数のプロセッサに、前記複数の文書のうちの１つの文書に対する最終ランキングとして、前記文書に対する前記第１のランキングと前記文書の前記第２のランキングの高い方のランキングを選択させる命令を含むことを特徴とする請求項５４に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項５７】
前記１つまたは複数のプロセッサに最終ランキングを生成させる前記命令が、前記１つまたは複数のプロセッサに、前記文書の前記第１のランキングと前記文書の前記第２のランキングを平均することによって前記複数の文書のうちの１つの文書に対する最終ランキングを生成させる命令を含むことを特徴とする請求項５４に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項５８】
前記１つまたは複数のプロセッサに文書を視覚的にセグメント化させる前記命令が、前記１つまたは複数のプロセッサに、
前記文書内の複数の視覚ブロックを特定させ、
前記複数の視覚ブロックの前記視覚ブロック間の１つまたは複数のセパレータを検出させ、および
少なくとも一部には前記複数の視覚ブロックと前記１つまたは複数のセパレータとに基づいて前記文書の内容構造を構築させ、前記内容構造が前記異なる視覚ブロックを前記文書の意味内容の異なる部分として特定する命令を含むことを特徴とする請求項５４に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項５９】
前記文書が複数のノードを有するツリー構造によって記述されており、前記１つまたは複数のプロセッサに前記文書内の前記複数の視覚ブロックを特定させる前記命令が、前記１つまたは複数のプロセッサに、
前記複数のノードの一群の候補ノードを特定させ、
前記一群の候補ノードの各ノードに対して、
前記ノードが分割できるか否かを判定させ、および
前記ノードが分割できない場合、前記ノードが視覚ブロックを表しているものと特定させる命令を含むことを特徴とする請求項５８に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項６０】
複数の文書を検索する方法において、
照会基準を含む、前記複数の文書を検索する要求を受信するステップと、
前記照会基準に基づいて前記複数の文書の部分集合を特定するステップと、
文書の前記部分集合のそれぞれに対して、前記文書を視覚的にセグメント化することによって複数のブロックを特定するステップと、
前記複数のブロックの内容に基づいて前記照会基準を拡張するステップと、
前記拡張された照会基準に基づいて前記複数の文書の第２の部分集合を特定するステップと
を含むことを特徴とする方法。
【請求項６１】
前記要求に応じて文書の前記第２の部分集合の特定子を返すことを特徴とする請求項６０に記載の方法。
【請求項６２】
前記複数の文書の前記第２の部分集合の各文書をランク付けし、
前記要求に応じて、文書の前記第２の部分集合の特定子と文書の前記第２の部分集合の各文書の前記ランキングの指標とを返すことを特徴とする請求項６０に記載の方法。
【請求項６３】
前記文書を視覚的にセグメント化させる前記ステップが、
前記文書内の複数の視覚ブロックを特定するステップと、
前記複数の視覚ブロックの前記視覚ブロック間の１つまたは複数のセパレータを検出するステップと、
少なくとも一部には前記複数の視覚ブロックと前記１つまたは複数のセパレータとに基づいて前記文書の内容構造を構築するステップであって、前記内容構造が前記異なる視覚ブロックを前記文書の意味内容の異なる部分として特定し、前記異なる視覚ブロックが前記文書に対する前記複数のブロックであるステップと
を含むことを特徴とする請求項６０に記載の方法。
【請求項６４】
前記文書が複数のノードを有するツリー構造によって記述されており、前記文書内の前記複数の視覚ブロックを特定するステップが、
前記複数のノードの一群の候補ノードを特定するステップと、
前記一群の候補ノードの各ノードに対して、
前記ノードが分割できるか否かを判定するステップと、
前記ノードが分割できない場合、前記ノードが視覚ブロックを表しているものと特定するステップと
を含むことを特徴とする請求項６３に記載の方法。
【請求項６５】
装置の１つまたは複数のプロセッサによって実行される場合、前記１つまたは複数のプロセッサに、
１つまたは複数の検索用語を受信させ、
前記１つまたは複数の検索用語を満たす複数の文書を特定させ、
前記複数の文書のそれぞれのブロックを特定するために前記複数の文書のそれぞれに対してビジョンベースの文書セグメンテーションを実行させ、
ブロックが前記１つまたは複数の検索用語にどの程度一致するかに基づいて前記特定されたブロックのそれぞれに対するランクを生成させ、
前記特定されたブロックの１つまたは複数から１つまたは複数の拡張用語を取得させ、および
前記１つまたは複数の検索用語と前記拡張用語を満たす別の複数の文書を特定させる複数の命令を記憶することを特徴とする１つまたは複数のコンピュータ読取り可能な媒体。
【請求項６６】
前記１つまたは複数のプロセッサに前記１つまたは複数の拡張用語を導かせる前記命令が、前記１つまたは複数のプロセッサに一群のトップランクの特定されたブロックから前記１つまたは複数の拡張用語を導かせることを特徴とする請求項６５に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項６７】
前記１つまたは複数のプロセッサにビジョンベースの文書セグメンテーションを実行させる前記命令が、前記１つまたは複数のプロセッサに、
前記文書内の複数の視覚ブロックを特定させ、
前記複数の視覚ブロックの前記視覚ブロック間の１つまたは複数のセパレータを検出させ、および
少なくとも一部には前記複数の視覚ブロックと前記１つまたは複数のセパレータとに基づいて前記文書の内容構造を構築させ、前記内容構造が前記異なる視覚ブロックを前記文書の意味内容の異なる部分として特定し、前記異なる視覚ブロックが前記文書の前記ブロックである
命令を含むことを特徴とする請求項６５に記載の１つまたは複数のコンピュータ読取り可能な媒体。
【請求項６８】
文書から視覚ブロックを抽出するための視覚ブロックエキストラクタと、
前記抽出された視覚ブロックを受信し、前記抽出された視覚ブロックに基づいて前記抽出された視覚ブロック間の１つまたは複数の視覚セパレータを検出するよう結合された視覚セパレータディテクタと、
前記抽出された視覚ブロックと前記検出された視覚セパレータとを受信し、前記文書に対する内容構造を構築するために前記抽出された視覚ブロックと前記検出された視覚セパレータとを使用するよう結合された内容構造コンストラクタと
を含むことを特徴とするシステム。
【請求項６９】
少なくとも一部には前記複数の文書の１つまたは複数に対して構築された前記内容構造に基づいて複数の文書から文書を取り出すための文書検索モジュールをさらに含むことを特徴とする請求項６８に記載のシステム。
【請求項７０】
前記文書が複数のノードを有するツリー構造によって記述されており、前記視覚ブロックエキストラクタが、
前記複数のノードの一群の候補ノードを特定し、
前記一群の候補ノードの各ノードに対して、
前記ノードが分割できるか否かを判定し、および
前記ノードが分割できない場合、前記ノードが視覚ブロックを表すものとして特定する
ことにより前記文書から視覚ブロックを抽出するためのものであることを特徴とする請求項６８に記載のシステム。
【請求項７１】
前記視覚セパレータディテクタが、前記視覚ブロック間の１つまたは複数の水平セパレータと前記視覚ブロック間の１つまたは複数の垂直セパレータとを検出するためのものであることを特徴とする請求項６８に記載のシステム。
【請求項７２】
前記視覚セパレータディテクタが、
前記視覚ブロック間の１つまたは複数の可能なセパレータを含むセパレータリストを初期設定し、
前記視覚ブロックのそれぞれに対して前記視覚ブロックが前記セパレータリストの１つのセパレータに重複するか否かを分析し、重複する場合は前記視覚ブロックが前記セパレータにどのように重複するかを分析し、
前記視覚ブロックが前記セパレータに重複するか否かに基づいて前記セパレータをどのように扱うかを決定し、重複する場合は前記視覚ブロックが前記セパレータにどのように重複するかを決定する
ことにより前記１つまたは複数のセパレータを検出するためのものであることを特徴とする請求項６８に記載のシステム。
【請求項７３】
前記内容構造コンストラクタがさらに、
前記複数の視覚ブロックのそれぞれがコヒーレンス閾値度を満たすか否かをチェックし、および
前記コヒーレンス閾値度を満たさない前記複数の視覚ブロックのそれぞれに対して、前記視覚ブロックから新しい複数の視覚ブロックを抽出し、さらに前記視覚セパレータディテクタに前記新しい複数の視覚ブロックを使用して１つまたは複数の視覚セパレータを検出させるために前記視覚ブロックエキストラクタに前記視覚ブロックを返すことを特徴とする請求項６８に記載のシステム。
【請求項７４】
文書内の複数の視覚ブロックを特定する手段と、
前記複数の視覚ブロックの視覚ブロック間の１つまたは複数のセパレータを検出する手段と、
少なくとも一部には前記複数の視覚ブロックと前記１つまたは複数のセパレータとに基づいて前記文書の内容構造を構築する手段であって、前記内容構造が異なる視覚ブロックを前記文書の意味内容の異なる部分として特定する手段と
を含むことを特徴とするシステム。
【請求項７５】
前記文書が複数のノードを有するツリー構造によって記述されており、前記文書内の前記複数の視覚ブロックを特定する手段が、
前記複数のノードの一群の候補ノードを特定する手段と、
前記一群の候補ノードの各ノードに対して、
前記ノードが分割できるか否かを判定する手段と、
前記ノードが分割できない場合、前記ノードが視覚ブロックを表しているものと特定する手段と
を含むことを特徴とする請求項７４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書を区分することに関し、詳細には、ビジョンベースの文書セグメンテーションに関する。
【背景技術】
【０００２】
人々は、非常に多くの情報にアクセス権を有している。しかし、いかなる状況でも自分が望む特定の情報を探すことは、非常に難しい場合がある。例えば、大量の情報は、ウェブページ形式でインターネットを介して人々がアクセス可能である。このようなウェブページの数は、およそ数百万以上になる場合がある。さらに、入手可能なウェブページは、追加されるページ、削除されるページ、変更されるページがあり、絶えず変化している。
【０００３】
【非特許文献１】Robertson, S. E., "Overview of the Okapi Projects", Journal of Documentation, Vol. 53, No. 1, 1997, pp. 3-7
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、質問に対する回答のようなある種の情報を見つけることを誰かが希望した場合、この大量の情報源から特定情報を抽出する能力が非常に重要になってくる。プロセスおよび技術は、インターネットを介してユーザが情報を検索することを可能にするために開発され、一般にサーチエンジンの形式において、ユーザが使用可能になる。しかし、主に、検索を受けるウェブページの内容が非常に広範にわたることから、このようなサーチエンジンの精度は、不足している可能性がある。例えば、著作権およびビジネス関連の注意を含むウェブページもあれば、広告を含むウェブページもある。このようなビジネス関連データおよび広告データは、基礎となるウェブページの内容に常に関連しているわけではなく、したがってこれらも対象となる場合は検索処理の精度が低下する可能性がある。その他の例として、ウェブページによって長さが非常に異なる場合や、および、単一トピックしかないウェブページがあるのに対して、ウェブページによっては、複数のトピックを含む場合がある。
【０００５】
ウェブページのこれらの特性は、検索処理の精度を低下させる可能性がある。したがって、文書検索の精度を向上させる方法を有することは有益である。
【課題を解決するための手段】
【０００６】
本明細書ではビジョンベースの文書セグメンテーションを開示する。
【０００７】
一態様によれば、文書の意味内容の１つまたは複数の部分が特定される。この１つまたは複数の部分は、文書の複数の視覚ブロックを特定し、複数の視覚ブロックの視覚ブロック間の１つまたは複数のセパレータを検出することによって特定される。文書の内容構造は、少なくとも一部には複数の視覚ブロックと１つまたは複数のセパレータとに基づいて構築され、内容構造は、文書の意味内容の異なる部分として異なる視覚ブロックを特定する。
【０００８】
他の態様によれば、ビジョンベースの文書セグメンテーションを使用して得られた内容構造は、文書検索中に使用される。
【発明を実施するための最良の形態】
【０００９】
類似の構成要素および／または特徴を参照するため、文書全体を通して同じ番号を使用する。
【００１０】
本明細書では、ビジョンベースの文書セグメンテーションを説明する。ビジョンベースの文書セグメンテーションは、文書の外観に基づいて、その文書の意味内容を含む文書の複数の部分を特定する。ビジョンベースの文書セグメンテーションは、様々な異なる方法で使用することができる。例えば、検索結果が文書の意味内容部分に基づくように、文書を検索する際にセグメンテーションを使用することができる。
【００１１】
本明細書で行う検討は、文書と、文書の構造を説明するために使用されるモデルとに言及する。文書は、拡張マークアップ言語（ＸＭＬ）フォーマットまたはハイパーテキストマークアップ言語（ＨＴＭＬ）フォーマットのような汎用マークアップ言語規約（ＳＧＭＬ）に準拠するような様々なフォーマットのどれであってもよい。ある種の実施形態では、これらの文書はＨＴＭＬフォーマットのウェブページである。本明細書で検討するモデルは、文書の構造を記述する様々なモデルのどれであってもよい。特定の実施形態では、使用されるモデルは、文書オブジェクトモデル（ＤＯＭ）である。文書オブジェクトモデルは、ＤＯＭツリーとも称される文書のツリー構造表現である。本明細書での多くの議論において、文書は、ＨＴＭＬフォーマット（例えば、ウェブページ）として説明され、モデルはＤＯＭツリーとして説明され、文書の各ＨＴＭＬタグは、ＤＯＭツリー（ＤＯＭツリーは、ＨＴＭＬタグを表すことはできない＃ｔｅｘｔまたは＃ｃｏｍｍｅｎｔノードのような追加ノードを含むこともできる）におけるノードによって表される。しかし、ビジョンベースの文書セグメンテーションを、これらの他の文書および／またはモデルと共に使用することもできるということを理解されたい。
【００１２】
図１は、ビジョンベースの文書セグメンテーションを使用したシステム例１００を示すブロック図である。システム１００は、視覚ブロックエキストラクタ１０４、視覚セパレータディテクタ１０６、および内容構造コンストラクタ１０８を有するビジョンベースの文書セグメンテーションモジュール１０２を含む。文書記述は、ビジョンベースの文書セグメンテーションモジュール１０２にアクセス可能である。この文書記述は、ＤＯＭツリーのような文書の構造を記述するモデルである。文書記述は別の構成要素（図示せず）によって生成し、モジュール１０２に対してアクセス可能としても、またはそれに替えて文書自体をモジュール１０２に対してアクセス可能とし、モジュール１０２が文書記述を生成してもよい。
【００１３】
視覚ブロックエキストラクタ１０４は、文書記述に基づいて文書の複数の視覚ブロックを特定する。視覚ブロックのこの特定（本明細書では抽出とも称する）は、フォントのサイズおよび／またはタイプ、フォントの色および／または背景情報、ＨＴＭＬタグタイプなどのような文書内の視覚キュー（ｖｉｓｕａｌ  ｃｕｅｓ）に基づく。この特定されたブロックは、文書の領域である。特定されたブロックは、エキストラクタ１０４から出力され、視覚セパレータディテクタ１０６にとって使用可能となる。
【００１４】
視覚セパレータディテクタ１０６は、特定されたブロックの異なるブロック間のセパレータを検出する。これらのセパレータは、文書内の線、文書内の空白、異なるブロックの異なる背景色などのような、様々な異なる形式を取ることができる。特定の実施形態においては、文書内の水平方向および／または垂直方向のセパレータが検出される。これらの検出されたセパレータは、内容構造コンストラクタ１０８によって使用が可能となる。
【００１５】
内容構造コンストラクタ１０８は、エキストラクタ１０４によって特定されたブロックならびにディテクタ１０６によって検出されたセパレータに基づいて文書の内容構造を生成する。内容構造は、文書の意味内容を表す文書の一組の１つまたは複数の部分である。内容構造は、モジュール１０２によって出力される。
【００１６】
次いで、文書の内容構造を様々な方法で使用することができる。実施形態によっては、システム１００は、オプションの文書検索モジュール１１０を含む。文書検索モジュール１１０は、照会（ｑｕｅｒｙ）に対してどの文書を戻すかを決定する際にビジョンベースのセグメンテーションモジュール１０２からの内容構造を使用する。例えば、ユーザがウェブページを検索する際に１つまたは複数の検索用語を入力した場合、どのウェブページがその基準を満たすかを決定する際に内容構造を使用することができる。
【００１７】
文書検索中に内容構造が使用される方法は多様であってよい。実施形態によっては、照会に応じて取り出される文書をランク付けするために内容構造が使用される。さらに、実施形態によっては、検索基準を拡張する基礎として内容構造が使用される。これらの使用法は以下でより詳細に検討する。
【００１８】
本明細書に記載のビジョンベースの文書セグメンテーションは、文書が表示される際にその文書が表示される方法を利用するということに留意されたい。ビジョンベースの文書セグメンテーションは、文書が実際に表示されることを必要とせず、ビジョンベースの文書セグメンテーションは、ユーザが表示される文書を実際に見ることも必要としない。
【００１９】
図２は、ビジョンベースの文書セグメンテーションを実行するためのプロセス例１４０を示す流れ図である。プロセス１４０は、図１のビジョンベースの文書セグメンテーションモジュール１０２によって実施され、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せで実行することができる。
【００２０】
最初に、文書記述がアクセスされる（動作１４２）。この文書記述は、例えばＨＴＭＬウェブページ用のＤＯＭツリーである。文書記述によって、文書内の１つまたは複数の視覚ブロックが特定される（動作１４４）。特定された視覚ブロック間のセパレータが検出され（動作１４６）、その文書の内容構造は特定された視覚ブロックおよび検出されたセパレータに基づいて構築される（動作１４８）。次いで内容構造が細分度要件を満たすか否かについてチェックがなされる（動作１５０）。この細分度要件は、視覚ブロックのそれぞれがどの程度コヒーレント（ｃｏｈｅｒｅｎｔ）であるかの測度である、内容構造の視覚ブロックのコヒーレンス度（ＤｏＣ）のことである。細分度要件が満たされない場合、プロセス１４０は動作１４４に戻り、そこで細分度要件を満たさなかった内容構造の部分内で新しい視覚ブロックが特定される。細分度要件が一度満たされると、その文書の内容構造が出力される（動作１５２）。動作１４４、１４６、および１４８の組合せを通した各経路（すなわち、視覚ブロックが特定され、特定されたブロック間のセパレータが検出され、特定された視覚ブロックと検出されたセパレータに基づく内容構造が構築される）を本明細書では「ラウンド」と称する。
【００２１】
したがって、ビジョンベースの文書セグメンテーションはトップダウン方式を採用することが理解されよう。一般に、視覚ブロックの最初の一組は、特定され、後述するように視覚セパレータ検出および内容構造構築のために用いることが可能とされる。これらの視覚ブロック内で、後続ラウンドで追加の視覚ブロックが必要に応じて特定される（すなわち、細分度要件を満たさない視覚ブロックごとに後続ラウンドで追加の視覚ブロックが特定される）。
【００２２】
本明細書に記載するように、使用される文書は、表示される際、長方形の形状であると想定される。したがって、本明細書ではいくつかのサイズ、寸法、面積などは長方形またはデカルト座標系（例えば、Ｘ、Ｙ座標系）を参照して記載される。これらは一例に過ぎず、長方形の形状および座標系は別のものであってよいということが理解されよう。場合によっては、非長方形の形状が使用される場合、それらの形状は、ビジョンベースの文書セグメンテーションを実行する前に長方形の形状に変換される。他の場合、本明細書に記載のプロセスおよび技術は、これらの異なる形状および／または座標系を使用するように適応される。
【００２３】
（視覚ブロック特定）
本明細書では、視覚ブロック抽出とも称する視覚ブロック特定は、視覚キューに基づいて文書の異なる領域を特定する。以下でより詳細に説明するように、これら異なる領域の指示は次いで出力され、視覚セパレータ検出に使用される。視覚ブロック特定（例えば、図２の動作１４４での視覚ブロック特定、または図１の視覚ブロックエキストラクタ１０４によって実施される視覚ブロック特定）は以下のように実行することができる。
【００２４】
一般に、文書に対するＤＯＭツリーの各ノードは視覚ブロックを表すことができる。いくつかの大きなノード（例えば、＜ＴＡＢＬＥ＞または＜Ｐ＞タグを有する）は、通常、構成目的でのみ使用され、単一視覚ブロックを表すためには適切でない。したがって、このような大きなノードはさらに分割され、それらの子ノードによって置き換えられる。一方、リーフノードは多数ある場合があるので、視覚ブロックは、最初、ＤＯＭツリーの各リーフノードとして特定されるべきではない（ただし、ビジョンベースの文書セグメンテーションのトップダウン（ｔｏｐ−ｄｏｗｎ）という性質により、これらのリーフノードの一部は最終的に視覚ブロックとして特定することができる）。
【００２５】
図３は、視覚ブロック特定を実行するためのプロセス例１７０を示す流れ図である。プロセス１７０は図２の動作１４４をさらに詳細に示している。プロセス１７０は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せで実行することができる。
【００２６】
最初に、ＤＯＭツリーの一群の候補ノードから１つのノードが選択される（動作１７２）。この一群の候補ノードは、現在のラウンドの視覚ブロックである可能性のあるＤＯＭツリーのノードを意味する。以下でより詳細に説明するように、プロセス１７０の実行中にこの候補ノードは変更される可能性がある。ある実施形態では、一群の候補ノードは、最初は単一ノードであり、その単一ノードは、第１ラウンドのＤＯＭツリーのルートノードまたは後続ラウンドのＤＯＭツリーのサブツリーのトップノードである（例えば、細分度要件を満たさなかった視覚ブロックに対応するＤＯＭツリーの一部のトップノード）。あるいは、ＤＯＭツリーのルートノードの１レベル下のノード、またはＤＯＭツリーのサブツリーのトップノードの１レベル下のノードのように、候補ノードの最初の一群は異なっていてよい。
【００２７】
次いで選択されたノードを分割することができるか否かについてチェックがなされる（動作１７４）。選択されたノードを分割することができる場合、選択されたノードの各子ノードが一群の候補ノードに追加され（動作１７６）、選択されたノードは一群の候補ノードから除去される（動作１７８）。次いでプロセス１７０は動作１７２に戻り、一群の候補ノードから別のノードを選択する。
【００２８】
動作１７４に戻って、選択されたノードを分割することができない場合、選択されたノードは、視覚ブロックを表し（動作１８０）、プロセス１７０によって特定されている視覚ブロックのプールに追加される。コヒーレンス度（ＤｏＣ）値は、以下でより詳細に説明するように視覚ブロックに設定され（動作１８２）、選択されたノードは、一群の候補ノードから除去される（動作１８４）。一群の候補ノードに追加ノードがあるか否かについてもチェックがなされる（動作１８６）。一群の候補ノードに追加ノードがある場合、プロセス１７０は動作１７２に戻り、そこで一群の候補ノードからノードの１つが選択される。一群の候補ノードに追加ノードがない場合、動作１８０で選択された視覚ブロックがプロセス１７０によって特定された視覚ブロックであるために、その後、視覚ブロック特定プロセス１７０を終了する（動作１８８）。プロセス１７０によって特定された視覚ブロックのプールは、以下でより詳細に説明するように、次いで視覚セパレータ検出のときに使用することができる。
【００２９】
特定ノードが分割できるか否かに関する判定（動作１７４）は１つまたは複数の規則に基づいてなされる。これらの規則は、ノードおよび場合によってはＤＯＭツリー内の１つまたは複数の他のノードに関する１つまたは複数のキューまたは情報を利用する。そのようなキューまたは情報の例には、タグキュー、色キュー、テキストキュー、およびサイズキューが含まれる。これらのキューに基づいて公式化することのできる規則の例を以下に示す。ある実施形態では、デフォルト規則（例えば、ノードが分割できるか、またはノードが分割できないか）を含むこともできる。他の規則が適用可能でない場合、デフォルト規則が使用される。
【００３０】
トップブロック規則：トップブロック規則は評価中のツリーのノードの位置に基づく。トップブロック規則は、ノードが評価中のツリーのトップノードの場合（例えば、第１ラウンドのＤＯＭツリーのルートノード）、そのノードは分割可能であることを示している。
【００３１】
タグ規則：タグ規則はノードのＨＴＭＬタグに基づく。視覚透視図から異なるトピックを分離するために＜ＨＲ＞タグのようないくつかのＨＴＭＬタグがしばしば使用される。タグ規則は、ノードの複数の子のうちの１つの子のＨＴＭＬタグが一組の特定タグの１つ（例えば、ＨＴＭＬタグが＜ＨＲ＞タグである）に等しいことを示している場合、そのノードは分割可能であることを示している。
【００３２】
色規則：色規則は、ノードの背景色ならびにノードの複数の子の１つ以上の背景色に基づく。色規則は、ノードの背景色がそのノードの子ノードの少なくとも１つの背景色と異なる場合、そのノードは分割可能であることを示している。
【００３３】
テキストおよびサイズ規則：複数のテキストおよびサイズ規則を使用することができる。これらの規則の一部ではノードの高さ、幅、および／またはサイズに対して参照がなされる。ノードの高さとはブロックが表示される際にノードによって表されるブロックの視覚の高さ（例えば、Ｘ、Ｙ座標系を使用するピクセル）のことであり、ノードの幅とはブロックが表示される際にノードによって表されるブロックの視覚の幅（例えば、Ｘ、Ｙ座標系を使用するピクセル）のことであり、ノードの面積とはノードが表示される際にノードによって表されるブロックが占める表示面積（例えば、Ｘ、Ｙ座標系を使用するピクセル）のことである（例えば、長方形ブロックの場合のノードの幅と高さの積）。これらのサイズは、ＤＯＭツリーのノードに含まれる位置特定情報に基づいて容易に特定することができる。
【００３４】
これらの規則（ならびに本明細書の随所における検討）の一部は、有効ノード、ブロックノード、テキストノード、仮想テキストノード、および／またはナビゲーションノードに言及している。有効ノードとは、ＨＴＭＬ文書が表示される際に可視であるノードのことである（例えば、高さも幅も０に等しくない）。ブロックノードとは、＜Ａ＞、＜Ｂ＞、＜ＦＯＮＴ＞、＜ＨＲ＞、＜Ｉ＞、＜Ｐ＞、＜ＳＴＲＯＮＧ＞、＜ＥＭ＞、または＜ＴＥＸＴ＞以外のある種のタグを有するノードのことである。テキストノードとはフリーテキストだけを含んでいるノードのことである。仮想テキストノードとは、ブロックノードでなく、（１つまたは）複数の子としてテキストノードだけを有するノードのことである。ナビゲーションノードとは、その幅の２倍を超える高さを有し、２００より狭い幅を有するノードのことである。ある実施態様では、ナビゲーションノードに関する規則は第１ラウンドでは使用されるが、後続ラウンドでは使用されない。
【００３５】
一般的なタグ（すなわち、＜Ｐ＞タグ、＜ＴＡＢＬＥ＞タグ、＜ＴＤ＞タグ、および＜ＵＬ＞タグ以外のすべてのＨＴＭＬタグの場合）を有するノードの場合、次のテキストおよびサイズキューに基づく規則を使用することができる。
●ノードが有効な子を有しない場合、そのノードは分割することはできず、一群の候補ノードから除去される。
●ノードが有効な子を１つだけ有しており、当該子がテキストノードでない場合、当該子を遡る（一群の候補ノードからそのノードを除去し、それを子ノードで置き換える）。
●ノードのサイズが少なくともそのノードの子のサイズの合計の３倍を超える場合、そのノードを分割することができる。
●ノードの子のすべてがテキストノードまたは仮想テキストノードである場合、そのノードを分割することはできない。
●ノードが少なくとも１つのテキストノードの子または少なくとも１つの仮想テキストノードの子を有しており、ノードの幅または高さが閾値（例えば、１５０）より小さい場合、そのノードを分割することはできない。
●ノードがナビゲーションノードである場合、そのノードを分割することはできない。
●ノードが少なくとも１つのテキストノードの子または少なくとも１つの仮想テキストノードの子を有しており、さらにブロックノードの子を有しない場合、そのノードを分割することはできない。
●ノードが３つ以上の連続した＜ＢＲ＞子を有する場合、そのノードを分割することができる。
●上記に規定されない場合、ノードを分割することができる。
【００３６】
＜Ｐ＞ＨＴＭＬタグを有するノードのために以下のテキストおよびサイズキューに基づく規則を使用することができる。
●ノードが有効な子を有しない場合、そのノードは分割することはできず、そのノードは一群の候補ノードから除去される。
●ノードが有効な子を１つだけ有しており、当該子がテキストノードでない場合、当該子を遡る（一群の候補ノードからそのノードを除去し、それを子ノードで置き換える）。
●ノードの子のすべてがテキストノードまたは仮想テキストノードである場合、そのノードを分割することはできない。
●すべての子のサイズの合計が当該ノードのサイズより大きく、ブロックノードである少なくとも１つの子がある場合、そのノードを分割することができる。
●ノードが少なくとも１つのテキストノードの子または少なくとも１つの仮想テキストノードの子を有しており、ノードの幅または高さが閾値（例えば、１５０）より小さい場合、そのノードを分割することはできない。
●ノードがブロックノードの子を有しない場合、そのノードを分割することはできない。
●ノードのすべての子が閾値より小さい場合（例えば、幅＜１５０および高さ＜１００）、そのノードを分割することはできない。
●上記に規定されない場合、ノードを分割することができる。
【００３７】
＜ＴＡＢＬＥ＞ＨＴＭＬタグを有するノードのために以下のテキストおよびサイズキューに基づく規則を使用することができる。
●ノードが有効な子を有しない場合、そのノードは分割することはできず、一群の候補ノードから除去される。
●ノードが有効な子を１つだけ有しており、当該子がテキストノードでない場合、当該子を遡る（一群の候補ノードからそのノードを除去し、それを子ノードで置き換える）。
●ノードの最大子ノードのサイズが閾値（例えば、２５０＊２００）より小さい場合、そのノードを分割することはできない。
●ノードのすべての子が閾値より小さい場合（例えば、幅＜１５０および高さ＜１００）、そのノードを分割することはできない。
●ノードのすべての有効なノードの子が閾値より大きい場合（例えば、幅＞１５０および高さ＞１００）、そのノードを分割することはできない。
●ノードのいくつかの（０より大きな数の）有効ノードの子が閾値より大きく（例えば、幅＞１５０および高さ＞１００）、ノードのいくつかの（０より大きな数の）有効ノードの子が閾値より小さい場合（例えば、幅＜１５０および高さ＜１００）、そのノードを分割することはできない。
●上記に規定されない場合、ノードを分割することができる。
【００３８】
＜ＴＤ＞ＨＴＭＬタグを有するノードのために以下のテキストおよびサイズキューに基づく規則を使用することができる。
●ノードが有効な子を有しない場合、そのノードは分割することはできず、一群の候補ノードから除去される。
●ノードが有効な子を１つだけ有しており、当該子がテキストノードでない場合、当該子を遡る（一群の候補ノードからそのノードを除去し、それを子ノードで置き換える）。
●上記に規定されない場合、ノードを分割することができる。
【００３９】
＜ＵＬ＞ＨＴＭＬタグを有するノードのために以下のテキストおよびサイズキューに基づく規則を使用することができる。
●ノードが有効な子を有しない場合、そのノードは分割することはできず、一群の候補ノードから除去される。
●ノードが有効な子を１つだけ有しており、当該子がテキストノードでない場合、当該子を遡る（一群の候補ノードからそのノードを除去し、それを子ノードで置き換える）。
●ノードがブロックノードの子を有しない場合、そのノードを分割することはできない。
●ノードのすべての子ノードが＜ＬＩ＞ＨＴＭＬタグを有する場合、そのノードを分割することはできない。
●ノードのすべての子ノードが閾値より小さい場合（例えば、幅＜１５０および高さ＜１００）、そのノードを分割することはできない。
●上記に規定されない場合、ノードを分割することができる。
【００４０】
視覚ブロック特定では、コヒーレンス度（ＤｏＣ）値は、ＤＯＭツリーから抽出される視覚ブロックに割り当てられた測度である。異なるコヒーレンス度（ＤｏＣ）値を、以下でより詳細に説明するように、内容構造の構築中に仮想ブロックに対して生成することもできる。視覚ブロック（または仮想ブロック）のＤｏＣ値は、視覚ブロック（または仮想ブロック）がどの程度コヒーレントであるかの測度である。
【００４１】
視覚ブロック特定中にブロックに割り当てられたＤｏＣ値は、様々な異なる方法で割り当てることができる。ある実施形態では、視覚ブロックのＤｏＣ値は、ＤＯＭツリーの対応するノード（視覚ブロックを表すノード）に基づいて割り当てられ、ノードのＨＴＭＬタグによって異なる場合がある。視覚ブロック特定中にＤｏＣ値を割り当てる際に従うことのできる、一組の規則例を以下に示す。以下の例では、ＤｏＣ値は１から１０の範囲の整数であるが、（例えば、整数、実数などから構成される）異なる範囲を使用することができる。以下の規則のうち複数の規則を特定のブロックに適用でき、したがって当該ブロックに対して複数のＤｏＣ値が生じる状況が発生する場合がある。このような状況は、規則のうちの１つによって割り当てられた最大のＤｏＣ値を選択すること、規則のうちの１つによって割り当てられた最小のＤｏＣ値を選択すること、規則によって割り当てられたＤｏＣ値を平均すること、規則によって割り当てられたＤｏＣ値の重み付けされた平均値を計算することなどのような様々な方法で解消することができる。
【００４２】
ＤｏＣ値を一般的なＨＴＭＬタグ（すなわち、＜Ｐ＞タグ、＜ＴＡＢＬＥ＞タグ、＜ＴＤ＞タグ、および＜ＵＬ＞タグ以外のすべてのＨＴＭＬタグ）を有する視覚ブロックに割り当てるために以下の規則例が使用される。
●ノードの子のすべてがテキストノードまたは仮想テキストノードである場合、ブロックに対するＤｏＣ値を１０に設定する。
●ノードが少なくとも１つのテキストノードの子または少なくとも１つの仮想テキストノードの子を有しており、ノードの幅または高さが閾値（例えば、１５０）より小さい場合、ブロックに対するＤｏＣ値を８に設定する。
●ノードがナビゲーションノードである場合（例えば、第１ラウンドでのみ、その幅の２倍を超える高さを有し、２００より狭い幅を有するノード、後続ラウンドではこの規則は適用されない）、ブロックに対するＤｏＣ値を７に設定する。
●ノードが少なくとも１つのテキストノードの子または少なくとも１つの仮想テキストノードの子を有しており、さらにブロックノードの子を有しない場合、ブロックに対するＤｏＣ値は以下に示すようにノードサイズに基づいて設定する。
○ノードの幅および高さがどちらも第１の閾値（例えば、１００）より小さい場合、ブロックに対するＤｏＣ値を８に設定する。
○ノードの高さが第２の閾値（例えば、２００）より小さいか、または幅が第３の閾値（例えば、４００）より小さい場合、ブロックに対するＤｏＣ値を７に設定する。
○ノードの面積（例えば、ノードの高さと幅の積）が第４の閾値（例えば、１００，０００）より小さい場合、ブロックに対するＤｏＣ値を６に設定する。
●一般的なＨＴＭＬタグを有するブロックに上記規則が適用されない場合、ブロックに対するＤｏＣ値を５に設定する。
【００４３】
ＤｏＣ値を＜Ｐ＞ＨＴＭＬタグを有する視覚ブロックに割り当てるために以下の規則例が使用される。
●ノードのすべての子がテキストノードまたは仮想テキストノードである場合、ブロックに対するＤｏＣ値を１０に設定する。
●ノードが少なくとも１つのテキストノードの子または少なくとも１つの仮想テキストノードの子を有しており、ノードの幅または高さが閾値（例えば、１５０）より小さい場合、ブロックに対するＤｏＣ値を８に設定する。
●ノードがブロックノードの子を有しない場合、ブロックに対するＤｏＣ値を７に設定する。
●ノードのブロックノードの子のすべてが閾値より小さい場合（例えば、幅＜１５０および高さ＜１００）、
○ノードが少なくとも１つのテキストノードの子または少なくとも１つの仮想テキストノードの子を有する場合、ブロックに対するＤｏＣ値を７に設定する。
○上記以外の場合は、ブロックに対するＤｏＣ値を６に設定する。
【００４４】
ＤｏＣ値を＜ＴＡＢＬＥ＞ＨＴＭＬタグを有する視覚ブロックに割り当てるために以下の規則例が使用される。
●ノードの最大子ノードのサイズが閾値（例えば、２５０＊２００）より小さい場合、ブロックに対するＤｏＣ値を８に設定する。
●ノードのすべての子が閾値より小さい場合（例えば、幅＜１５０および高さ＜１００）、ブロックに対するＤｏＣ値を７に設定する。
●ノードのすべての有効なノードの子が閾値より大きい場合（例えば、幅＞１５０および高さ＞１００）、ブロックに対するＤｏＣ値を６に設定する。
【００４５】
ＤｏＣ値を＜ＴＤ＞ＨＴＭＬタグを有する視覚ブロックに割り当てるために以下の規則例が使用される。
●ノードのすべての子がテキストノードまたは仮想テキストノードである場合、ブロックに対するＤｏＣ値を１０に設定する。
●ノードが少なくとも１つのテキストノードの子または少なくとも１つの仮想テキストノードの子を有しており、ノードの幅または高さが閾値（例えば、１５０）より小さい場合、ブロックに対するＤｏＣ値を８に設定する。
●ノードがブロックノードの子を有しない場合、ブロックに対するＤｏＣ値を７に設定する。
●ノードのブロックノードの子のすべてが閾値より小さい場合（例えば、幅＜１５０および高さ＜１００）、ブロックに対するＤｏＣ値を７に設定する。
●ノードの最大子ノードのサイズが閾値（例えば、２５０＊２００）より小さい場合、ブロックに対するＤｏＣ値を７に設定する。
【００４６】
ＤｏＣ値を＜ＵＬ＞ＨＴＭＬタグを有する視覚ブロックに割り当てるために以下の規則例が使用される。
●ノードがブロックノードの子を有しない場合、ブロックに対するＤｏＣ値を８に設定する。
●ノードのすべての子ノードが＜ＬＩ＞ＨＴＭＬタグを有する場合、ブロックに対するＤｏＣ値を８に設定する。
●ノードのすべての子ノードが閾値より小さい場合（例えば、幅＜１５０および高さ＜１００）、ブロックに対するＤｏＣを８に設定する。
【００４７】
これらの規則および図３のプロセス例１７０は、例えばＤｉｖｉｄｅＤｏｍｔｒｅｅ手順または関数（以下の表Ｉに示す）およびＤｉｖｉｄａｂｌｅ手順または関数（以下の表ＩＩに示す）を有するアルゴリズムを使用して実施することができる。このアルゴリズムでは、値ｐＲｏｏｔは現在選択されているノードを示し、値ｎＬｅｖｅｌはＤＯＭツリーで現在選択されているノードのレベルを示し、ｐｏｏｌはアルゴリズムによって特定された一群の視覚ブロックを示し、Ｔｏｐ  Ｂｌｏｃｋは当該ラウンドで評価中のＤＯＭツリーまたはサブツリーのトップノードを示し（例えば、第１ラウンドでは、Ｔｏｐ  ＢｌｏｃｋはＤＯＭツリーのルートノードを示す）、ｃｈｉｌｄは現在選択されているノードの子を示す。Ｄｉｖｉｄａｂｌｅ手順または関数の特別なルーチンおよびヒューリスティックな規則は上記の通りである。ＤｉｖｉｄｅＤｏｍｔｒｅｅ手順または関数が呼び出されるたびに、ＤＯＭツリーのノードがｐＲｏｏｔの値として、またＤＯＭツリーのそのノードのレベルの値がｎＬｅｖｅｌの値として渡される。
【００４８】
表Ｉ
【００４９】
【表１】
2005050344.tif 000003
【００５０】
表ＩＩ
【００５１】
【表２】
2005050344.tif 000004
【００５２】
（視覚セパレータ検出）
視覚セパレータ検出は、視覚ブロック特定によって特定された複数のブロックの異なるブロック間のセパレータを検出する。これらのセパレータは、文書内の線、文書内の空白、異なるブロックに対する異なる背景色のなどのような様々な異なる形式を取ることができる。ある実施形態では、文書内の水平方向および／または垂直方向のセパレータが検出される。視覚セパレータ検出（例えば、図２の動作１４６での視覚セパレータ検出、または図１の視覚セパレータディテクタ１０６によって実施される視覚セパレータ検出）は以下のように実行することができる。
【００５３】
検出されたセパレータは、視覚ブロック特定によって特定されたブロックのプールの中のどのブロックとも視覚的に交差しない文書内の水平または垂直の領域である。これらのセパレータは、文書内の異なる意味を区別するためのインジケータとして使用される。セパレータは、ＰＳをセパレータの開始ピクセルとし、Ｐｅをセパレータの終了ピクセルとして２タプル（ＰＳ、Ｐｅ）によって表される。各ピクセルＰＳおよびＰｅはＸ、Ｙ座標の対として特定され、長方形領域をＰＳとＰｅピクセルを当該領域の対角に設定することによって定義することができる（例えば、左下と右上の角、左上と右下の角など）。セパレータの幅はＰＳとＰｅの間の差異（例えば、Ｘ方向に）として計算される。
【００５４】
水平方向と垂直方向に参照がなされる。通常、Ｘ、Ｙ座標系では、水平方向とはＸ軸のことであり、垂直方向とはＹ軸のことである。しかし、水平方向と垂直方向に対して他の方向を使用することもできる。
【００５５】
図４は、視覚セパレータ検出を実行するためのプロセス例２００を示す流れ図である。プロセス２００は、図２の動作１４６をより詳細に示している。プロセス２００は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せで実行することができる。
【００５６】
最初に、セパレータリストが１つのセパレータによって初期設定される（動作２０２）。この１つのセパレータは、潜在的に１つ以上のセパレータである文書に対する表示エリアのすべての領域を含む。ある実施形態では、この初期セパレータは文書のエリア全体を含むが、この初期セパレータは視覚ブロック特定によって特定された視覚ブロックのプールのブロックすべてを含む単一の長方形領域であってもよい。
【００５７】
特定されたブロックのプールのブロックが次いで選択される（動作２０４）。ブロックは、様々な方法で（例えば、無作為に、プールに追加される順番で、サイズの昇順または降順で、など）プールから選択することができる。次いで、選択されるブロックがセパレータリストのセパレータに含まれるか否かについてチェックがなされる（動作２０６）。ブロックのエリア全体がセパレータのエリアに含まれる場合、ブロックはセパレータに含まれるものとみなされる。選択されるブロックがセパレータに含まれる場合、セパレータは２つのセパレータに分割される（動作２０８）。この分割は、ブロックを含んでいるセパレータをセパレータリストから除去し、２つの新しいセパレータをセパレータリストに追加し、セパレータのＰＳまたはＰｅピクセルを修正し、新しいセパレータを追加するなどの異なる方法で行うことができる。セパレータの分割により、以前は単一のセパレータだったものがブロックの両端で２つの小さいセパレータになることになる。水平セパレータを検出した場合、２つの小さいセパレータはブロックの上と下になり、垂直セパレータを検出した場合、２つの小さいセパレータはブロックの左側と右側になる。
【００５８】
動作２０８でセパレータが分割された後で、または選択されたブロックがセパレータに含まれていない場合、選択されたブロックがセパレータを横断するか否かについてチェックがなされる（動作２１０）。水平セパレータを検出した場合、ブロックのエリアがセパレータの一部と交差するが、セパレータの高さ全体より小さいならば、そのブロックはセパレータを横断するものとみなされる。垂直セパレータを検出した場合、ブロックのエリアがセパレータの一部と交差するが、セパレータの幅全体より小さいならば、そのブロックはセパレータを横断するものとみなされる。
【００５９】
選択されたブロックがセパレータを横断する場合、そのブロックがそのセパレータを横断しないようセパレータのパラメータが更新される（動作２１２）。パラメータのこの更新とは、そのブロックがそのセパレータを横断しないようセパレータのＰＳおよび／またはＰｅピクセルを修正することを表している。
【００６０】
動作２１２でセパレータパラメータが更新された後で、または選択されたブロックがセパレータを横断しないならば、選択されたブロックがセパレータを覆うか否かについてチェックがなされる（動作２１４）。水平セパレータを検出する場合、ブロックのエリアがセパレータの少なくとも一部の高さ全体と交差するならば、ブロックはセパレータを覆うものとみなされる。垂直セパレータを検出する場合、ブロックのエリアがセパレータの少なくとも一部の幅全体と交差するならば、ブロックはセパレータを覆うものとみなされる。
【００６１】
選択されたブロックがセパレータを覆う場合、セパレータはセパレータリストから除去される（動作２１６）。動作２１６でセパレータがセパレータリストから除去された後で、または選択されたブロックがセパレータを覆わない場合、まだ選択されていない特定されたブロックのプールに追加ブロックがあるか否かについてチェックがなされる（動作２１８）。ブロックのプールにそのようなブロックがある場合、プロセス２００は動作２０４で残存するブロックのうちの１つを選択するために戻る。しかし、ブロックのプールにそのようなブロックがない場合、ディスプレイの境界線の４つのセパレータ（仮にこのようなセパレータがある場合は）がセパレータリストから除去される（動作２２０）。
【００６２】
水平セパレータと垂直セパレータの両方を検出するためにセパレータ検出が実行される。水平セパレータを最初に検出し、次いで垂直セパレータを検出するか、または垂直セパレータを最初に検出し、次いで水平セパレータを検出するか、または水平セパレータと垂直セパレータを同時に検出することができる。
【００６３】
ある実施形態では、図４の動作２０２から２１８は、水平セパレータと垂直セパレータの両方に対して実行される。したがって、２つの異なるセパレータリストを生成することができる。これらの２つのセパレータリストは、２つのセパレータリストの和集合を取るなどの様々な方法のどの形式においても組み合わされる。例えば、２つのリストのうちの１つにすべてのセパレータを含む最終セパレータリストを生成することができる。
【００６４】
したがって、図４に示すように、セパレータリストから開始される視覚セパレータ検出は、１つまたは複数の実現可能なセパレータを含み、実現可能なセパレータのリストは検出プロセスが終了するまで変更され、リストは検出されたセパレータを含む。視覚ブロックがセパレータに重複するか否か、ならびに視覚ブロックがどのようにセパレータに重複するか（例えば、ブロックがセパレータに含まれる、ブロックがセパレータを横断する、またはブロックがセパレータを覆う）に基づいて新しいセパレータを追加し、セパレータを除去し、かつ／またはセパレータのパラメータを修正するためにセパレータリストが変更される。
【００６５】
プロセス２００によって検出されたセパレータは、文書が表示される際、様々な異なる形式のうち、どの形式も取ることができるということにも留意されたい。例えば、セパレータは文書の空白、文書内に引かれた１本または複数本のセパレータ線、文書内のイメージまたは他のグラフィック、異なる色で陰影を付けた文書内の部分などであってよい。
【００６６】
一例として、水平セパレータの検出は図５ａから５ｆに示す例で示すことができる。視覚ブロック特定が図５ａの文書２４８の４つの視覚ブロック２４０、２４２、２４４、および２４６を特定するものと仮定する。視覚ブロック２４０、２４２、２４４、および２４６を斜めの網掛けで示す。最初、図５ｂに示すように、セパレータリストにはセパレータ２５０が１つだけある。セパレータは図５ｂから５ｆに垂線で示す。セパレータ２５０は、視覚ブロック２４０、２４２、２４４、および２４６のすべてを含む。さらに、視覚ブロック２４０を視覚ブロックのプールから選択された第１のブロック、視覚ブロック２４２を視覚ブロックのプールから選択された第２のブロック、視覚ブロック２４４を視覚ブロックのプールから選択された第３のブロック、視覚ブロック２４６を視覚ブロックのプールから選択された第４のブロックと仮定する。
【００６７】
視覚ブロック２４０は、セパレータ２５０に含まれており、したがってセパレータ２５０は図５ｃに示すように２つのセパレータ２５２と２５４に分割される。同様に、ブロック２４２はセパレータ２５４に含まれており、したがってセパレータ２５４は、図５ｄに示すように２つのセパレータ２５６と２５８に分割される。さらに、ブロック２４４は、セパレータ２５８に含まれており、したがってセパレータ２５８は図５ｅに示すように２つのセパレータ２６０と２６２に分割される。
【００６８】
視覚ブロック２４６が分析される場合、視覚ブロック２４６がセパレータ２５６を横断し、かつセパレータ２６０を覆うと判定される。すなわち、図５ｆに示すようにより小さい領域を反映するようセパレータ２５６のパラメータが更新され、セパレータ２６０がセパレータリストから除去される。
【００６９】
さらに、プロセス２００で検出されるセパレータのそれぞれに重みが割り当てられる。セパレータの重みは文書が表示される際にセパレータがどの程度可視的であるかの指標である（例えば、重みの大きいセパレータは重みの小さいセパレータより可視的である）。セパレータの重みは、セパレータの両端の視覚ブロックの様々な特性に基づいて割り当てられる。セパレータに割り当てられた重みは、セパレータを比較するために使用される（例えば、それらの重みが比較される）。セパレータに割り当てられた重みは、通常、他の目的には使用されず、したがってその重みは事実上いかなる単位をも有することができる（当該文書の他のセパレータの重みの単位と一致するか、これと一致する単位に変換することができる限り）。
【００７０】
セパレータの重みを決定するために一組の規則が適用される。ブロックを参照する場合、規則はセパレータの両端の最も近い視覚ブロックを参照する（例えば、図５ｆでは、セパレータ２５６に最も近い視覚ブロックは一端のブロック２４０と他端のブロック２４６である）。セパレータの重みを決定するために適用することのできる一組の規則例を以下に示す。
【００７１】
●セパレータの異なる側のブロック間の距離が大きいほど、セパレータの重みは大きい。距離は、例えば２つのブロックの２つの最も近い辺の間の距離であってよい。例えば、水平セパレータの場合、距離が１０ピクセルに等しいかまたはこれより短いならばセパレータの重みを１５に設定し、距離が１０ピクセルより長く２０ピクセルに等しいかこれより短いならばセパレータの重みを２５に設定し、距離が２０ピクセルより長ければセパレータの重みを３５に設定し、垂直セパレータの場合、距離が３ピクセルに等しいかこれより短ければセパレータの重みを２５に設定し、距離が３ピクセルより長ければセパレータの重みを４５に設定する。
●視覚セパレータが特定のＨＴＭＬタグ（例えば、＜ＨＲ＞ＨＴＭＬタグ）と同じ位置にある場合、セパレータの重みは増やされる。例えば、視覚セパレータが＜ＨＲ＞ＨＴＭＬタグと同じ位置にある場合、セパレータの重みを５０に設定する。
●水平セパレータの場合、セパレータの異なる側のブロックのフォント特性（例えば、フォントのサイズおよびフォントの重み）が異なる場合、セパレータの重みが変更される。ブロックのそれぞれに対してブロックのテキストのすべてが同じ特性を有するか、またはブロックのテキストの少なくとも閾値の量が同じ特性を有するなどの場合にのみこの規則を適用することができる。さらに、そのセパレータの前のブロックのフォントのサイズがそのセパレータの後のブロックのフォントのサイズよりも小さい場合、セパレータの重みが増やされる。例えば、そのセパレータの前のブロック（例えば、水平セパレータの上）で使用されるフォントのサイズがそのセパレータの後のブロック（例えば、水平セパレータの下）で使用されるフォントのサイズより大きい場合、そのセパレータの前のブロックで使用されるフォントのサイズに基づいてセパレータの重みを設定する（例えば、フォントのサイズが３６ポイントに等しいかこれより大きい場合は重みを９に設定し、フォントのサイズが２４ポイントに等しいかこれより大きいが３６ポイントより小さい場合は重みを８に設定し、フォントのサイズが１８ポイントに等しいかこれよりも大きいが２４ポイントより小さい場合は重みを７に設定し、フォントのサイズが１４ポイントに等しいかこれより大きいが１８ポイントより小さい場合は重みを６に設定し、フォントのサイズが１２ポイントより大きいが１４ポイントより小さい場合は重みを５に設定し、フォントのサイズが１２ポイントに等しいかこれより小さい場合は重みを０に設定する）。しかし、そのセパレータの前のブロックで使用されるフォントのサイズがそのセパレータの後のブロックで使用されるフォントのサイズより小さい場合、セパレータの重みをそのセパレータの後のブロックで使用されるフォントのサイズに基づいて設定する（例えば、フォントのサイズが３６ポイントに等しいかこれより大きい場合は重みを１０に設定し、フォントのサイズが２４ポイントに等しいかこれより大きいが３６ポイントより小さい場合は重みを９に設定し、フォントのサイズが１８ポイントに等しいかこれよりも大きいが２４ポイントより小さい場合は重みを８に設定し、フォントのサイズが１４ポイントに等しいかこれより大きいが１８ポイントより小さい場合は重みを７に設定し、フォントのサイズが１２ポイントより大きいが１４ポイントより小さい場合は重みを６に設定し、フォントのサイズが１２ポイントに等しいかこれより小さい場合は重みを０に設定する）。
●セパレータの異なる側のブロックの背景色が異なる場合、セパレータの重みは増やされる。例えば、セパレータの異なる側の背景色が異なる場合、セパレータの重みを４０に設定する。
●水平セパレータの場合、セパレータ横のブロックの構造が酷似している場合、セパレータの重みは減らされる。例えば、セパレータ横の両ブロックが、同じフォントのサイズと同じフォントの重みを有するテキストブロックである場合、セパレータの重みを０に設定する。
【００７２】
これらの規則のうちの複数の規則が特定の状況に適用される場合、これらの規則によって設定された重みの１つを選択しても、またはこれらの規則によって設定された重みを組み合わせてもよい。例えば、割り当てられた重みの最小の重み（または最大の重み）をセパレータの重みとして使用したり、すべての割り当てられた重みの平均をセパレータの重みとして使用したり、すべての割り当てられた重みの重み付き平均をセパレータの重みとして使用したりすることができる。
【００７３】
（内容構造構築）
内容構造構築は、文書に対する内容構造を、視覚ブロック特定で特定されたブロックならびに視覚セパレータ検出で検出されたセパレータに基づいて生成する。内容構造構築（例えば、図２の動作１４８での内容構造構築、または図１の内容構造コンストラクタ１０８によって実施される内容構造構築）は以下のように実行することができる。
【００７４】
内容構造は、文書の意味内容を表す文書の一組の１つまたは複数の部分である。ある実施形態では、内容構造は意味内容の階層ツリー構造である。
【００７５】
図６は、内容構造構築を実行するためのプロセス例２８０を示す流れ図である。プロセス２８０は図２の動作１４８をさらに詳細に示している。プロセス２８０は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せで実行することができる。
【００７６】
最初に、検出されたセパレータおよび特定された視覚ブロックに基づいて１つまたは複数の仮想ブロックが生成される（動作２８２）。この仮想ブロックは、重みが最低のセパレータから開始して検出されたセパレータを分析することにより生成される。検出されたセパレータの両側のブロックが単一の仮想ブロックにマージされる。このマージは、重みが次に最低のセパレータで続けて行なわれ、重みが最大のセパレータに至るまで続けて行なわれる（この最大の重みは、この特定された視覚ブロックの特定の組に関して上記で説明した視覚セパレータ検出によって計算される最大重みとして定義しても、ある種の事前定義または事前にプログラムされた値としてもよい）。
【００７７】
仮想ブロックが一度生成されると、コヒーレンス度値が仮想ブロックごとに決定される（動作２８４）。コヒーレンス度値は、仮想ブロックを生成するためにマージされた２つのブロック間のセパレータ（このセパレータは、２つの視覚ブロック間であっても２つの仮想ブロック間であってもよい）の重みに基づいて計算される。ある実施形態では、仮想ブロックに対するコヒーレンス度値は以下の規則例に従って決定される。これらの規則の一部では、ＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ２およびＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ１という２つの変数が使用される。ＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ２およびＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ１とい変数の値は、すべてのセパレータの検出後に決定される（例えば、図４のプロセス２００の終了後）。両側にテキストブロックを有するすべてのセパレータは、重みによって分類される。これらの重みの最高の重みは、ＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ１変数に割り当てられた値で、これらの重みの２番目に高い重みはＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ２変数に割り当てられた値である。このようなセパレータがない場合、ＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ１およびＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ２変数はどちらも値−１に設定される。このようなセパレータが１つしかない場合、ＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ１の値としてその１つのセパレータの重みが使用され、ＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ２の値として値−１が使用される。これらの規則例を以下に示す。
【００７８】
●マージされた２つのブロック間のセレクタの重みが０に等しいかまたはこれより小さい場合、コヒーレンス度値を１０に設定する。
●マージされた２つのブロック間のセレクタの重みがＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ２に等しいかまたはこれより小さい場合、コヒーレンス度値を７に設定する。
●マージされた２つのブロック間のセレクタの重みがＷＥＩＧＨＴ＿ＴＭＰ＿ＴＩＴＬＥ１に等しいかまたはこれより小さい場合、コヒーレンス度値を６に設定する。
●マージされた２つのブロック間のセレクタの重みが９に等しいかまたはこれより小さい場合、コヒーレンス度値を５に設定する。
●マージされた２つのブロック間のセレクタの重みが２０に等しいかまたはこれより小さい場合、コヒーレンス度値を５に設定する。
●マージされた２つのブロック間のセレクタの重みが４０に等しいかまたはこれより小さい場合、コヒーレンス度値を４に設定する。
●マージされた２つのブロック間のセレクタの重みが５０に等しいかまたはこれより小さい場合、コヒーレンス度値を２に設定する。
●上記規則のどれも満たされない場合はコヒーレンス度値を１に設定する。
【００７９】
次いで内容構造が生成される（動作２８６）。内容構造は、少なくとも一部には細分度要件と、存在する場合はどの仮想ブロックがその細分度要件を満たすかとに基づいて生成される。上記のように、細分度要件が満たされるか否かを判定するために、内容構造の各リーフノードが分析される。ある実施形態では、許容コヒーレンス度（ＰＤｏＣ）値が定義されており、細分度要件を満たすためには、内容構造の各リーフノードがＰＤｏＣ値より大きな（または、ＰＤｏＣ値に等しいかこれより大きな）ＤｏＣ値を有することが要求される。ＰＤｏＣ値は（例えば、システム設計者によって経験的に決定されるような）事前定義された値であってよい。ＰＤｏＣ値の値に対するいかなる範囲でも使用することができるが、通常は値が大きいほどより多数だがより小さい視覚ブロックを有する内容構造を生じることになる。ＰＤｏＣ値の範囲の一例としては６から９である。
【００８０】
動作２８６で生成された内容構造は、仮想ブロックおよび／または視覚ブロックを含むことができる。動作２８２で特定された各仮想ブロックに対するＤｏＣ値がＰＤｏＣ値と比較される。ＰＤｏＣ値より大きなＤｏＣ値を有する各仮想ブロックに対して、その仮想ブロックの子ブロックは、内容構造のブロックとして出力されない。
【００８１】
次いで内容構造が出力される（動作２８８）。内容構造は様々な形式のどの形式においてでも出力することができ、ある実施形態ではツリーのノードが仮想ブロックおよび／または視覚ブロックを表す階層ツリー形式で出力される。
【００８２】
図７は、仮想ブロックと内容構造ツリーを生成する一例を示している。図７では、視覚ブロック特定によって特定された６つの視覚ブロック３００、３０２、３０４、３０６、３０８、および３１０が示されている。さらに、太線のセパレータ（セパレータ３１４および３１８）が細線のセパレータ（セパレータ３１２、３１６、および３２０）より大きな重みを有して、ブロック間のセパレータ３１２、３１４、３１６、３１８、および３２０が示されている。
【００８３】
視覚ブロック３００〜３１０各々は、対応する内容構造ブロックを内容構造ツリー３２２に有する。さらに、仮想ブロック３２４はブロック３００と３０２をマージすることによって生成されるが、仮想ブロック３２４はセパレータ３１２の重みに基づいてＤｏＣ値を有する。仮想ブロック３２６はブロック３０４と３０６をマージすることによって生成されるが、仮想ブロック３２６はセパレータ３１６の重みに基づいてＤｏＣ値を有する。仮想ブロック３２８はブロック３０８と３１０をマージすることによって生成されるが、仮想ブロック３２８はセパレータ３２０の重みに基づくＤｏＣ値を有する。さらに、仮想ブロック３３０は仮想ブロック３２４、３２６、３２８をマージすることによって生成される。セパレータ３１４および３１８の重みは同じであり、したがってブロック３３０に対するＤｏＣ値は、セパレータ３１４または３１８の重みに基づくことができる。
【００８４】
図７に示した仮想ブロックに基づいて出力された内容構造は、仮想ブロック３２４、３２６、３２８、および３３０のＤｏＣ値によって異なる。例えば、仮想ブロック３２４のＤｏＣ値がＰＤｏＣ値より大きい場合、仮想ブロック３２４は内容構造内のブロックとして出力されるが、個々の視覚ブロック３００と３０２は内容構造内のブロックとしては出力されない。しかし、仮想ブロック３２４のＤｏＣ値がＰＤｏＣ値より大きくない場合、仮想ブロック３２４は内容構造内のブロックとしては出力されないが、個々の視覚ブロック３００と３０２は内容構造のブロックとして出力される。別の例として、仮想ブロック３３０のＤｏＣ値がＰＤｏＣ値より大きい場合、仮想ブロック３３０は内容構造内のブロックとして出力されるが、個々の仮想ブロック３２４、３２６、および３２８は内容構造内のブロックとしては出力されず、個々の視覚ブロック３００、３０２、３０４、３０６、３０８、および３１０は内容構造内のブロックとしては出力されない。
【００８５】
（文書検索）
本明細書に記載のビジョンベースの文書セグメンテーションを用いて文書検索技術を利用することができる。このような文書検索技術はビジョンベースの文書セグメンテーションにのみ依存しても、またはより旧来型の検索技術と組み合わせてもよい。
【００８６】
図８は、本明細書に記載のビジョンベースの文書セグメンテーションを用いて文書検索を実行するためのプロセス例３６０を示す流れ図である。プロセス３６０は、例えば図１の文書検索モジュール１１０によって実施することができる。プロセス３６０は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せで実行することができる。プロセス３６０は、例えばウェブページ（例えば、インターネットおよび／またはイントラネット経由で入手可能な）、個人が記載した記事、摘要または要約などを含めて様々な異なるタイプの文書のどのような文書を取り出すためにも使用することができる。
【００８７】
最初に、照会が受信される（動作３６２）。通常、照会はユーザによって入力されるが、ただし、照会は何らかの別のソース（例えば、遠隔装置、ソフトウェアアプリケーションなど）から受信することができる。本明細書に記載のビジョンベースの文書セグメンテーション技術から得られたブロックのデータベースがアクセスされる（動作３６４）。通常、ビジョンベースの文書セグメンテーションプロセスは既に実行されており、したがって内容構造（視覚ブロックおよび／または仮想ブロックを含む）は、データベースまたは何らかの他のアクセス可能な場所に既に記憶されていることになる。あるいは、ビジョンベースの文書セグメンテーションプロセスは、動作３６２の照会の受信に応えて１つまたは複数の文書に関して実行することができる。
【００８８】
一度アクセスされると、内容構造のブロックは、照会基準とどの程度一致しているかに従ってランク付けされる（動作３６６）。動作３６６で視覚ブロックおよび／または仮想ブロックをランク付けすることができる。動作３６２で受信された照会は、照会基準または照会用語とも称される１つまたは複数の検索用語を含む。ある実施形態では、動作３６６で検索用語の少なくとも１つを含むこれらのブロックだけ（または、検索用語のすべてを含むブロックだけ）がランク付けされる。あるいは、ランク付けされるブロック数に他の制限を課すこともできる（例えば、プロセス３６０は５０または１００ブロックしかランク付けしないよう構成できる）。様々な異なる方法のどの方法によっても、ブロックに基づくランキングを生成することができる。例えば、ランキングは、ブロックに含まれる検索用語数、様々な検索用語のブロック内における位置、ブロック内で検索用語が発生する頻度などの１つまたは複数に基づくことができる。
【００８９】
次いで文書ランキングがブロックランキングに基づいて生成される（動作３６８）。文書ランキングは様々な方法のどれによっても生成することができる。ある実施形態では、文書の最高ランキングブロックのランクは、文書に対するランキングとして使用される。あるいは、文書のランキングを生成するために文書のすべてのブロックのランキングを組み合わせることができる（例えば、すべてのブロックのランキングの平均を生成する、すべてのブロックのランキングの重み付き平均を生成するなどにより）。
【００９０】
次いで文書のランキングは、例えば要求者に戻される（動作３７０）。文書ランキングは、各文書の特定子（例えば、タイトルまたはＵＲＬ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ））および数値ランキング、各文書の特定子のそれらのランキングによる順番通りの表示（例えば、各文書に対する明示的数値ランキングは表示せず）、検索基準を含む文書からの抜粋、ランクに従った順番で戻された実際の文書などのような様々な異なる方法で戻すことができる。
【００９１】
プロセス３６０に様々な修正を行うことができるということを理解されたい。例えば、動作３６６ではアクセス可能な文書のすべてをランク付けし、または検索できるわけではない。別の例として、動作３７０では完全な文書ではなく文書のブロックを戻すことができる。
【００９２】
図９は、本明細書に記載のビジョンベースの文書セグメンテーションを使用した文書の検索を実行するための別のプロセス例４００を示す流れ図である。プロセス４００は、例えば図１の文書検索モジュール１１０によって実施することができる。プロセス４００は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せで実行することができる。図８のプロセス３６０と同様に、プロセス４００は、例えばウェブページ（例えば、インターネットおよび／またはイントラネット経由で入手可能な）、個人が記載した記事、摘要または要約などを含めて様々な異なるタイプの文書のどれでも取り出すために使用することができる。
【００９３】
プロセス４００はプロセス３６０に類似しているが、ビジョンベースの文書セグメンテーションは実現可能な文書のすべてに対して実行されるわけではない。そうではなく、初期検索が実行され、ビジョンベースの文書セグメンテーションプロセスが初期検索からの文書を使用して実行される。
【００９４】
最初に、照会が受信される（動作４０２）。プロセス３６０と同様に、照会はユーザの照会であっても何らかの他のソースからのものであってもよく、照会は１つまたは複数の検索用語を含む。初期文書検索は文書集合に対して実行され、照会基準を満たす文書がランク付けされる（動作４０４）。この初期検索は様々な方法のどの方法でも実行することができる。動作４０４でのこのような初期検索プロセスの一例が記載されている（例えば、非特許文献１参照。）。動作４０４ではまた様々な従来のどのウェブサーチエンジンも使用することができる。
【００９５】
次いでプロセス４００は、初期検索で取り出された文書に対してビジョンベースの文書セグメンテーションプロセスを実行する工程に進む（動作４０６）。次いで、図８の動作３６６と同様にビジョンベースの文書セグメンテーション（動作４０８）から得られた照会基準（検索用語）およびブロックを用いてブロックの検索が実行される。次いでリファインされた文書ランキングが、図８の動作３６６の上記説明と同様にブロックランクに基づいて生成される（動作４１０）。
【００９６】
次いで最終文書ランキングが、動作４０４からの初期文書ランキングと動作４１０からのリファインされた文書ランキングを組み合わせることによって生成される（動作４１２）。この組合せは、様々な方法のどの方法においてでも実行することができる。例えば、動作４０４と４１０からのランキングを共に平均しても、または動作４０４と４１０からのランキングに対する重み付けされた平均値を使用してもよい。あるいは、特定文書に対する動作４０４および４１０からのランキングの最高ランキングをその文書のランキングとして使用することができる。さらに別の代替形態では、動作４１０からのランキングを動作４０４からのランキングの代わりに使用することができる。
【００９７】
一度最終文書ランキングが生成されると、文書ランキングは図８の動作３７０と同様に戻される（動作４１４）。
【００９８】
図１０は、本明細書に記載のビジョンベースの文書セグメンテーションを使用した文書検索を実行するための別のプロセス例４４０を示す流れ図である。プロセス４４０は、例えば図１の文書検索モジュール１１０によって実施することができる。プロセス４４０は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せで実行することができる。図８のプロセス３６０と同様に、プロセス４４０は、例えばウェブページ（例えば、インターネットおよび／またはイントラネット経由で入手可能な）、個人が記載した記事、摘要または要約などを含めて様々な異なるタイプの文書のどれでも取り出すために使用することができる。
【００９９】
プロセス４４０は、図９のプロセス４００に類似しているが、ビジョンベースの文書セグメンテーションは、照会基準を拡張するために使用される。
【０１００】
最初に、図９の動作４０２と同様に照会が受信される（動作４４２）。図９の動作４０４と同様に、初期文書検索は文書集合に対して実行され、照会基準を満たす文書がランク付けされる（動作４４４）。次いでビジョンベースの文書セグメンテーションプロセスが、図９の動作４０６と同様に、初期検索で取り出された文書に対して実行される（動作４４６）。
【０１０１】
しかし、図９で行われたブロック検索を実行するのではなく、ビジョンベースの文書セグメンテーションプロセスから得られた内容構造のブロックが照会基準と共に照会拡張を実行するために用いられる（動作４４８）。照会拡張は、様々な方法のどの方法においてでも実行することができる。
【０１０２】
ある実施形態では、照会拡張は、拡張用語選択に対するトップランキングブロックを用いて実行される（例えば、最高ランキングの１０ブロック、または最高ランキングを有するブロックの１０％）。ブロックは、元の照会用語をどの程度満たすかによってランク付けされる（図８の動作３６６と同様に）。拡張用語は、様々な周知の方法のどの方法においてでも選択されるが、従来の照会拡張とは異なり、拡張用語はビジョンベースの文書セグメンテーションプロセスから得られたブロックに基づいて選択される。例えば、ビジョンベースの文書セグメンテーションプロセスから得られたブロックのすべての用語（元の照会用語を除く）は、次の用語選択値ＴＳＶに従って重み付けされる。
【０１０３】
【数１】
2005050344.tif 000005
【０１０４】
上式で、ｒは当該用語を含んでいるブロック数を表し、Ｒはビジョンベースの文書セグメンテーションプロセスから得られた合計ブロック数を表し、Ｑを元の照会（動作４４２で受信される）とし、Ｔを元の照会の検索用語を表すとして、ｗ（１）はＱにおけるＴのＲｏｂｅｒｔｓｏｎ／Ｓｐａｒｋ  Ｊｏｎｅｓ重みを表す。
【０１０５】
これらの重み付けされた拡張用語が与えられると、これらの用語の数は拡張用語として使用されるよう選択される。これらの用語の様々な数を選択することができ、ある実施形態ではトップ１０の用語が拡張用語として選択される（すなわち、最大用語選択値ＴＳＶを有する１０個の用語）。
【０１０６】
次いで最終検索が、拡張された照会基準と文書集合とに基づいて実行され、拡張された照会基準を満たす文書がランク付けされる（動作４５０）。動作４５０は、受信された基準でなく拡張された照会が使用されることを除いて動作４４４と同様に実行される。拡張された照会は、元の照会用語ならびに拡張用語を含む。ある実施形態では、拡張された照会にある用語が重み付けされる。どの文書が照会用語と一致するかを決定する際、および／または文書をランク付けする際に、元の照会用語に優先権を与えるために用語が様々な方法で重み付けされることがある。例えば、拡張された照会に対する用語は次のように重み付けすることができる。元の用語（動作４４２で照会の一部として受信された用語）の場合、ｔｆが照会における用語の頻度を表すとして、用語の新しい重みはｔｆ×２である。各拡張用語のために、用語の重みは次のように設定される。
【０１０７】
【数２】
2005050344.tif 000006
【０１０８】
上式で、ｎは用語のＴＳＶランク値を表し、ｍは拡張用語の数（例えば、ある実施形態では１０）である。
【０１０９】
次いで、図９の動作４１４と同様に、動作４５０で最終検索から得られた文書ランキングが戻される（動作４５２）。
【０１１０】
さらに、ある実施形態では、図８、図９、または図１０を参照して上記で説明した文書検索は、上記の視覚ベースの文書セグメンテーションプロセスを固定長方式と組み合わせる結合された文書セグメンテーション方式を利用することができる。この結合された文書セグメンテーション方式では、視覚ブロックが上記のように得られる（例えば、図２を参照して）。これらの視覚ブロックが与えられると、ブロックの少なくとも一部をより小さい単位に分割するために、重複したウィンドウが使用される。第１のウィンドウが第１の視覚ブロックの第１の単語から始まり、後続ウィンドウはブロックの終わりまで特定の分量（例えば、半分）だけ前のウィンドウに重複する。これらのウィンドウに対応する視覚ブロックの一部が最終ブロックとして出力される。ウィンドウの長さより短い視覚ブロックの場合（このウィンドウは通常は固定値である）、視覚ブロックがさらなる分割なしに最終ブロックとして出力される。しかし、より大きいブロックをウィンドウサイズより小さいブロックに分割することによって、様々なブロックの長さの変動は抑えられる。
【０１１１】
文書検索プロセスの最中、この結合された文書セグメンテーション方式を用いて、結合された文書セグメンテーション方式により出力された最終ブロックが内容構造の視覚および／または仮想ブロックの代わりに使用される。
【０１１２】
（環境例）
図１１は、本明細書に記載の技術を実施するために使用することのできる汎用コンピュータ環境５００の一例を示している。コンピュータ環境５００はコンピューティング環境の一例に過ぎず、コンピュータおよびネットアーキテクチャの使用法または機能の範囲に関していかなる制限をも示唆することを意図するものではない。また、コンピュータ環境５００は、コンピュータ環境例５００に示す構成要素のどれか１つまたはそれらの組合せに関するいかなる従属関係または要件をも有するものと解釈されるべきではない。
【０１１３】
コンピュータ環境５００は、コンピュータ５０２形式の汎用コンピューティング装置を含む。コンピュータ５０２は、例えば図１の視覚ブロックエキストラクタ１０４、視覚セパレータディテクタ１０６、内容構造コンストラクタ１０８、および／または文書検索モジュール１１０を実装することができる。コンピュータ５０２の構成要素は、限定はしないが、１つまたは複数のプロセッサまたは処理装置５０４、システムメモリ５０６、およびプロセッサ５０４を含めて様々なシステムコンポーネントをシステムメモリ５０６に接続するシステムバス５０８を含むことができる。
【０１１４】
システムバス５０８は、メモリバスまたはメモリコントローラ、周辺バス、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）、様々なバスアーキテクチャのどれかを使用するプロセッサまたはローカルバスを含めて数種類のバス構造のどれか１つまたは複数を表す。一例として、このようなアーキテクチャは、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニン（Ｍｅｚｚａｎｉｎｅ）バスとしても知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バスを含むことができる。
【０１１５】
コンピュータ５０２は、通常、様々なコンピュータ読取り可能な媒体を含む。このような媒体は、コンピュータ５０２によりアクセス可能であり、揮発性／不揮発性媒体、取り外し可能／取り外し不可能な媒体の両者を含むいかなる入手可能な媒体であってもよい。
【０１１６】
システムメモリ５０６は、ランダムアクセスメモリ（ＲＡＭ）５１０のような揮発性メモリ、および／または読み取り専用メモリ（ＲＯＭ）５１２のような不揮発性メモリの形式のコンピュータ読取り可能な媒体を含む。起動時などにコンピュータ５０２内の素子間で情報を転送することに役立つ基本ルーチンを含んでいる基本入出力システム（ＢＩＯＳ）５１４はＲＯＭ５１２に記憶される。ＲＡＭ５１０は、通常、処理装置５０４によって直接アクセス可能であり、かつ／または現在操作されているデータおよび／またはプログラムモジュールを含んでいる。
【０１１７】
コンピュータ５０２は、他の取り外し可能／取り外し不可能な揮発性／不揮発性コンピュータ記憶媒体も含むこともできる。一例として、図１１は、取り外し不可能な不揮発性磁気媒体（図示せず）から読み取り／に書き込むハードディスクドライブ５１６、取り外し可能な不揮発性磁気ディスク５２０から読み取り／に書き込む磁気ディスクドライブ５１８（例えば、「フロッピー（登録商標）ディスク」）、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体のような取り外し可能な不揮発性光ディスク５２４から読み取り、かつ／またはそれに書き込む光ディスクドライブ５２２を示している。ハードディスクドライブ５１６、磁気ディスクドライブ５１８、および光ディスクドライブ５２２はそれぞれ、１つまたは複数のデータ媒体インターフェース５２５によってシステムバス５０８に接続されている。あるいは、ハードディスクドライブ５１６、磁気ディスクドライブ５１８、および光ディスクドライブ５２２は、１つまたは複数のインターフェース（図示せず）によってシステムバス５０８に接続することができる。
【０１１８】
ディスクドライブおよびそれらの関連付けられたコンピュータ読取り可能な媒体は、コンピュータ５０２にコンピュータ読取り可能な命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶を提供する。この例はハードディスク５１６、取り外し可能な磁気ディスク５２０、および取り外し可能な光ディスク５２４を示しているが、コンピューティングシステムおよび環境例を実施するために、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光記憶装置、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）などのような、コンピュータによってアクセス可能なデータを記憶することのできる他のタイプのコンピュータ読取り可能な媒体も使用できるということを理解されたい。
【０１１９】
ハードディスク５１６、磁気ディスク５２０、光ディスク５２４、ＲＯＭ５１２、および／またはＲＡＭ５１０には、一例としてオペレーティングシステム５２６、１つまたは複数のアプリケーションプログラム５２８、他のプログラムモジュール５３０、およびプログラムデータ５３２を含めてプログラムモジュールをいくつでも記憶することができる。このようなオペレーティングシステム５２６、１つまたは複数のアプリケーションプログラム５２８、他のプログラムモジュール５３０、およびプログラムデータ５３２（またはこれらのある組合せ）のそれぞれは、分散型ファイルシステムをサポートする常駐構成要素のすべてまたは一部を実施することができる。
【０１２０】
ユーザは、コマンドおよび情報をキーボード５３４およびポインティングデバイス５３６（例えば「マウス」）のような入力装置によってコンピュータ５０２に入力することができる。他の入力装置５３８（特に図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用受信アンテナ、シリアルポート、スキャナなどを含むことができる。これらおよび他の入力装置は、システムバス５０８に結合されているが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）のような他のインターフェースおよびバス構造によって接続することのできる入出力インターフェース５４０を介して処理装置５０４に接続される。
【０１２１】
モニタ５４２または他のタイプの表示装置も、ビデオアダプタ５４４のようなインターフェースを介してシステムバス５０８に接続することができる。モニタ５４２に加え、他の出力周辺装置は、入出力インターフェース５４０を介してコンピュータ５０２に接続することのできるスピーカ（図示せず）およびプリンタ５４６のような構成要素も含むことができる。
【０１２２】
コンピュータ５０２は、遠隔コンピューティング装置５４８のような１つまたは複数の遠隔コンピュータへの論理接続を使用するネットワーク接続された環境で動作することができる。一例として、遠隔コンピューティング装置５４８は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピア装置、または他の共通ネットワークノードなどであってよい。遠隔コンピューティング装置５４８は、コンピュータ５０２に関して本明細書に記載した要素および特徴の多くまたはすべてを含むことのできるポータブルコンピュータとして示されている。
【０１２３】
コンピュータ５０２と遠隔コンピュータ５４８の間の論理接続は、ローカルエリアネットワーク（ＬＡＮ）５５０および一般的な広域ネットワーク（ＷＡＮ）５５２として示されている。このようなネットワーク接続環境は、オフィス、企業規模コンピュータネットワーク、イントラネット、およびインターネットでは一般的なものである。
【０１２４】
ＬＡＮネットワーク接続環境で実施される場合、コンピュータ５０２はネットワークインターフェースまたはアダプタ５５４を介してローカルネットワーク５５０に接続される。ＷＡＮネットワーク接続環境で実施される場合、コンピュータ５０２は、通常、モデム５５６、または広域ネットワーク５５２経由の通信を確立するための他の手段を含む。コンピュータ５０２に対して内蔵型であっても外付けであってもよいモデム５５６は、入出力インターフェース５４０または他の適切な機構を介してシステムバス５０８に接続することができる。図示したネットワーク接続は一例であって、コンピュータ５０２と５４８の間で１つ以上の通信リンクを確立する他の手段を利用することができるということを理解されたい。
【０１２５】
コンピューティング環境５００と共に示したようなネットワーク接続環境では、コンピュータ５０２に関して示したプログラムモジュールまたはその一部を遠隔記憶装置に記憶することができる。一例として、遠隔アプリケーションプログラム５５８は遠隔コンピュータ５４８のメモリ装置に常駐する。説明のため、アプリケーションプログラムおよびオペレーティングシステムのような他の実行可能なプログラムコンポーネントを本明細書では別個のブロックで示したが、このようなプログラムおよびコンポーネントは様々な時点でコンピューティング装置５０２の異なる記憶コンポーネントに常駐し、コンピュータの１つ以上のデータ処理装置によって実行されるということが理解されよう。
【０１２６】
（結論）
本明細書では、様々なモジュールおよび技術を、１つまたは複数のコンピュータまたは他の装置によって実行されるプログラムモジュールのようなコンピュータ実行可能命令の一般的な状況で説明することができる。一般に、プログラムモジュールは、特定タスクを実行するか、または特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能は様々な実施形態で、適宜、結合または分散することができる。
【０１２７】
これらモジュールおよび技術の一実施態様は、コンピュータ読取り可能な媒体のある種の形式で記憶し、またはこの形式を介して送信することができる。コンピュータ読取り可能な媒体は、コンピュータによってアクセス可能ないかなる使用可能な媒体であってもよい。限定ではなく一例として、コンピュータ読取り可能な媒体は「コンピュータ記憶媒体」および「通信媒体」を含むことができる。
【０１２８】
「コンピュータ記憶媒体」は、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、または他のデータのような情報を記憶するためのいかなる方法または技術でも実施される揮発性／不揮発性の取り外し可能／取り外し不可能な媒体を含む。コンピュータ記憶媒体は、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、または所望の情報を記憶するために使用することができ、コンピュータによってアクセス可能ないかなる他の媒体をも含む。
【０１２９】
「通信媒体」は、通常、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、もしくは搬送波または他の転送機構のような変調されたデータ信号形式の他のデータを組み込んでいる。また通信媒体は、いかなる情報配信媒体をも含む。「変調されたデータ信号」という用語は、情報を信号に符号化するような方法で設定または変更した、その特性の１つまたは複数を有する信号を意味する。限定ではなく一例として、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体、および音響、ＲＦ、赤外線、および他の無線媒体のような無線媒体を含む。上記のどの組合せも、コンピュータ読取り可能な媒体の範囲内に含まれる。
【０１３０】
本明細書では様々な流れ図を説明し、添付の図面に示した。これら流れ図の動作の順番付けは一例に過ぎず、動作を異なる順番で、かつ／または同時に実行するようこれらの順番付けを変更することができる。
【０１３１】
さらに、本明細書では多くの具体的な数値例を示した（例えば、特定の閾値、特定のサイズ、特定の重みなど）。これらの具体的な数値例は一例に過ぎず、他の値を代わりに使用することができる。
【０１３２】
上記の説明は構造上の特徴および／または方法上の動作に特有の用語を使用したが、首記の特許請求の範囲で定義した本発明は、説明したこの具体的な特徴または動作に限定されるものではないことを理解されたい。そうではなく、具体的な特徴および動作は本発明を実施する形式例として開示されている。
【図面の簡単な説明】
【０１３３】
【図１】ビジョンベースの文書セグメンテーションを使用したシステム例を示すブロック図である。
【図２】ビジョンベースの文書セグメンテーションを実行するためのプロセス例を示す流れ図である。
【図３】視覚ブロック特定を実行するためのプロセス例を示す流れ図である。
【図４】視覚セパレータ検出を実行するためのプロセス例を示す流れ図である。
【図５ａ】水平セパレータを検出する一例を示す図である。
【図５ｂ】水平セパレータを検出する一例を示す図である。
【図５ｃ】水平セパレータを検出する一例を示す図である。
【図５ｄ】水平セパレータを検出する一例を示す図である。
【図５ｅ】水平セパレータを検出する一例を示す図である。
【図５ｆ】水平セパレータを検出する一例を示す図である。
【図６】内容構造構築を実行するためのプロセス例を示す流れ図である。
【図７】仮想ブロックおよび内容構造ツリーを生成する一例を示す図である。
【図８】ビジョンベースの文書セグメンテーションを使用した文書検索を実行するためのプロセス例を示す流れ図である。
【図９】ビジョンべースの文書セグメンテーションを使用した文書検索を実行するための別のプロセス例を示す流れ図である。
【図１０】ビジョンべースの文書セグメンテーションを使用した文書検索を実行するための別のプロセス例を示す流れ図である。
【図１１】本明細書に記載の技術を実施するために使用することのできる汎用コンピュータ環境の一例を示す図である。
【図１】
2005050344.tif 000007
【図２】
2005050344.tif 000008
【図３】
2005050344.tif 000009
【図４】
2005050344.tif 000010
【図５ａ】
2005050344.tif 000011
【図５ｂ】
2005050344.tif 000012
【図５ｃ】
2005050344.tif 000013
【図５ｄ】
2005050344.tif 000014
【図５ｅ】
2005050344.tif 000015
【図５ｆ】
2005050344.tif 000016
【図６】
2005050344.tif 000017
【図７】
2005050344.tif 000018
【図８】
2005050344.tif 000019
【図９】
2005050344.tif 000020
【図１０】
2005050344.tif 000021
【図１１】
2005050344.tif 000022