(57)【要約】【課題】広範囲の原稿をファイル名の生成対象とする。【解決手段】スキャナーで読み取られた原稿の読取データに含まれている画像、文字列、前記読取データのレイアウト、のうちの少なくとも１つと、前記読取データのファイル名とを対応付けた教師データを用いて機械学習した学習済モデルを記憶する記憶部と、前記読取データに含まれている画像、文字列、前記読取データのレイアウト、のうちの少なくとも１つと、前記学習済モデルとを用いて、前記読取データのファイル名を生成する制御部と、を備える情報処理装置を構成する。【選択図】図１
2020149409.tif 000002
【特許請求の範囲】
【請求項１】
スキャナーで読み取られた原稿の読取データに含まれている画像、文字列、前記読取データのレイアウト、のうちの少なくとも１つと、前記読取データのファイル名とを対応付けた教師データを用いて機械学習した学習済モデルを記憶する記憶部と、
前記読取データに含まれている画像、文字列、前記読取データのレイアウト、のうちの少なくとも１つと、前記学習済モデルとを用いて、前記読取データのファイル名を生成する制御部と、
を備える情報処理装置。
【請求項２】
前記制御部が生成した前記ファイル名が変更された場合、
前記読取データに含まれている画像、文字列、前記読取データのレイアウト、のうちの少なくとも１つと、変更後の前記ファイル名とを対応づけた前記教師データを用いて前記学習済モデルを再学習させる学習部、をさらに備える、
請求項１に記載の情報処理装置。
【請求項３】
前記学習部は、
変更後の前記ファイル名の学習結果に対する影響を、変更前の前記ファイル名よりも大きくして再学習させる、
請求項２に記載の情報処理装置。
【請求項４】
前記学習部は、
変更された文字列の学習結果に対する影響を、変更前の文字列よりも大きくして再学習させる、
請求項３に記載の情報処理装置。
【請求項５】
前記ファイル名は、
前記読取データに含まれる日付情報を有する、
請求項１〜請求項４のいずれかに記載の情報処理装置。
【請求項６】
前記学習済モデルは、
前記ファイル名に前記日付情報が含まれるか否かを出力する、
請求項５に記載の情報処理装置。
【請求項７】
前記教師データが示す前記ファイル名は、
利用者によって入力された文字列と、前記読取データに対するＯＣＲ処理によって読み取られた文字列との少なくとも一方を含む、
請求項１〜請求項６のいずれかに記載の情報処理装置。
【請求項８】
前記画像は、前記原稿の発行元を示す画像を含み、
前記制御部は、前記発行元を示す画像を基に前記原稿の前記発行元を特定し、前記発行元の名称を含む前記ファイル名を生成する、
請求項１〜請求項７のいずれかに記載の情報処理装置。
【請求項９】
スキャナーで読み取られた原稿の読取データに含まれている画像、文字列、前記読取データのレイアウト、のうちの少なくとも１つと、前記読取データのファイルに関する情報とを対応付けた教師データを取得する教師データ取得部と、
前記読取データに含まれている画像、文字列、前記読取データのレイアウト、のうちの少なくとも１つを入力し、前記読取データのファイルに関する情報を出力する学習済モデルを、前記教師データに基づいて機械学習する学習部と、
を備える機械学習装置。
【請求項１０】
スキャナーで読み取られた原稿の読取データに含まれている画像、文字列、前記読取データのレイアウト、のうちの少なくとも１つと、前記読取データのファイルに関する情報とを対応付けた教師データを用いて機械学習した学習済モデルを用いて、前記読取データに含まれている画像、文字列、前記読取データのレイアウト、のうちの少なくとも１つに基づいて、前記読取データのファイルに関する情報を生成する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、機械学習装置および情報処理方法に関する。
【背景技術】
【０００２】
従来、ファイル名を自動的に生成する技術が知られている。例えば、特許文献１においては、フォーム毎に予め指定されている認識箇所のイメージデータを読み込んで文字認識処理を行い、認識された文字列に基づいてファイル名を生成することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−７１０５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の技術においては、定型的なフォームの指定された場所の文字によってファイル名が決められてしまう。従って、非定型的なフォームの読取データに対してファイル名を生成することができない。
本発明は、広範囲の原稿をファイル名の生成対象とすることを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するための情報処理装置は、スキャナーで読み取られた原稿の読取データに含まれている画像、文字列、読取データのレイアウト、のうちの少なくとも１つと、読取データのファイル名とを対応付けた教師データを用いて機械学習した学習済モデルを記憶する記憶部と、読取データに含まれている画像、文字列、読取データのレイアウト、のうちの少なくとも１つと、学習済モデルとを用いて、読取データのファイル名を生成する制御部と、を備える。この構成によれば、広範囲の原稿をファイル名の生成対象とすることができる。
【０００６】
また、制御部が生成したファイル名が変更された場合、読取データに含まれている画像、文字列、読取データのレイアウト、のうちの少なくとも１つと、変更後のファイル名とを対応づけた教師データを用いて学習済モデルを再学習させる学習部、をさらに備える構成であっても良い。この構成によれば、変更されたファイル名の傾向に応じてファイル名を出力することが可能になる。
【０００７】
さらに、学習部は、変更後のファイル名の学習結果に対する影響を、変更前のファイル名よりも大きくして再学習させる構成であっても良い。この構成によれば、利用者による変更の傾向を早期に学習することが可能になる。
【０００８】
さらに、学習部は、変更された文字列の学習結果に対する影響を、変更前の文字列よりも大きくして再学習させる構成であっても良い。この構成によれば、利用者が文字列を変更した場合に、変更後の文字列の傾向を早期に学習することが可能になる。
【０００９】
さらに、ファイル名は、読取データに含まれる日付情報を有する構成であってもよい。この構成によれば、読取データに基づいて、日付情報を有するファイル名を生成することが可能になる。
【００１０】
さらに、学習済モデルは、ファイル名に日付情報が含まれるか否かを出力する構成であっても良い。この構成によれば、ファイル名に日付情報を含むか否かを学習し、学習結果に基づいてファイル名を生成することが可能になる。
【００１１】
さらに、教師データが示すファイル名は、利用者によって入力された文字列と、読取データに対するＯＣＲ処理によって読み取られた文字列との少なくとも一方を含む構成であっても良い。この構成によれば、利用者によるファイル名の作成傾向と、読取データに含まれる文字列に関連したファイル名の傾向と、の少なくとも一方を学習することができる。
【００１２】
さらに、画像は、原稿の発行元を示す画像を含み、制御部は、発行元を示す画像を基に原稿の発行元を特定し、発行元の名称を含むファイル名を生成する構成であっても良い。この構成によれば、会社のロゴマークなどの画像に応じたファイル名を生成することが可能になる。
【００１３】
さらに、スキャナーで読み取られた原稿の読取データに含まれている画像、文字列、読取データのレイアウト、のうちの少なくとも１つと、読取データのファイルに関する情報とを対応付けた教師データを取得する教師データ取得部と、読取データに含まれている画像、文字列、読取データのレイアウト、のうちの少なくとも１つを入力し、読取データのファイルに関する情報を出力する学習済モデルを、教師データに基づいて機械学習する学習部と、を備える機械学習装置が構成されても良い。この構成によれば、読取データに応じたファイル名の作成傾向を学習し、出力する学習済モデルを作成することができる。
【図面の簡単な説明】
【００１４】
【図１】情報処理装置および機械学習装置のブロック図。
【図２】機械学習処理のフローチャート。
【図３】機械学習を行うモデルを示す図。
【図４】ファイル名の特定を示す図。
【図５】ファイル名生成処理のフローチャート。
【図６】原稿の例を示す図。
【図７】機械学習を行うモデルを示す図。
【発明を実施するための形態】
【００１５】
ここでは、下記の順序に従って本発明の実施の形態について説明する。
（１）情報処理装置および機械学習装置の構成：
（２）機械学習処理：
（３）ファイル名生成処理：
（４）他の実施形態：
【００１６】
（１）情報処理装置および機械学習装置の構成：
図１は、本発明の実施形態にかかる情報処理装置１を示すブロック図である。本実施形態にかかる情報処理装置１は、スキャナー２に接続されたコンピューターである。なお、本実施形態における情報処理装置１は、機械学習装置としても機能する。情報処理装置１は、プロセッサー１０と、ＨＤＤ（ハードディスクドライブ）等の記憶部２０と、機器インターフェース３０と、ディスプレイインターフェース４０とを備えている。
【００１７】
機器インターフェース３０は、既定の通信プロトコル（例えばＵＳＢ（Universal Serial Bus）規格）に従って通信を行う機器を接続可能なインターフェースである。本実施形態において、機器インターフェース３０には、スキャナー２、マウス３ａ、キーボード３ｂが接続されている。スキャナー２は、原稿に光を照射する光源と、原稿からの光を受光して読み取りデータとするカラーイメージセンサーと、各種の可動部を移動させるための機械部品等を備えている。
【００１８】
本実施形態において、スキャナー２は、任意の原稿を読み取って、原稿の内容を示す読取データを出力することができる。なお、読取データのファイル形式は任意である。情報処理装置１は、機器インターフェース３０を介してスキャナー２が出力する読取データを取得し、記憶部２０に読取データ２０ａとして保存する。スキャナー２における原稿の読取方式は、種々の態様であって良く、フラットベッドであっても良いしＡＤＦによる搬送原稿を読み取る方式であっても良く、双方が可能であっても良い。
【００１９】
マウス３ａは、利用者に把持されて移動される操作部とボタンとを備えており、操作部の移動量を示す情報とボタンに対する操作結果を示す情報とを出力する。情報処理装置１は、機器インターフェース３０を介してマウス３ａが出力する情報を取得し、当該情報に基づいて利用者の操作を受け付けることができる。キーボード３ｂは、複数のキーを備えており、キーに対する操作を示す情報を出力する。情報処理装置１は、機器インターフェース３０を介してキーボード３ｂが出力する情報を取得し、当該情報に基づいて利用者の操作を受け付けることができる。
【００２０】
ディスプレイインターフェース４０は、ディスプレイ４が接続されるインターフェースである。情報処理装置１は、ディスプレイインターフェース４０を介してディスプレイ４に制御信号を出力し、ディスプレイ４に各種の画像を表示させることが可能である。
【００２１】
プロセッサー１０は、ＣＰＵ，ＲＡＭ等を備え、記憶部２０に記録された種々のプログラムを実行することができる。情報処理装置１は、機械学習装置としても機能するため、機械学習が行われる場合に利用されるプロセッサー（例えば、ＧＰＵや機械学習のために設計された専用プロセッサー等）を備えていても良い。
【００２２】
本実施形態においてプロセッサー１０は、学習済モデルを生成する機械学習プログラムと、学習済モデルに基づいてファイル名を生成する情報処理プログラムとを実行可能である。これらのプログラムの一方または双方が実行されると、プロセッサー１０は、教師データ取得部１０ａ，学習部１０ｂ，制御部１０ｃとして機能する。
【００２３】
プロセッサー１０は、教師データ取得部１０ａ，学習部１０ｂの機能により教師データ２０ｃに基づいて機械学習を行うことで、学習済モデル２０ｂを生成することができる。また、プロセッサー１０は、制御部１０ｃの機能により、学習済モデル２０ｂに基づいて読取データのファイル名を生成することができる。
【００２４】
（２）機械学習処理：
次に、プロセッサー１０が実行する機械学習処理を説明する。図２は機械学習処理を示すフローチャートである。機械学習処理は、読取データのファイル名を生成する前に予め少なくとも１回実行される。なお、機械学習処理が１回実行されていたとしても、教師データ２０ｃが増加したら、再学習が行われる。再学習の開始タイミングは種々のタイイングであって良く、一定期間毎であっても良いし、任意の期間毎であっても良いし、利用者が指示したタイミングであっても良い。
【００２５】
機械学習処理が開始されると、プロセッサー１０は、学習部１０ｂの機能により、訓練モデルを取得する（ステップＳ１００）。ここで、モデルとは、推定対象のデータと推定結果のデータとの対応関係を導出する式を示す情報であり、ここでは読取データをファイル名に対応づけるモデルを例にして説明する。
【００２６】
入力データを出力データに変換する限りにおいて、モデルは種々の定義が可能である。本実施形態においては、ＣＮＮ（Convolutional neural network）が利用される。図３は本実施形態において利用されるモデルを含み得るニューラルネットワークの構造を模式的に示した図である。同図３においては、ＣＮＮによるデータフォーマットの変化を直方体の変化で示しており、ニューラルネットワークのノードを白丸で示している。
【００２７】
本実施形態のモデルは、スキャナー２で読み取られた読取データをＣＮＮの入力層Ｌｉ１への入力データとし、層Ｌｎ１から読取データに関する中間出力データを出力する。ＣＮＮに入力する読取データは縦Ｈピクセル、横Ｗピクセルであり、各ピクセルについてＲ：赤、Ｇ：緑、Ｂ：青の３チャンネルの階調値が規定されている。従って、図３において入力層Ｌｉ１の画像は縦Ｈ，横Ｗ，奥行き３の直方体で模式的に示されている。図３においては、画像が入力層に入力された後、ＣＮＮを経て、すなわち、所定の大きさおよび数のフィルターによる畳み込み演算、活性化関数による演算およびプーリング層の演算を経てＨ１１×Ｗ１１×Ｄ１１個の出力値に変換される例を示している。図３においては、この後、複数の層（図示省略）を経てＨｍ１×Ｗｍ１×Ｄｍ１個の出力値に変換される例を示している。ＣＮＮによってＨｍ１×Ｗｍ１×Ｄｍ１個の出力値が得られた後、全結合によって層Ｌｎ１に読取データに関する中間出力データを示す出力値が得られる。
【００２８】
さらに、層Ｌｎ１のノードはニューラルネットワークを経て出力層Ｌｏに接続され、出力層Ｌｏにおいてファイル名を示す情報が出力される。むろん、層Ｌｎ１から出力層Ｌｏまでの間には、複数の層が設けられていても良い。出力層Ｌｏにおける出力はファイル名を示していれば良く、種々の形式を採用可能である。図３に示す例においては、ファイル名の位置毎の単語を示すｎ個（ｎは２以上の整数）のノード（図３に示す＃１〜＃ｎ）と、日付情報を示すノード（図３に示すｙｙｙｙ，ｍｍ，ｄｄ）とが存在する。
【００２９】
具体的には、日付情報を示すノードには、４桁の西暦（ｙｙｙｙ）、２桁の月（ｍｍ）、２桁の日（ｄｄ）が対応づけられており、読取データに日付情報が含まれる場合、その数値の形状等に基づいて日付情報が出力されるように構成されている。位置毎の単語を示すノードは、各位置に配置されるべき単語のコードを出力するように構成されている。図４は、位置毎の単語が特定されることでファイル名が特定される様子を示す図である。本実施形態において、ノード＃１は左端の単語を示し、ノード＃２は左端の右隣の単語を示し、以後、ノードの番号が１個増加するたびに単語の位置が１個ずつ移動する。そして、ノード＃ｎは右端の単語を示している。ここでは、左から右に向けて文字が並べられる国が想定されているため、ノード＃ｎの位置の単語は、拡張子の直前の単語である。
【００３０】
本実施形態においては、拡張子より前の（左側の）単語列が、学習済モデル２０ｂによって生成されるファイル名であり、図４に例示されたファイル名は「店舗Ａレシート２０１９０３０１」である。当該ファイル名は「店舗Ａ」、「レシート」、「２０１９０３０１」という３個の単語で構成されている。なお、文字列の単語への分解は、形態素解析などの公知の種々の手法を採用可能である。
【００３１】
本実施形態において、位置毎の単語を示すノードからは、空白であることを示す値、単語のコード、日付情報であることを示す値のいずれかが出力される。例えば、図４に示すようにファイル名を構成する単語が３個である場合、ノード＃ｎ−２，ノード＃ｎ−１，ノード＃ｎに有意な値であるコードの値が出力され、他のノードにおいては単語が存在しないことを示す値である００００が出力される。なお、任意の位置の単語が日付情報である場合、ノードの出力はＦＦＦＦである。すなわち、ノードの出力がＦＦＦＦである場合、そのノードが示す位置に日付情報が含まれるファイル名が生成される。以上の構成により、本実施形態においては、読取データに基づいて日付情報が含まれるファイル名を生成することが可能になる。
【００３２】
本実施形態において、単語のコードは予め作成され、記憶部２０に記録された単語データ２０ｆに基づいて特定される。図４においては、「名前Ｂ」という単語にコード０００１が対応づけられ、「店舗Ａ」という単語にコード００５０が対応づけられ、「レシート」という単語にコード０１１５が対応づけられ、「契約書」という単語にコード０１２０が対応づけられている例を示している。この例であれば、ファイル名の最も左側の単語「店舗Ａ」を示すコード００５０がノード＃ｎ−２の出力となり、次の単語「レシート」を示すコード０１１５がノード＃ｎ−１の出力となる。また、最も右側に位置する日付情報を示すコードＦＦＦＦがノード＃ｎの出力となる。
【００３３】
なお、単語データ２０ｆは、種々の手法で作成されて良く、少なくとも、教師データ２０ｃにおいて読取データに対応づけられたファイル名を構成する単語には、コードが付与されて単語データ２０ｆに含められる。むろん、単語データ２０ｆに含まれる単語は、教師データ２０ｃにおいて読取データに対応づけられたファイル名を構成する単語よりも多数であって良く、例えば、各種のコーパスやインターネットでアクセス可能なウェブサイトから収集された単語等が単語データ２０ｆを構成し得る。また、単語に対応づけられるコードは、種々の手法で表現されて良く、例えば、ｗｏｒｄ２ｖｅｃ等の技術が利用されて作成されて良い。この場合、後述する損失関数によって計算される誤差は、ベクトル表現された単語間の誤差であってもよい。いずれにしても、単語データ２０ｆにおいては、コードまたはコードに対応づけられた値（ベクトル）の誤差が小さいほど意味が近い単語やファイル名を構成する可能性が高い単語になるように定義されていることが好ましい。
【００３４】
本実施形態におけるモデルは、出力層Ｌｏにおいて、ファイル名の位置毎の単語を示すｎ個のノードと、日付情報を示すノードとを有している。以上の構成によれば、ファイル名の位置毎の単語を示すｎ個のノードの出力値（または出力値に最も近い値）に基づいて、単語データ２０ｆもしくは日付情報から各位置の単語が決められることにより、ファイル名を生成することができる。
【００３５】
むろん、図３に示すモデルの一部を既知の関数で表現し、残りを未知の関数として表現し、未知の関数を学習対象としても良い。モデルがどのような態様であったとしても、読取データを入力すると最終的にファイル名が出力されるモデルが構築されていれば、読取データからファイル名を推定するためのモデルを学習することができる。
【００３６】
図２に示すフローチャートにおけるステップＳ１００では、訓練モデルを取得する。ここで、訓練とは、学習対象であることを示す。すなわち、訓練モデルにおいては、読取データからファイル名を出力するが、読取データとファイル名との対応関係は初期において正確ではない。すなわち、訓練モデルにおいては、ノードが構成する層の数やノードの数は決められるが、入出力の関係を規定するパラメーター（上述の重みやバイアス等）は最適化されていない。これらのパラメーターは、機械学習の過程で最適化される（すなわち、訓練される）。
【００３７】
訓練モデルは、予め決定されていても良いし、利用者がマウス３ａやキーボード３ｂを操作して入力することによって取得されても良い。いずれにしても、プロセッサー１０は、図３に示す例において読取データからファイル名を出力するＣＮＮやニューラルネットワークのパラメーターを訓練モデルとして取得する。当該訓練モデルは記憶部２０に訓練モデル２０ｅとして記録される。むろん、再学習が行われる場合、訓練モデルは既存のモデルであって良い。
【００３８】
次に、プロセッサー１０は、学習部１０ｂの機能により、教師データを取得する（ステップＳ１０５）。本実施形態において、教師データ２０ｃは、スキャンした原稿の読取データと、当該読取データが保存された際に付与されたファイル名とを対応づけたデータである。本実施形態においては、原稿がスキャンされ、利用者によって入力された文字列によって読取データにファイル名が付与されると、当該ファイル名に読取データが対応づけられて保存される。また、当該読取データとファイル名との対応関係を規定する教師データ２０ｃが記憶部２０に追加される。プロセッサー１０は、ステップＳ１０５において、最新の教師データ２０ｃを取得する。
【００３９】
次に、プロセッサー１０は、学習部１０ｂの機能により、テストデータを取得する（ステップＳ１１０）。テストデータは学習結果が汎化しているか否か確認するためのデータであり、学習には利用されない。テストデータは、教師データ２０ｃと別個に用意されても良いが、本実施形態においてはステップＳ１０５で取得された教師データ２０ｃの一部をテストデータとして確保する。
【００４０】
次に、プロセッサー１０は、学習部１０ｂの機能により、初期値を決定する（ステップＳ１１５）。すなわち、プロセッサー１０は、ステップＳ１００で取得した訓練モデルのうち、可変のパラメーターに対して初期値を与える。初期値は、種々の手法で決定されて良い。例えば、ランダム値や０等を初期値とすることができ、重みとバイアスとで異なる思想で初期値が決定されても良い。むろん、学習の過程でパラメーターが最適化されるように初期値が調整されても良い。また、再学習が行われる場合、初期値は既存の学習済モデル２０ｂの値であって良い。
【００４１】
次に、プロセッサー１０は、学習部１０ｂの機能により、学習を行う（ステップＳ１２０）。すなわち、プロセッサー１０は、ステップＳ１００で取得した訓練モデルにステップＳ１０５で取得した教師データ２０ｃを入力し、ファイル名を示す出力を計算する。また、出力されたファイル名と教師データ２０ｃが示すファイル名との誤差を示す損失関数によって誤差を特定する。そして、プロセッサー１０は、損失関数のパラメーターによる微分に基づいてパラメーターを更新する処理を既定回数繰り返す。むろん、損失関数は、種々の関数を採用可能であり、例えば、交差エントロピー誤差などを採用可能である。
【００４２】
損失関数を算出する処理は、教師データ２０ｃが示す読取データの全てまたは一部について実施され、その平均や総和によって１回の学習における損失関数が表現される。損失関数が得られたら、プロセッサー１０は、既定の最適化アルゴリズム、例えば、確率的勾配降下法等によってパラメーターを更新する。
【００４３】
以上のようにして、既定回数のパラメーターの更新が行われると、プロセッサー１０は、訓練モデルの汎化が完了したか否かを判定する（ステップＳ１２５）。すなわち、プロセッサー１０は、ステップＳ１１０で取得したテストデータ２０ｄを訓練モデルに入力してファイル名を示す出力を取得する。そして、プロセッサー１０は、出力されたファイル名と、テストデータに対応づけられたファイル名とが一致している数を取得し、テストデータ２０ｄが示すサンプル数で除することで推定精度を取得する。本実施形態において、プロセッサー１０は、推定精度が閾値以上である場合に汎化が完了したと判定する。
【００４４】
なお、汎化性能の評価に加え、ハイパーパラメーターの妥当性の検証が行われてもよい。すなわち、重みとバイアス以外の可変量であるハイパーパラメーター、例えば、ノードの数等がチューニングされる構成において、プロセッサー１０は、検証データに基づいてハイパーパラメーターの妥当性を検証しても良い。検証データは、ステップＳ１１０と同様に、予め用意されても良いし、教師データ２０ｃの一部から抽出されても良い。むろん、検証データも訓練には使用されない。
【００４５】
ステップＳ１２５において、訓練モデルの汎化が完了したと判定されない場合、プロセッサー１０は、ステップＳ１２０を繰り返す。すなわち、さらに重みおよびバイアスを更新する。一方、ステップＳ１２５において、訓練モデルの汎化が完了したと判定された場合、プロセッサー１０は、学習済モデルを記録する（ステップＳ１３０）。すなわち、プロセッサー１０は、訓練モデルを学習済モデル２０ｂとして記憶部２０に記録する。
【００４６】
以上の構成によれば、任意の読取データを学習済モデル２０ｂに入力してファイル名生成することが可能になる。従って、定型的なフォームの指定された場所の文字に基づいてファイル名を生成するなどのファイル名生成ルールを、人為的に決めなくてもよく、任意の種類の原稿の画像に基づいて、教師データ２０ｃが示すファイル名の傾向に適合したファイル名を出力することが可能になる。従って、広範囲の原稿をファイル名の生成対象とすることができる。さらに、利用者が好むファイル名を生成するような教師データ２０ｃを予め用意することにより、利用者の好みに適合したファイル名の生成を行うことが可能になる。
【００４７】
（３）ファイル名生成処理：
次に、プロセッサー１０が実行するファイル名生成処理を説明する。図５は、ファイル名生成処理を示すフローチャートである。学習済モデル２０ｂが生成された後であれば実行可能である。従って、スキャナー２でスキャンが行われるたびに実行されてもよいし、利用者の指示によって実行されてもよく、種々のタイミングで実行されてよい。
【００４８】
ファイル名生成処理が開始されると、プロセッサー１０は、制御部１０ｃの機能により、原稿を読み取る（ステップＳ２００）。すなわち、プロセッサー１０は、機器インターフェース３０を介してスキャナー２に対して制御信号を出力し、利用者がスキャナー２にセットした原稿をスキャンさせる。この結果、スキャナー２は読み取り結果として得られた読取データを出力し、プロセッサー１０は、機器インターフェース３０を介して当該読取データを取得する。
【００４９】
図６は、原稿の例を示す図である。図６に示す原稿Ｄはレシートである。この例においては、原稿Ｄの上部右側に日付情報Ｉｄが示され、上部中央に店舗Ａを示すロゴＩｌが示されている。さらに、ロゴＩｌの下方には「ご購入ありがとうございました」というメッセージＩｍが日付情報より大きい文字で示されている。さらに、メッセージＩｍの下方には、購入した商品ａ，商品ｂのそれぞれについての単価Ｉｐが示され、単価Ｉｐの下方に小計Ｉｓｔが示されている。さらに、小計Ｉｓｔの下方には税Ｉｔが示され、税Ｉｔの下方には金額の合計Ｉｇｔが示されている。さらに、最下部の左側には店舗Ａの住所Ｉａが示され、最下部の右側には店舗Ａの電話番号Ｉｎが示されている。むろん、原稿はレシートに限定されず、他の書類、例えば、契約書等であっても良い。
【００５０】
ステップＳ２００において、原稿の読み取りが行われると、プロセッサー１０は、図６のような内容の原稿を示す画像データとしての読取データを取得する。次に、プロセッサー１０は、制御部１０ｃの機能により、読取データを学習済モデルに入力する（ステップＳ２０５）。すなわち、プロセッサー１０は、学習済モデル２０ｂに入力可能なフォーマットになるように、読取データに対して前処理（例えば、拡大処理や縮小処理、規格化等）を実行する。
【００５１】
さらに、プロセッサー１０は、記憶部２０から学習済モデル２０ｂを取得し、前処理された読取データを学習済モデル２０ｂに対する入力データとし、学習済モデル２０ｂによる出力結果を取得する。この結果、ノード＃１〜＃ｎの各ノードについての出力値と、日付情報を示す各ノードについての出力値とが得られる。そこで、プロセッサー１０は、ノード＃１〜＃ｎの出力値に基づいて、各ノードが示す各位置の単語を特定する。
【００５２】
すなわち、プロセッサー１０は、ノード＃１〜＃ｎに出力値が００００であるノードが存在する場合、そのノードが示す位置に単語は存在しないと判定する。さらに、プロセッサー１０は、ノード＃１〜＃ｎに出力値がＦＦＦＦであるノードが存在する場合、そのノードが示す位置に日付情報を挿入する。日付情報は、日付情報を示す各ノードについての出力値である。さらに、ノード＃１〜＃ｎに００００およびＦＦＦＦではない出力値が得られたノードが存在する場合、プロセッサー１０は、単語データ２０ｆを参照し、出力値が示す単語を特定し、各ノードが示す位置に挿入する。
【００５３】
例えば、図６に示す原稿Ｄの読取データに対して、過去に利用者が「店舗Ａレシート２０１９０３０１」というファイル名を付与していた場合、学習済モデル２０ｂは、原稿Ｄの特徴とファイル名の特徴とを対応づける学習結果を再現するモデルである。例えば、原稿Ｄの右上に日付情報Ｉｄが存在する場合にはファイル名の最後に日付情報が付与され、ロゴＩｌが上部中央に存在する場合にはファイル名の最初に「店舗Ａ」が付与され、中央において上から下に単価Ｉｐ、小計Ｉｓｔ、税Ｉｔ、合計Ｉｇｔが並ぶ場合に、ファイル名における店舗と日付情報との間に「レシート」が付与されるといった傾向が学習済モデル２０ｂによって学習されている。
【００５４】
このため、ステップＳ２００において図６に示す原稿Ｄが読み取られたのであれば、学習済モデル２０ｂの出力としてノード＃１〜＃ｎ−３までの出力値が００００，ノード＃ｎ−２の出力値が００５０，ノードｎ−１の出力値が０１１５，ノード＃ｎの出力値がＦＦＦＦとなる可能性が高い。また、学習済モデル２０ｂの出力として、日付情報を示す各ノードについての出力値が２０１９０３０１となる可能性が高い。この場合、プロセッサー１０は、コードが００５０である単語「店舗Ａ」に続けてコードが０１１５である単語「レシート」を配置し、さらに、続けて日付情報「２０１９０３０１」を配置した文字列をファイル名として生成する。
【００５５】
生成されると、プロセッサー１０は、ファイル名を表示する（ステップＳ２１０）。すなわち、プロセッサー１０は、ディスプレイ４を制御してファイル名をディスプレイ４に表示させる。ファイル名の表示は、種々の態様で行われて良く、例えば、プロセッサー１０が、ディスプレイ４上に保存場所の候補と共にファイル名の候補を表示する構成等を採用可能である。
【００５６】
次に、プロセッサー１０は、制御部１０ｃの機能により、ファイルに対する指示を受け付ける（ステップＳ２１５）。すなわち、プロセッサー１０は、ディスプレイ４を制御し、ファイルに対する指示、すなわち、保存指示やファイル名の変更指示等を受け付けるためのユーザーインターフェースを表示させる。利用者は当該ユーザーインターフェースを視認しながらマウス３ａ，キーボード３ｂ等の入力部を操作して、ファイルの保存指示やファイル名の変更指示を行うことが可能である。
【００５７】
次に、プロセッサー１０は、制御部１０ｃの機能により、ファイルの保存指示が行われたか否かを判定し（ステップＳ２２０）、当該ステップＳ２２０においてファイルの保存指示が行われたと判定されるまでステップＳ２１５以降の処理を繰り返す。一方、ステップＳ２２０においてファイルの保存指示が行われたと判定された場合、プロセッサー１０は、制御部１０ｃの機能により、ファイル名が変更されたか否か判定する（ステップＳ２２５）。すなわち、ステップＳ２１５における処理において、ファイル名が変更された後に保存指示が行われた場合、プロセッサー１０は、ステップＳ２２５においてファイル名が変更されたと判定する。
【００５８】
ステップＳ２２５において、ファイル名が変更されたと判定されない場合、すなわち、学習済モデル２０ｂによって生成されたファイル名のままで読取データの保存指示が行われた場合、プロセッサー１０は、当該ファイル名の読取データを記憶部２０に保存する（ステップＳ２３０：図１に示す読取データ２０ａ）。次に、プロセッサー１０は、制御部１０ｃの機能により、読取データとファイル名とを対応づけて教師データ２０ｃに追加する（ステップＳ２３５）。すなわち、本実施形態においては、読取データにファイル名が付与されて保存されると、両者を対応づけるデータが教師データ２０ｃに追加される。
【００５９】
一方、ステップＳ２２５において、ファイル名が変更されたと判定された場合、プロセッサー１０は、制御部１０ｃの機能により、変更されたファイル名で読取データを記憶部２０に保存する（ステップＳ２４０：図１に示す読取データ２０ａ）。次に、プロセッサー１０は、制御部１０ｃの機能により、読取データと変更されたファイル名とを対応づけて水増しして教師データ２０ｃに追加する（ステップＳ２４５）。すなわち、本実施形態においては、変更されたファイル名が読取データに付与されて保存されると、両者を対応づけるデータがコピーされて２サンプル以上に増量され、増量後の各データが教師データ２０ｃに追加される。
【００６０】
以上のステップＳ２３５またはＳ２４５で教師データ２０ｃに追加が行われると、追加は再学習の際に反映される。すなわち、プロセッサー１０は、種々のタイミングで学習済モデル２０ｂを再学習することができる。再学習は、ステップＳ２３５で追加されたデータおよびステップＳ２４５で追加されたデータを含む教師データ２０ｃを用いて実行される。従って、本実施形態によれば、制御部が生成したファイル名が変更された場合、読取データに含まれている画像と、変更後のファイル名とを対応づけた教師データを用いて学習済モデル２０ｂを再学習させることになる。
【００６１】
なお、利用者がステップＳ２１５においてファイル名を変更した場合、利用者は学習済モデル２０ｂによって生成されたファイル名と異なるファイル名を選択し、確定させたことになる。この場合、利用者は、後に同種の原稿に同種の傾向でファイル名を付与する可能性があり、かつ、当該傾向のファイル名は学習済モデル２０ｂによって生成されない可能性が高い。そこで、このような傾向を早期に再学習できるようにするため、プロセッサー１０は、ステップＳ２４５においてデータを教師データ２０ｃに追加する際に水増しを行う。
【００６２】
水増しは、変更後のファイル名が学習結果に与える影響を、変更前のファイル名よりも大きくする処理であれば良い。本実施形態においてプロセッサー１０は、変更後のファイル名と読取データとを対応づけるデータを２個以上生成して教師データ２０ｃに追加する。この結果、ステップＳ２３５で追加された教師データ２０ｃよりも、再学習の際に学習結果に与える影響が大きくなる。むろん、水増しの量は種々の手法で特定されて良く、例えば、教師データ２０ｃのサンプル数が多くなるほど水増しの量が多くなる構成等が採用されてよい。以上の構成により、再学習が行われると、利用者によって変更されたファイル名または当該ファイル名と同じ傾向のファイル名は、変更されることなく確定されたファイル名よりも学習に与える影響が大きくなり、変更後のファイル名の傾向が早期に学習される。
【００６３】
なお、ステップ２４５においては、読取データと変更されたファイル名とを対応づけて水増しするが、本実施形態において学習済モデル２０ｂは、単語単位でファイル名を定義する。従って、教師データ２０ｃにおけるファイル名も単語単位で定義される。このため、ファイル名の変更が一部の単語に対して実施された場合、変更された単語（文字列）の学習結果に対する影響が、変更前の文字列よりも大きくなるように再学習される。
【００６４】
例えば、「店舗Ａレシート２０１９０３０１」というファイル名が「レシート店舗Ａ２０１９０３０１」と変更された場合、元のファイル名と変更後のファイル名とは最初の２個の単語が異なるが、最後の日付情報は変化していない。従って、変更後のファイル名と読取データとを対応づけたデータが生成され、水増しされると、最初の２個の単語を元のファイル名と異なる単語として出力する学習が促進されるが、最後の日付情報は維持する学習が促進される。
【００６５】
この結果、変更された単語（文字列）の学習結果に対する影響が変更前の文字列よりも大きくなるように再学習され、変更されていない単語は元の学習結果を維持するように再学習される。従って、変更された単語（文字列）を反映したファイル名の生成を実行できるように再学習を行うことが可能である。
【００６６】
（４）他の実施形態：
以上の実施形態は本発明を実施するための一例であり、他にも種々の実施形態を採用可能である。例えば、本発明の一実施形態にかかる機械学習装置、情報処理装置は、読み取り以外の目的にも使用される電子機器、例えば複合機等に適用されていても良い。さらに、以上の実施形態のように読取データに基づいて、ファイル名を生成する手法は、プログラムの発明、方法の発明としても実現可能である。
【００６７】
さらに、情報処理装置を構成する装置の数は任意の数であって良い。例えば、情報処理装置１とスキャナー２とが一体化された装置によって実現されても良いし、他の各種デバイス、例えば、ディスプレイ４が一体化されていても良い。また、情報処理装置１とディスプレイ４とが一体化されたタブレット端末によってスキャナー２が制御されてもよい。
【００６８】
さらに、情報処理装置１の機能が複数の装置によって実現される構成が採用されてもよい。例えば、サーバーとクライアントとが接続可能に構成され、サーバーとクライアントの一方で機械学習処理が実行され、他方でファイル名生成処理が実行されるように構成されていても良い。機械学習処理と、ファイル名生成処理とが離れた位置に存在する装置で実行される場合、学習済モデルは各装置で共有されても良いし、一方の装置に存在しても良い。
【００６９】
学習済モデルが機械学習処理を行う装置に存在し、ファイル名生成処理を行う装置に存在しない場合、ファイル名生成処理を行う装置は機械学習処理を行う装置にファイル名の問合せを行う構成となる。むろん、機械学習装置が複数の装置に分散して存在する構成や、情報処理装置が複数の装置に分散して存在する構成等であっても良い。さらに、上述の実施形態は一例であり、一部の構成が省略されたり、他の構成が追加されたりする実施形態が採用され得る。さらに、学習済モデルは、特定のスキャナー２の利用者用に生成されても良いし、複数のスキャナー２を利用する複数の利用者から収集された読取データおよびファイル名に基づいて複数の利用者が利用するモデルとして生成されても良い。
【００７０】
記憶部は、スキャナーで読み取られた原稿の読取データに含まれている画像、文字列、読取データのレイアウト、のうちの少なくとも１つと、読取データのファイル名とを対応付けた教師データを用いて機械学習した学習済モデルを記憶することができればよい。すなわち、記憶部は、読取データが示す原稿の特徴を入力し、ファイル名を出力する学習済モデルを記憶していれば良い。
【００７１】
原稿は、スキャナーで読み取られる対象であれば良く、形状、大きさ、原稿に記された内容は限定されない。従って、原稿は、上述の実施形態のようなレシートに限定されない。例えば、契約書や各種のビジネス文書や私用文書を示す原稿であっても良いし、住所録などの各種のデータベースの内容を示す原稿であっても良いし、写真等の画像を示す原稿であっても良く、スキャン可能なあらゆる原稿が読み取り対象となり得る。
【００７２】
読取データは、原稿を読み取った結果を示すデータであれば良く、読取データは原稿の画像を示しているが、当該画像と、当該読取データから抽出された情報との、いずれもが教師データとなり得る。すなわち、読取データが示す画像から各種の情報が抽出されて、教師データとなっても良い。例えば、読取データに基づいてＯＣＲ（文字認識処理：Optical Character Recognition）が実行されて文字列が抽出されても良いし、読取データに対する画像処理等に基づいて原稿に含まれる文字列や画像が特定され、その大きさおよび位置等を示すレイアウトが抽出されても良い。
【００７３】
教師データは、読取データとそのファイル名とを対応づけたデータであれば良く、ファイル名は読取データがファイルとして保存された場合に実際に対応づけられたファイル名であることが好ましい。
【００７４】
学習済モデルは、教師データが示す読取データとファイル名との関係を再現するようにして、任意の読取データに対応するファイル名を出力するモデルであれば良い。従って、読取データに基づいてファイル名を出力可能であれば、モデルの構造は任意である。すなわち、このような入出力関係を再現するようなモデルを学習することができれば、機械学習の態様やモデルの態様は任意である。
【００７５】
例えば、ニューラルネットワークによる機械学習が行われる場合、モデルを構成する層の数やノードの数、活性化関数の種類、損失関数の種類、勾配降下法の種類、勾配降下法の最適化アルゴリズムの種類、ミニバッチ学習の有無やバッチの数、学習率、初期値、過学習抑制手法の種類や有無、畳み込み層の有無、畳み込み演算におけるフィルターのサイズ、フィルターの種類、パディングやストライドの種類、プーリング層の種類や有無、全結合層の有無、再帰的な構造の有無など、種々の要素を適宜選択して機械学習が行われればよい。むろん、他の機械学習、例えば、サポートベクターマシンやクラスタリング、強化学習等によって学習が行われてもよい。
【００７６】
さらに、モデルの構造（例えば、層の数や層毎のノードの数等）が自動的に最適化される機械学習が行われてもよい。さらに、学習は複数段階に分割されて実行されてもよい。例えば、読取データから画像の内容（ロゴマークの種類等）を出力する機械学習と、画像の内容からファイル名を出力する機械学習とを実行する構成が採用されてもよい。さらに、サーバーにおいて機械学習が行われる構成において、複数のクライアントから教師データが収集され、この教師データに基づいて機械学習が行われる構成であっても良い。
【００７７】
制御部は、読取データに含まれている画像、文字列、読取データのレイアウト、のうちの少なくとも１つと、学習済モデルとを用いて、読取データのファイル名を生成することができればよい。すなわち、制御部は、学習済モデルに基づいて、読取データに対応するファイル名を出力することができればよい。むろん、制御部は、生成したファイル名を読取データに対応づけて記憶部に記憶させても良いし、利用者によるファイル名の変更操作を受け付け、変更されたファイル名を読取データに対応づけて記憶部に記憶させても良い。
【００７８】
学習部による再学習は、ファイル名が変更された場合に限定されず、新たなファイル名の生成が行われた場合に、新たなファイル名と読取データとを対応づけた教師データを元の教師データに追加して実施されてもよい。また、制御部が生成したファイル名が変更された場合に実行される再学習は、種々の態様で行われてよい。例えば、上述の実施形態においては、変更後のファイル名と読取データとを対応づけた教師データを水増しすることによって、変更後のファイル名の学習結果に対する影響を、変更前のファイル名よりも大きくしているが、このような構成に限定されない。例えば、変更前のファイル名と読取データとを対応づけた教師データを削除しても良い。
【００７９】
ファイル名が、読取データに含まれる日付情報を有する構成において、ファイル名を出力するための態様としても、種々の態様を採用可能である。例えば、年、月、日のそれぞれが予め単語データ２０ｆに登録され、これらの存在を示すコードを出力するノードを有するモデルによって機械学習を行い、年、月、日のそれぞれを含み得るファイル名が生成されても良い。
【００８０】
教師データが示すファイル名は、読取データに対するＯＣＲ処理によって読み取られた文字列によって生成されたファイル名であっても良い。すなわち、原稿に含まれる文字列によってファイル名が構成されても良い。むろん、利用者によって入力された文字列と、ＯＣＲ処理によって読み取られた文字列との双方がファイル名に含まれていても良い。
【００８１】
制御部は、発行元を示す画像を基に原稿の発行元を特定し、発行元の名称を含むファイル名を生成する構成であっても良い。むろん、原稿の発行元の特定と、発行元の名称を含むファイル名の生成は、別個の学習済モデルで実行されてもよいし、単一の学習済モデルで実行されてもよく、種々の態様を採用可能である。前者であれば、画像から画像が示す発行元を特定するための学習済モデルのライブラリを流用することが可能である。発行元を示す画像は、ロゴマーク以外にも種々の画像が想定可能である。例えば、会社名等の発行元の名称を示す画像や、発行元に特有のアイコン、色の組み合わせ、図形等が発行元を示す画像になり得る。
【００８２】
なお、上述の図３に示すＣＮＮは、発行元を示す画像を基に原稿の発行元を特定し、発行元の名称を含むファイル名を生成する構成であると考えることもできる。例えば、読取データが図６に示す原稿ＤのようにロゴＩｌを含む場合、当該ロゴＩｌはレシートの発行元の会社を示している。図３に示すＣＮＮでは、当該ロゴＩｌを含めた状態でファイル名を生成することができる。そして、ファイル名にロゴＩｌによって示された発行元の会社の名称やその店舗の名称が含まれていれば、ＣＮＮによって、原稿の発行元が特定され、発行元の名称を含むファイル名が生成される構成であると言える。
【００８３】
画像、文字列、レイアウトは、少なくとも１つが教師データになれば良いが、むろん、これらの２以上が教師データになっても良いし、他の情報、例えば、画像内の色や手書き文字の有無、その内容等が教師データになっても良く、種々の態様を想定可能である。画像に加えて文字列やレイアウトが考慮される場合、図１に示す構成において教師データ２０ｃ、学習済モデル２０ｂが変化し得る。
【００８４】
図７は、画像、文字列、レイアウトに基づいてファイル名を生成するモデルを示す図である。同図に示すモデルにおいて、ファイル名の出力態様は図３に示すモデルと同様であるが、むろん、この出力態様に限定されない。図７に示すモデルにおいて、読取データを画像として捉えた場合の入力態様は図３と同様である（入力を画像データと表記）。この例において文字列はＯＣＲ処理によって得られ、ＯＣＲデータと表記されている。また、この例においてレイアウトは画像処理によって得られ、レイアウトデータと表記されている。
【００８５】
ＯＣＲデータは、読取データに含まれる文字列を示していれば良く、例えば、文字の並び順に文字のコードを示すデータ等によって構成可能であり、この場合において、入力層Ｌｉ２の各ノードに文字のコードを入力する構成や、単語や形態素のコードを入力する構成等を採用可能である。ＯＣＲデータを入力にすれば、例えば、図６に示す原稿Ｄのように、日付情報Ｉｄ、単価Ｉｐ、小計Ｉｓｔ、税Ｉｔなどが順番に表記されているなどのような文字列の特徴をファイル名に関連づけることができる。ＯＣＲデータが入力層Ｌｉ２に入力されると、ニューラルネットワークを経て層Ｌｎ２において中間出力データが出力される。図７に示す例において層Ｌｎ２のノードは出力層Ｌｏに接続されているが、むろん、任意の数の層を経て出力層Ｌｏに至っても良い。
【００８６】
レイアウトデータは、読取データに含まれる文字列や画像等のレイアウトを示していれば良く、例えば、原稿の領域毎に、存在するオブジェクトの種類（文字、写真、図形等）と位置、大きさを示す情報を、入力層Ｌｉ３の各ノードに入力する構成等を採用可能である。レイアウトデータを入力にすれば、例えば、図６に示す原稿Ｄのように、日付情報Ｉｄが上部右側に配置され、ロゴＩｌが上部中央に配置され、その下にメッセージＩｍが日付情報Ｉｄより小さい文字列で配置されるなどのようなレイアウトの特徴をファイル名に関連づけることができる。
【００８７】
レイアウトデータが入力層Ｌｉ３に入力されると、ニューラルネットワークを経て層Ｌｎ３において中間出力データが出力される。図７に示す例において層Ｌｎ３のノードは出力層Ｌｏに接続されているが、むろん、任意の数の層を経て出力層Ｌｏに至っても良い。また、モデルは、ＯＣＲデータ、レイアウトデータのいずれか一方が入力されるモデルであっても良いし、読取データに関する他の情報が入力されても良い。
【００８８】
いずれにしても、このようなモデルに基づいてプロセッサー１０が機械学習を行えば、読取データに含まれる画像、文字列、レイアウトに基づいてファイル名を出力する学習済モデル２０ｂを学習することができる。学習済モデル２０ｂが得られたら、プロセッサー１０は、読取データに基づいてＯＣＲデータおよびレイアウトデータを生成し、画像データとしての読取データとＯＣＲデータとレイアウトデータを学習済モデル２０ｂに入力する。この結果、読取データのファイル名を生成することができる。
【００８９】
さらに本発明は、コンピューターが実行するプログラムや、方法としても適用可能である。また、以上のようなプログラム、方法は、単独の装置として実現される場合もあれば、複数の装置が備える部品を利用して実現される場合もあり、各種の態様を含むものである。また、一部がソフトウェアであり一部がハードウェアであったりするなど、適宜、変更可能である。さらに、プログラムの記録媒体としても発明は成立する。むろん、そのプログラムの記録媒体は、磁気記録媒体であってもよいし半導体メモリ等であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。
【符号の説明】
【００９０】
１…情報処理装置、２…スキャナー、３ａ…マウス、３ｂ…キーボード、４…ディスプレイ、１０…プロセッサー、１０ａ…教師データ取得部、１０ｂ…学習部、１０ｃ…制御部、２０…記憶部、２０ａ…読取データ、２０ｂ…学習済モデル、２０ｃ…教師データ、２０ｄ…テストデータ、２０ｅ…訓練モデル、２０ｆ…単語データ、３０…機器インターフェース、４０…ディスプレイインターフェース
【図１】
2020149409.tif 000003
【図２】
2020149409.tif 000004
【図３】
2020149409.tif 000005
【図４】
2020149409.tif 000006
【図５】
2020149409.tif 000007
【図６】
2020149409.tif 000008
【図７】
2020149409.tif 000009