> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# field 名のバリエーションに対して複数の Static Text 値を設定する

> StaticText.fsp サンプルプロジェクトを使用して、Invoice、Invoice:、Invoice # などの field 名のバリエーションを検出するために、複数の Static Text 値を一覧指定します。

ドキュメント、テーブル、field のさまざまなタイトルや、ドキュメント内のすべてまたは大半の画像に含まれる任意のテキストを検出するために、FlexiLayout Studio では特別な **Static Text** 要素を使用します。

同じ FlexiLayout で処理する画像ごとに同じ名前の表記ゆれがある場合 (たとえば、field「Invoice number」には「**Invoice**」、「**Invoice:**」、「**Invoice No.**」というバリエーションがある場合) 、句読点だけの違いであっても、考えられる static text の値をすべて指定する必要があります。

<div id="why-every-static-text-variant-must-be-listed">
  ## すべての static text バリエーションを列挙する必要がある理由
</div>

これは、次の理由から必要です。

* 指定した値に対応する仮説を生成するためです。たとえば、**Invoice:** という候補を指定せず、**Invoice** だけを指定した場合、コロンは field 名の仮説に含まれません。すると、そのコロンが、名前の右側で検索される請求書番号の検索領域に含まれてしまう可能性があります。番号の検索で数字以外の文字や未指定の文字が許可されている場合、そのコロンが請求書番号を表す要素の仮説に入り込むことがあります。
* **Search text** ウィンドウで指定していない文字によって仮説が減点されるのを防ぐためです。たとえば、**Search text** セクションで **Invoice:** を指定していて、処理対象の画像に **Invoice#** という名前も存在する場合、その要素である程度の誤りが許可されていれば仮説は生成されますが、その品質は減点されます (この例では、FlexiLayout で少なくとも 1 つの誤りが許可されています) 。
* たとえば **Invoice|Invoice:** のように候補仮説がある場合、FlexiLayout Studio は長い方の仮説にわずかに高い品質を割り当てるため、**Invoice:** の仮説が優先されます。コロンを含む候補が指定されている場合、**Invoice** は **Invoice:** の部分文字列であるため、コロンを含まない方は 0.001 減点されます。もう一方の部分文字列である短い名前文字列を減点することで、長い仮説が winner になります。

<div id="the-statictextfsp-sample-project">
  ## StaticText.fsp サンプルプロジェクト
</div>

**Static Text** 要素の値を指定することで、「Invoice number」field の名前と field 自体の検出にどのように役立つかを確認するため、サンプルプロジェクト `StaticText.fsp` (フォルダー `%public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Variants of StaticText`) を使用してみましょう。

このプロジェクトには 5 ページあり、それぞれのページに **Invoice number** field 名のバリエーションが示されています。

| ページ   | 「Invoice number」field の名前                                                        |
| ----- | -------------------------------------------------------------------------------- |
| ページ 1 | **INVOICE**                                                                      |
| ページ 2 | **Invoice:**                                                                     |
| ページ 3 | **Invoice #:**                                                                   |
| ページ 4 | **Invoice -**                                                                    |
| ページ 5 | **Invoice:** (このページには **Invoice date** field もあり、そこにも **Invoice** という単語が含まれています) |

<div id="specify-all-name-variants-in-the-invoiceheader-element">
  ## InvoiceHeader 要素で名前のバリエーションをすべて指定する
</div>

**InvoiceHeader** という名前の **Static Text** 要素の **Properties** ダイアログでは、処理対象ドキュメント上で見つかる可能性がある field 名をすべて指定しています。この場合は、前述の値です。検索では、名前の大文字と小文字は区別されません: **Invoice|Invoice:|Invoice#:|Invoice-**。

<Note>
  要素の検索を高速化するため、すべての候補はスペースを入れずに記述しています。スペースの有無は仮説の品質に影響しません。
</Note>

簡単のため、請求書番号は常に名前の右側にあるものとします。請求書番号を検索するために、**InvoiceNumber** という名前の **Character String** 要素を作成しています。

その alphabet と search constraints は **Relations** field で指定されています。これらの設定は単純なため、ここでは説明しません。詳細はプロジェクト内で直接確認できます。

FlexiLayout ツリーには **Invoice** というテキストブロックが作成されています。このブロックの **Source element** として **InvoiceNumber** 要素が指定されています。

解析手順を実行するとわかるように、field 名と請求書番号はすべてのページで正しく検出できます。

<div id="remove-all-values-except-invoice-and-rematch">
  ## Invoice 以外のすべての値を削除して再度マッチングする
</div>

次に、**InvoiceHeader** 要素から最初の (**Invoice**) を除くすべての Static Text 値を一時的に削除し、その後、もう一度すべてのページに対して FlexiLayout のマッチングを試してください。名前と請求書番号が正常に検出されたのはページ 1 だけであることがわかります。これは、ページ 1 では名前が指定した値 (**Invoice**) と完全に一致しているためです。

ページ 2～4 では、名前の一部が請求書番号に入り込んでしまいました。ページ 5 では、番号 field の位置特定でエラーが発生しました。

<Frame>
  <img src="https://mintcdn.com/abbyy/r-nfa7jujx5b9gKX/images/flexi-capture/fls/static_text.png?fit=max&auto=format&n=r-nfa7jujx5b9gKX&q=85&s=c3effefe14366ea1164df4eb57c98fd5" alt="最初の Static Text 値だけを残してほかをすべて削除した後の ABBYY FlexiLayout Studio での FlexiLayout のマッチング結果のスクリーンショット。名前が値 Invoice と完全に一致するページでのみ、field 名と請求書番号が正しく検出されていることを示しています。" width="533" height="491" data-path="images/flexi-capture/fls/static_text.png" />
</Frame>

<div id="restore-the-values-and-compare-the-page-5-hypotheses">
  ## 値を元に戻し、ページ 5 の仮説を比較する
</div>

削除した値を元に戻し、**Invoice** という単語が 2 回出現しているページ 5 の解析結果を見てください。ご覧のとおり、FlexiLayout Studio は **InvoiceHeader** 要素に対して 5 つの仮説を生成しました。

最も高い品質 (**Chain quality** = 1。この場合、これは **Pre-search quality** と同じです) は、**Invoice:** という名前に対する仮説に割り当てられています。

**Invoice** および **Invoice d** という値についても仮説が生成されました。これは、これらの文字列が **InvoiceHeader** 要素に指定された値の派生形であり、そこでは一定割合の誤りが許容されているためです。これらの仮説には、このページの前のほうで説明した理由によりペナルティが課されているため、最終的な品質は低くなっています。

<Frame>
  <img src="https://mintcdn.com/abbyy/r-nfa7jujx5b9gKX/images/flexi-capture/fls/static_text2.png?fit=max&auto=format&n=r-nfa7jujx5b9gKX&q=85&s=d47cdaaeb6991857e9e34b996be9a03f" alt="ABBYY FlexiLayout Studio におけるページ 5 の解析結果のスクリーンショット。すべての Static Text 値を元に戻した後、InvoiceHeader 要素に対して生成された 5 つの仮説とそのチェーンの品質の値を示しています。" width="533" height="491" data-path="images/flexi-capture/fls/static_text2.png" />
</Frame>
