サンプル3。ステップ13:画像の更なる分析
Invoice Number、 Invoice Date付、およびDeliveryAddressフィールドについてご説明しました。
さて、他の要素の検出順序を決めましょう。
試験画像のフィールドの整列を分析することで、Countryフィールドを検出するには、このフィールドの名前と種類文字列の要素を使用できることがわかります。ですが、Total QuantityおよびTotal Amountフィールドを検出するには、2つのフィールドで共有される名前だけでなく、追加的な要素も使う必要があります。表の対応する列の名前を、この目的で使用することができます。
また、種類表の要素によって検出される請求書表フィールドの検索で基礎を準備する必要があります。
- 表のヘッダーを記述します。列名を検出する方法は2つあります。
- 1つ目は、列プロパティダイアログボックスで1つまたは複数のキーワードを指定するものです(表要素のプロパティダイアログボックス → 列タブ)。この方法は素早いですが、あまり柔軟ではありません。
- 2つ目は、前に検出された要素を参照要素として使用して、列名の位置を見つけるものです。この方法により、要素の追加設定を最大限に活かすことができます。事前認識結果の分析により、認識の質が十分であることがわかるため、最初の方法を使用できます(Quantity列名の非常に短い名前のみが問題で、3文字のキーワード「数量」のエラー20%はエラーが事実上許容されていないことを意味します)。最初の2列、ReferenceおよびDesignationを検出するための最初の方法を使用し、また残りの列の名前を検出するために前述の要素を使用することができます:Quantity、Unit Price、Total(TotalQuantityおよびTotalAmountフィールドを検出するためにこの要素の作成が必要な限り)。
- 表のフッターを記述します。キーワードを使用するか、補助要素を使用して記述することもできます。フッターのキーワードを分析すると、画像でキーワードがテーブルの最初の行にも表示されることがあるとわかります。検索領域を制限する手段により、補助要素を使用する必要があります。
- 表の検索領域を記述します。ヘッダーとフッターを記述した後、表の右境界を記述する必要があります(左境界については、画像のこの部分に他のデータがないため、記述する必要はありません)。コンテキストを使用して合計列の数値と販売列の数値を区切ることはできないため、別の取り組みが必要です。最後の列の名前である販売を使用して、右の表の検索領域を制限することができます。
注意:要素および検出順序は試行錯誤で選択され、FlexiLayoutの調整中に変更できます。
残りのフィールドの前に、補助要素を記述します。
- 要素間の相互依存性を分析することで、まずQuantity、Unit Price、Total、Sales列の名前を検出しなければいけないことがわかります。
- 表のヘッダーは、列名と、 Invoice Number、 Invoice Date、Delivery Addressフィールドの間の横区切りで始まります。この区切りで、列名の検索領域を制限することができます。
- これを目的に、種類区切りの要素を作成して名前をhsTableHeaderTopと付けます。(詳細はステップ14参照)。
自然な順序で列名を探します。 - 種類グループの要素を作成して名前をTableHeaderと付けます(詳細はステップ15参照)。この要素には以下が含まれなくてはいけません:
- 文書の下部の記述を続けます。関心対象のフィールドはTotal QuantityおよびTotal Amountフィールドの名前(表の下部境界となるもの)、および表の下部境界の配置に役立つ他のキャプションです。この論理グループのCountryフィールドの名前要素およびソース要素も記述します。
- グループ要素を作成して名前をFooterと付けます。この要素には以下が含まれなくてはいけません:
準備完了し、追加的な要素の作成順序を記述したので、残りのフィールド探しを始めることができます。前に検出された列およびFooterの名前を頼りに、残りのTotal Quantity、Total Amount、およびInvoice Tableのフィールドを記述します。
12.04.2024 18:16:07