(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-12
(45)【発行日】2024-03-21
(54)【発明の名称】半構造化ドキュメントから情報を取り出す方法及びシステム
(51)【国際特許分類】
G06N 5/04 20230101AFI20240313BHJP
G06F 40/279 20200101ALI20240313BHJP
G06Q 10/10 20230101ALI20240313BHJP
G06V 30/41 20220101ALI20240313BHJP
G06V 30/262 20220101ALI20240313BHJP
【FI】
G06N5/04
G06F40/279
G06Q10/10
G06V30/41
G06V30/262
(21)【出願番号】P 2022062744
(22)【出願日】2022-04-05
【審査請求日】2022-04-05
(31)【優先権主張番号】10-2021-0049464
(32)【優先日】2021-04-15
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2021-0070404
(32)【優先日】2021-05-31
(33)【優先権主張国・地域又は機関】KR
【新規性喪失の例外の表示】特許法第30条第2項適用 2021年4月16日、ウェブサイト(https://arxiv.org/abs/2104.08041)で公開
(73)【特許権者】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(73)【特許権者】
【識別番号】523303688
【氏名又は名称】LINE WORKS株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ファン ウォンソク
(72)【発明者】
【氏名】イム ジンヨン
(72)【発明者】
【氏名】キム ジウク
(72)【発明者】
【氏名】ソ ミンジュン
(72)【発明者】
【氏名】イ ヒョンジ
【審査官】北川 純次
(56)【参考文献】
【文献】米国特許第10229314(US,B1)
【文献】特開2019-168857(JP,A)
【文献】特開2004-164218(JP,A)
【文献】特開2016-126356(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/04
G06F 40/279
G06Q 10/10
G06V 30/41
G06V 30/262
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムが半構造化ドキュメントから情報を取り出す方法であって、
前記コンピュータシステムにおけるプロセッサが、対象ドキュメントに対する光学的文字認識(OCR:Optical character recognition)を行って、複数の言葉及び前記複数の言葉のそれぞれに関する位置情報を取り出すステップと、
前記プロセッサが、前記複数の言葉のそれぞれに対応する複数のトークンを生成するステップと、
前記プロセッサが、前記対象ドキュメントに含まれている前記複数の言葉の間のデータ構造が反映されるように、前記複数のトークンを並べるステップと、
を含み、
前記複数のトークンは、範疇の属性を有する第1のタイプのトークン及び前記範疇の値に相当するデータ属性を有する第2のタイプのトークンのうちのどちらか一方のタイプを有し、
前記複数の言葉は、前記範疇の属性を有する第1のタイプに対応する第1のタイプの言葉及び前記データ属性を有する第2のタイプの言葉のうちの少なくとも一方のタイプを有し、
前記複数のトークンを並べるステップにおいては、
前記複数の言葉の意味及び前記複数の言葉のそれぞれに関する位置情報を用いて、前記複数のトークンを並べ、
前記第2のタイプに仕分けされた特定の第2のタイプの言葉が属する第1の範疇に対応する第1のタイプのトークンと、前記特定の第2のタイプの言葉に対応する第2のタイプのトークンとを順番に並べ
、
前記特定の第2のタイプの言葉が複数である場合には、
複数の前記特定の第2のタイプの言葉のそれぞれに対応する複数の第2のタイプのトークンを順番に並べ、
順番に並べられた前記複数の第2のタイプのトークンの並べ順は、複数の前記特定の第2のタイプの言葉のそれぞれの意味及び前記対象ドキュメント上の位置情報に基づいて決められる、
ことを特徴とする、方法。
【請求項2】
前記複数の言葉のそれぞれに対応する複数のトークンを生成するステップは、
前記複数の言葉のそれぞれの意味に基づいて、前記範疇の属性を有する第1のタイプのトークン及び前記データ属性を有する第2のタイプのトークンのうちの少なくとも一方を生成するステップ、を含む、
ことを特徴とする、請求項1に記載の方法。
【請求項3】
前記方法は、さらに、
前記プロセッサが、前記複数の言葉のそれぞれの意味及び前記対象ドキュメントにおける複数の言葉のそれぞれに関する位置情報に基づいて、前記複数の言葉を前記第1のタイプの言葉及び前記第2のタイプの言葉のうちの少なくとも一方に仕分けするステップ、を含む、
ことを特徴とする、請求項2に記載の方法。
【請求項4】
前記複数の言葉のそれぞれに対応する複数のトークンを生成するステップにおいては、
前記複数の言葉のうち、前記第1のタイプに仕分けされた前記第1のタイプの言葉にそれぞれ対応するように、少なくとも一つの第1のタイプのトークンを生成し、
前記第2のタイプに仕分けされた前記第2のタイプの言葉にそれぞれ対応するように、少なくとも一つの第2のタイプのトークンを生成する、
ことを特徴とする、請求項3に記載の方法。
【請求項5】
前記複数の言葉のそれぞれに対応する複数のトークンを生成するステップにおいては、
前記第2のタイプに仕分けされた第2のタイプの言葉が属する範疇のそれぞれに対する第1のタイプのトークンを生成する、
ことを特徴とする、請求項4に記載の方法。
【請求項6】
前記複数の言葉のそれぞれに対応する複数のトークンを生成するステップは、
前記複数の言葉に特定の範疇の範疇値に相当する特定の第2のタイプの言葉が存在し、前記特定の範疇に相当する言葉が存在しない場合に、
前記特定の範疇の範疇値に相当する前記特定の第2のタイプの言葉に基づいて、前記特定の範疇に対応する特定の第1のタイプのトークンを生成するステップ、
をさらに含む、
ことを特徴とする、請求項5に記載の方法。
【請求項7】
前記複数のトークンを並べるステップにおいては、
前記第1の範疇に対応する第1のタイプのトークンと、前記第1の範疇とは異なる第2の範疇に対応する第1のタイプのトークンとを順番に並べ、
前記第1の範疇に対応する第1のタイプのトークンと、前記第2の範疇に対応する第2のタイプのトークンとの間には、前記第1の範疇及び前記第2の範疇のそれぞれに対応するトークンを区別するための第3のタイプのトークンが並べられる、
ことを特徴とする、請求項
1に記載の方法。
【請求項8】
前記複数のトークンを並べるステップにおいては、
前記第1の範疇に対応する第1のタイプのトークン及び前記特定の第2のタイプの言葉に対応する第2のタイプのトークンのうち、前記第1の範疇に対応する第1のタイプのトークンを最初に並べ、
前記第1の範疇に対応する第1のタイプのトークンに続けて、前記特定の第2のタイプの言葉に対応する第2のタイプのトークンを順番に並べ、
前記特定の第2のタイプの言葉に対応する第2のタイプのトークンのうち、最後に並べられた特定の第2のタイプのトークンに続けて、前記第3のタイプのトークンを並べる、
ことを特徴とする、請求項
7に記載の方法。
【請求項9】
前記方法は、さらに、
前記プロセッサが、前記複数のトークンを用いて、前記対象ドキュメントと対応する構造を有するデータを生成するステップ、を含み、
前記データを生成するステップにおいては、
前記複数のトークンのうち、前記第3のタイプのトークンが検出された場合に、
前記第3のタイプのトークンが検出される直前に検出された特定のトークンと、前記第3のタイプのトークンに続く特定のトークンとを互いに異なる範疇にそれぞれ対応するトークンとして捉える、
ことを特徴とする、請求項
8に記載の方法。
【請求項10】
前記複数の言葉のそれぞれに対応する複数のトークンを生成するステップにおいては、
前記第1の範疇の上位概念に対応する範疇が存在する場合に、
前記上位概念に対応する範疇を第3の範疇と特定し、前記特定された第3の範疇に対応する前記第1のタイプのトークンを生成する、
ことを特徴とする、請求項
9に記載の方法。
【請求項11】
前記第3の範疇に対応する第1のタイプのトークン、前記第1の範疇に対応する第1のタイプのトークン、及び前記第1の範疇に対応する第2のタイプのトークンは、順番に並べられる、
ことを特徴とする、請求項
10に記載の方法。
【請求項12】
半構造化ドキュメントから情報を取り出すシステムであって、
対象ドキュメントに対する光学的文字認識(OCR:Optical character recognition)を行って、複数の言葉及び前記複数の言葉のそれぞれに関する位置情報を取り出すOCR部と、
前記複数の言葉のそれぞれに対応する複数のトークンを生成し、前記対象ドキュメントに含まれている前記複数の言葉の間のデータ構造が反映されるように、前記複数のトークンを並べる制御部と、
を備え、
前記複数のトークンは、範疇の属性を有する第1のタイプのトークン及び前記範疇の値に相当するデータ属性を有する第2のタイプのトークンのうちのどちらか一方のタイプを有し、
前記複数の言葉は、前記範疇の属性を有する第1のタイプに対応する第1のタイプの言葉及び前記データ属性を有する第2のタイプの言葉のうちの少なくとも一方のタイプを有し、
前記制御部は、
前記複数の言葉の意味及び前記複数の言葉のそれぞれに関する位置情報を用いて、前記複数のトークンを並べ、
前記第2のタイプに仕分けされた特定の第2のタイプの言葉が属する第1の範疇に対応する第1のタイプのトークンと、前記特定の第2のタイプの言葉に対応する第2のタイプのトークンとを順番に並べ
、
前記特定の第2のタイプの言葉が複数である場合には、
複数の前記特定の第2のタイプの言葉のそれぞれに対応する複数の第2のタイプのトークンを順番に並べ、
順番に並べられた前記複数の第2のタイプのトークンの並べ順は、複数の前記特定の第2のタイプの言葉のそれぞれの意味及び前記対象ドキュメント上の位置情報に基づいて決められる、
ことを特徴とする、システム。
【請求項13】
コンピューターにて起動する、複数の指令を含むコンピュータープログラムであって、
前記指令が前記コンピューターによって実行されると、
対象ドキュメントに対する光学的文字認識(OCR:Optical character recognition)を行って、複数の言葉及び前記複数の言葉のそれぞれに関する位置情報を取り出すステップと、
前記複数の言葉のそれぞれに対応する複数のトークンを生成するステップと、
前記対象ドキュメントに含まれている前記複数の言葉の間のデータ構造が反映されるように、前記複数のトークンを並べるステップと、
を実施し、
前記複数のトークンは、範疇の属性を有する第1のタイプのトークン及び前記範疇の値に相当するデータ属性を有する第2のタイプのトークンのうちのどちらか一方のタイプを有し、
前記複数の言葉は、前記範疇の属性を有する第1のタイプに対応する第1のタイプの言葉及び前記データ属性を有する第2のタイプの言葉のうちの少なくとも一方のタイプを有し、
前記複数のトークンを並べるステップにおいては、
前記複数の言葉の意味及び前記複数の言葉のそれぞれに関する位置情報を用いて、前記複数のトークンを並べ、
前記第2のタイプに仕分けされた特定の第2のタイプの言葉が属する第1の範疇に対応する第1のタイプのトークンと、前記特定の第2のタイプの言葉に対応する第2のタイプのトークンとを順番に並べ
、
前記特定の第2のタイプの言葉が複数である場合には、
複数の前記特定の第2のタイプの言葉のそれぞれに対応する複数の第2のタイプのトークンを順番に並べ、
順番に並べられた前記複数の第2のタイプのトークンの並べ順は、複数の前記特定の第2のタイプの言葉のそれぞれの意味及び前記対象ドキュメント上の位置情報に基づいて決められる、
ことを特徴とする、コンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ドキュメントから情報を取り出す方法及びシステムに関する。
【背景技術】
【0002】
人工知能の辞書的な意味は、人間の学習能力、推論能力、知覚能力、および自然言語の理解能力などをコンピュータープログラムにより実現した技術であると言える。このような人工知能は、マシンラーニングに人間の脳を模倣したニューラルネットワークを加えたディープラニングにより、飛躍的な発展を成し遂げた。
【0003】
ディープラニング(deep learning)とは、コンピューターがまるで人間のように判断し、かつ、学習できるようにし、これを通して、物事やデータを群集化させたり、または、仕分けしたりする技術のことである。近頃は、テキストデータだけではなく、画像データに対する解析まで可能になって、非常に多岐にわたる産業分野に積極的に活用されている。
【0004】
このような人工知能の発達に伴い、事務自動化(office automation)分野においても様々な自動化が進んでいる。特に、事務自動化分野においては、紙(paper)に印刷されたコンテンツを、人工知能を活用した画像データ解析技術に基づいて、データ化させることに多大な努力を注いでいる。その一環として、事務自動化分野においては、紙ドキュメントを画像化させて、画像に含まれているコンテンツを解析する画像解析技術(または、画像データに対する解析技術)を通して、ドキュメントに含まれているコンテンツをデータ化させており、この場合には、ドキュメントに含まれているコンテンツのタイプに合うように画像を解析する技術が必要とされる。
【0005】
例えば、領収証(receipt)をはじめとするドキュメントをデータ化させる場合に、領収証の形式、領収証内に含まれているテキストの内容及び領収証に含まれているテキストの位置などのように、領収証を巡る様々な要素に対する正確な解析が必要である。
【0006】
このため、画像に含まれている情報を電子装備において処理できる形態のデータに加工するための様々な技術が開発されている。例えば、大韓民国登録特許第10-1181209号公報においては、OCRデータベースを構築する方法が開示されている。
【0007】
しかしながら、これまで開発されてきた方法は、人間が経験的に定めたルールに従ってデータを仕分けするレベルにとどまっているので、対象ドキュメントに含まれているデータの構造及びテキストデータの間の関係性まで正確に再現できるアプリケーションの開発への取り組みを行い続ける必要がある。
【先行技術文献】
【特許文献】
【0008】
【文献】大韓民国登録特許第10-1181209号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明は、対象ドキュメントに含まれている複数の言葉の間のデータ構造を反映して、対象ドキュメントから情報を取り出す方法及びシステムに関する。
【0010】
また、本発明は、対象ドキュメントからデータを取り出すマシンラーニングモデルに対して訓練を行い易い形態のデータとして、対象ドキュメントからデータを取り出す方法及びシステムを提供する。
【0011】
具体的に、本発明は、対象ドキュメントからデータを取り出すマシンラーニングモデルの正確度を判断するのに活用される学習データ及びマシンラーニングモデルから出力されるデータの形式を人間が加工しやすい形態で実現することにより、マシンラーニングモデルの正確度を判断するのにかかる時間及びコストを削減できるようにする、データ取出方法及びシステムを提供する。
【0012】
さらに、本発明は、対象ドキュメントに含まれているデータの間の関係性を与えられる、データ取出方法及びシステムを提供するためのものである。
【課題を解決するための手段】
【0013】
上述した課題を解決するために、本発明は、対象ドキュメントに対する光学的文字認識(OCR:Optical character recognition)を行って、複数の言葉及び前記複数の言葉のそれぞれに関する位置情報を取り出すステップと、前記複数の言葉のそれぞれに対応する複数のトークンを生成するステップと、前記対象ドキュメントに含まれている前記複数の言葉の間のデータ構造が反映されるように、前記複数のトークンを並べるステップと、を含み、前記複数のトークンを並べるステップにおいては、前記複数の言葉の意味及び前記複数の言葉のそれぞれに関する位置情報を用いて、前記複数のトークンを並べることを特徴とする半構造化ドキュメントから情報を取り出す方法を提供することができる。
【0014】
また、本発明は、対象ドキュメントに対する光学的文字認識(OCR:Optical character recognition)を行って、複数の言葉及び前記複数の言葉のそれぞれに関する位置情報を取り出すOCR部と、前記複数の言葉のそれぞれに対応する複数のトークンを生成し、前記対象ドキュメントに含まれている前記複数の言葉の間のデータ構造が反映されるように、前記複数のトークンを並べる制御部と、を備え、前記制御部は、前記複数の言葉の意味及び前記複数の言葉のそれぞれに関する位置情報を用いて、前記複数のトークンを並べる、ことを特徴とする、半構造化ドキュメントから情報を取り出すシステムを提供することができる。
【0015】
さらに、本発明は、複数の指令を含むコンピュータープログラムであって、指令が実行されると、対象ドキュメントに対する光学的文字認識(OCR:Optical character recognition)を行って、複数の言葉及び前記複数の言葉のそれぞれに関する位置情報を取り出すステップと、前記複数の言葉のそれぞれに対応する複数のトークンを生成するステップと、前記対象ドキュメントに含まれている前記複数の言葉の間のデータ構造が反映されるように、前記複数のトークンを並べるステップと、を実施し、前記複数のトークンを並べるステップにおいては、前記複数の言葉の意味及び前記複数の言葉のそれぞれに関する位置情報を用いて、前記複数のトークンを並べる、ことを特徴とする、コンピューターにて起動するコンピュータープログラムを提供することができる。
【発明の効果】
【0016】
上述のように、本発明は、対象ドキュメントから取り出された前記複数の言葉の意味及び前記複数の言葉のそれぞれに関する位置情報を用いて、かつ、生成されたトークン及び生成されたトークンの並べを用いて、対象ドキュメントに含まれている複数の言葉の間のデータ構造が反映されたデータを生成することができる。
【0017】
また、本発明に係る情報取出モデルのマシンラーニングは、情報取出モデルから出力された複数のトークンの正確度を算出することにより行われる。前記出力されたトークンは、言葉の間の関連性が完全に反映されたデータではないので、前記情報取出モデルの正確度を算出するための学習データを生成しやすくなる。
【0018】
具体的に、学習データの生成に際して既に定められたルール(トークン生成ルール)に従って一定の順番に並べられたトークンを生成した後で、情報取出モデルから出力されたトークンと比較する作業を行うことで、情報取出モデルの正確度を判断し、前記情報取出モデルの正確度を高めるように、情報取出モデルに関する訓練を行うことが可能になる。これにより、情報取出モデルのマシンラーニングのための学習データを生成するのにかかる時間が大幅に短縮される。
【図面の簡単な説明】
【0019】
【
図1】本発明に係る情報取出システムを説明するための概念図である。
【
図2】本発明に係る情報取出方法を説明するためのフローチャートである。
【
図3】本発明に係る情報取出モデルを説明するための概念図である。
【
図4】本発明に係る情報取出モデルから出力されたデータを木(tree)化させた様子を示す概念図である。
【
図5】本発明に係る情報取出モデルのマシンラーニング方法を示す概念図である。
【
図6】本発明に係る情報取出モデルから出力されたデータの正確度を算出する様子を示す概念図である。
【
図7】従来の情報取出のためのマシンラーニング方法を示す概念図である。
【発明を実施するための形態】
【0020】
以下、添付図面に基づいて、この明細書に開示されている実施形態について詳しく説明するが、図面符号とは無関係に、同一または類似の構成要素には、同じ参照符号を付し、これについての重複する説明は省略する。以下の説明において用いられる構成要素に対する接尾詞「モジュール」及び「部」は、明細書の作成しやすさのみが考慮されて付されたり混用されたりするものであって、これ自体で互いに区別される意味または役割を有するものではない。また、この明細書に開示されている実施形態を説明するに当たって、関連する公知の技術についての具体的な説明が本明細書に開示されている実施形態の要旨を曖昧にする虞があると認められる場合には、その詳細な説明を省略する。なお、添付図面は、単に本明細書に開示されている実施形態を理解しやすくするためのものに過ぎず、添付図面によって本明細書に開示されている技術的思想が制限されるわけではなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物、ないし代替物を含むものと理解されるべきである。
【0021】
「第1の」、「第2の」などの序数を含む言い回しは、様々な構成要素を説明するうえで使用可能であるが、前記構成要素は、前記言い回しによって何等限定されない。上記の言い回しは、ある構成要素を他の構成要素から区別する目的でしか使えない。
【0022】
ある構成要素が他の構成要素と「連結」されているとか、または、「接続」されていると言及された場合には、前記ある構成要素が、前記他の構成要素に直接的に連結されたり接続されたりすると理解されるか、または、これらの間に他の構成要素が存在してもよいものと理解されるべきである。これに対し、ある構成要素が他の構成要素と「直接的に連結」されているとか、または、「直接的に接続されている」と言及された場合には、これらの間に他の構成要素が存在しないものと理解されるべきである。
【0023】
単数の表現は、文脈からみて明らかに他の意味を有さない限り、複数の言い回しを含む。
【0024】
この出願において、「備える」、「含む」、または「有する」などの用語は、明細書に記載の特徴、数字、段階、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定するものに過ぎず、一つまたはそれ以上の他の特徴や数字、段階、動作、構成要素、部品、または、これらを組み合わせたものの存在もしくは付加の可能性を予め排除しないものと理解すべきである。
【0025】
以上述べたように、人工知能の発達に伴い、様々な形態で事務自動化(office automation)が進んでおり、仕事の効率性のために、紙ドキュメントに含まれている一定の形態の情報を、紙ドキュメントに含まれている形式そのままでデジタル化(データ化)させなければならないということへのニーズがますます高まりつつある。
【0026】
例えば、
図1に示す領収証(レシート;receipt)などのドキュメント10は、店名・売り場名、売り場の住所、注文商品名、注文商品の数量、注文金額など、販売者及び消費者と関わる複数の範疇(Category)を含んでおり、データの効率よい処理のために、紙ドキュメントに含まれているデータを、同じ範疇同士で関連付けてデジタル化させる必要がある。
【0027】
この明細書において、「範疇」とは、定義された分類内において任意のレベルにある項目を意味する。特定の範疇に属するデータと別の範疇に属するデータとを区別する基準は、必ずしも絶対的なものであるとは限らず、範疇を取り決める任意のルールに応じて異なってくる場合がある。このようなルールは、紙ドキュメントと紙ドキュメントをデジタル化させたデータとに対して異ならせて適用可能である。
【0028】
例えば、紙ドキュメントからなる特定の領収証は、「店名・売り場名」、「売り場の住所」、「注文商品名」、「注文商品の数量」、「注文商品の金額」という五つの範疇を含んでいてもよいが、前記紙ドキュメントに含まれているデータをデジタル化させるとき、「売り場」、「注文商品」という二つの範疇に縮めてもよい。
【0029】
一方、この明細書においては、特定の範疇の属性を示す言葉を第1のタイプの言葉に仕分けする。例えば、第1のタイプの言葉は、範疇に属しているデータの上位概念を定義する言葉(「店名・売り場名:」、「数量:」、「売り場の住所」)などを含んでいてもよい。
【0030】
一方、この明細書においては、特定の範疇の値を示す言葉を第2のタイプの言葉に仕分けする。例えば、第2のタイプの言葉は、範疇に属しているデータ(「Happy store」、「105 h-street」、「Carrot」)であってもよい。この明細書においては、前記第1のタイプに仕分けされた第1のタイプの言葉は「フィールド名」、第2のタイプに仕分けされた第2のタイプの言葉は「フィールド値」と称されてもよい。
【0031】
一方、マシンにおいて処理可能な形式のデータの観点から、前記第1のタイプの言葉は「属性(key)」と称されてもよく、前記第2のタイプの言葉は「値(value)」と称されてもよい。
【0032】
上述した用語や言い回しの定義によれば、領収証などの紙ドキュメントは、同一の範疇に含まれている「属性-値」の組のデータを含んでいてもよい。ただし、これに何ら限定されず、紙領収証などの紙ドキュメントは、特定の範疇に関してはフィールド名なしにフィールド値のみを含んでいてもよい。この場合に、紙ドキュメントから前記フィールド名は省略されただけであり、省略されたフィールド名に対応するフィールド値は、フィールド名に関わる意味を含んでいる。
【0033】
一方、紙ドキュメントは、フィールド値なしにフィールド名のみを含んでいてもよい。この場合は、特定の項目に割り当てられた値が存在しないことであり、たとえ、特定の項目に割り当てられた値が存在しないとしても、紙ドキュメントに前記特定の項目が存在してもよい。
【0034】
以下、上述した用語の定義に基づいて、本発明について詳しく説明する。
【0035】
上述した紙ドキュメントは、紙ドキュメントに含まれている同一の範疇のデータ間の連関性を保ち、マシンが理解可能なデータに変換可能である。
【0036】
一実施形態において、光学式文字読み取り装置(Optical Character Reader;OCR)を用いて、紙ドキュメントに含まれている言葉を取り出すことができる。領収証のように複数の範疇のデータを含むドキュメントの場合、取り出された言葉に対するパース(parsing)過程を経て無関係にデジタル化された言葉を同一の範疇ごとに仕分けすることができる。これにより、複数の属性-値の組を含むデータが形成可能である。
【0037】
マシンラーニングを通して、OCRを用いて無関係にデジタル化された言葉に所定のデータ構造を持たせるための取り組みが行われ続けている。
図7を参照すると、従来の情報取出モデルは、対象ドキュメント10に対してOCR 711を行うことで、対象ドキュメント10から複数の言葉及び位置情報を取り出し、これに基づいて、直列化モデル(Serializer)712を通して、取り出された言葉の一部を直列化させ、タギングモデル(Tagging model)713を通して、直列化されたテキストの範疇を仕分けし、Tag2parseモデル714を通してパース(parsing)を行っていた。
【0038】
次いで、正規化モデル(parse normalizer)715を通して、JSON形式のデータを生成する。
【0039】
従来の情報取出モデルの訓練は、Tag2parseモデル714から出力されたデータと原データとの誤差を算出して、誤差を最小化させるように行われていた。このとき、前記誤差の算出のためには、原データ(以下、学習データ)を生成しなければならない。原データは、対象ドキュメント10に含まれている言葉のそれぞれに関する注釈を表示(721)し、対象ドキュメント10に含まれているテキストセグメントを直列化(722)させ、タギングモデル723を通して、言葉の間のパースを行うことにより生成される。上述した過程は、いずれも人間が自ら作業することで行われるため、マシンラーニングのための学習データの生成には非常に多大な時間がかかる。
【0040】
本発明は、上述した学習データの生成にかかる時間を短縮させて、情報取出モデルのマシンラーニングにかかるコストを極力抑えられる情報取出システム及び方法を提供する。
【0041】
本発明は、対象ドキュメントに含まれている複数の言葉の間のデータ構造を反映して、対象ドキュメントからデータを取り出すシステムを提供する。
【0042】
以下では、対象ドキュメントからデータを取り出すシステムについて、添付図面と結び付けて詳しく述べる。
【0043】
図1は、本発明に係る情報取出システムを説明するための概念図である。
【0044】
本発明に係る情報取出システム100は、アプリケーションまたはソフトウェアの形態で実現可能である。本発明に係る情報取出システム100のソフトウェア的な実現によれば、この明細書において述べられる手続き及び機能のような実施形態は、別途のソフトウェアモジュールにより実現可能である。ソフトウェアモジュールのそれぞれは、この明細書において述べられる一つ以上の機能及び作動を行うことができる。
【0045】
本発明に係るソフトウェア的な実現は、
図1に示す情報取出システム100により実現され、以下では、情報取出システム100の構成についてさらに詳しく述べる。
【0046】
本発明に係る情報取出システム100は、画像に対してOCRを行うことで、OCRデータを生成することができる。この明細書において、OCRデータは、画像から取り出されたテキスト及び取り出されたテキストに対応する位置情報を含んでいてもよい。ここで、前記位置情報は、取り出されたテキストの画像(または、紙ドキュメント)内の位置を定義する。
【0047】
ここで、画像は、紙ドキュメントをスキャンしたことによって取得される画像であってよく、その他の様々な方法により取得された画像であってもよい。
【0048】
一方、
図1に示すように、本発明に係る情報取出システム100は、通信部110、記憶部120、OCR部130、及び制御部140のうちの少なくとも一つを備えていてもよい。
【0049】
通信部110は、紙ドキュメントをスキャンした画像(または、ドキュメント)10を受信する手段であり、通信部、スキャン部、及び入力部のうちの少なくとも一つを備えて構成されてよく、その他に画像を受信可能な手段から構成されてもよい。
【0050】
情報取出システム100は、通信部110を介して受信した画像10を用いてデータを取り出してもよい。
【0051】
次いで、記憶部120は、本発明に係る様々な情報を記憶するように構成されてもよい。記憶部120の種類は非常に多岐にわたっており、少なくとも一部は、外部サーバー150(クラウドサーバー及びデータベース(database:DB)のうちの少なくとも一方)を意味することもある。すなわち、記憶部120は、本発明と関わる情報が記憶されるスペースであればよく、物理的なスペースに対する制約はないものと理解されてもよい。
【0052】
記憶部120には、i)紙ドキュメントをスキャンした画像10及びこれと関わるデータ、ii)情報取出モデルのマシンラーニングに活用される学習データ、iii)取り出されたデータ、のうちの少なくとも一つが記憶されてもよい。
【0053】
記憶部120には、上述した範疇と関わる情報が記憶されていてもよい。具体的に、範疇と関わる情報としては、範疇に関する概念的な情報、範疇に対応する範疇名を示すテキスト、及び範疇に対応する値を定義する情報が記憶されてもよい。
【0054】
ここで、範疇名は、フィールド名、範疇に対応する属性とも称されることがある。
【0055】
一方、範疇に対応する値は、範疇に属する少なくとも一つのテキストを含んでいてもよい。
【0056】
一方、前記範疇と関わる情報は、本発明に係る情報取出モデルに対する訓練が行われることに伴い更新されてもよい。具体的に、情報取出モデルに対する訓練が行われることに伴い、記憶部120に定義された範疇の数が増やされてよく、範疇と関わる情報は、範疇に関する概念的な情報、範疇に対応する範疇名を示すテキスト及び範疇に対応する値を定義する情報のうちの少なくとも一つが更新されてもよい。
【0057】
次いで、OCR(Optical Character Reader)部130は、画像10に含まれているコンテンツを認識する手段であり、様々なコンテンツ認識アルゴリズムのうちの少なくとも一つを通して、画像10に含まれているコンテンツを認識することができる。OCR部130は、人工知能に基づくアルゴリズムを用いて、コンテンツを認識することができる。ここで、コンテンツは、テキスト(文字)を含んでいてもよい。
【0058】
OCR部は、画像に含まれているテキスト及びテキストの位置情報を取り出してもよい。ここで、テキストの位置情報は、画像10内においてテキストがどこに位置するかに関する情報を含んでいてもよい。
【0059】
次いで、制御部140は、本発明に係る情報取出システム100の全般的な動作を制御するように構成されてもよい。制御部140は、人工知能アルゴリズムを処理可能なプロセッサー(processor)(または、人工知能プロセッサー)を備えていてもよい。制御部140は、ディープラニングアルゴリズムに基づいて、画像10からテキストを認識し、認識されたテキストに対する情報取出を行ってもよい。
【0060】
さらに、制御部140は、情報取出を行うための作業領域を与え、このような作業領域は、情報取出を行い、または、情報取出のためのマシンラーニングを行ったりするための「ユーザー環境」もしくは「ユーザーインタフェース」とも名付けられてもよい。
【0061】
このような作業領域は、電子機器のディスプレイ部の上に出力(または、提供)されてもよい。さらに、制御部140は、電子機器に配備され、または、電子機器と連動するユーザー入力部(例えば、タッチスクリーン、マウスなど)を介して受信される、ユーザー入力に基づいて、情報取出を行い、または、情報取出のためのマシンラーニングを行ったりすることができる。
【0062】
一方、本発明において、作業領域が出力される電子機器の種類には格別な制限がなく、本発明に係るアプリケーションが駆動可能であればよい。例えば、電子機器は、スマートフォン(smart phone)、携帯電話、タブレットPC、コンピューター、ノート型パソコン、デジタル放送用端末、個人向け情報端末(PDA:Personal Digital Assistants)、ポータブルマルチメディアプレーヤー(PMP:Portable Multimedia Player)、スマートミラー(smart mirror、)及びスマートテレビ(smart TV)のうちの少なくとも一つであり得る。
【0063】
本発明においては、電子機器または電子機器に配備されるディスプレイ部、ユーザー入力部に対して別途の図面符号を付さない。しかしながら、本発明において述べられる作業領域は、電子機器のディスプレイ部に出力され、ユーザー入力は、電子機器に配備されるか、あるいは、電子機器と連動するユーザー入力部を介して受信されるということは当業者にとって自明である。
【0064】
以下では、上述した情報取出システムを用いて情報取出を行う方法についてさらに詳しく述べる。特に、以下では、まず、フローチャートと結び付けて、情報取出方法について述べる。
【0065】
図2は、本発明に係る情報取出方法を説明するためのフローチャートであり、
図3は、本発明に係る情報取出モデルを説明するための概念図であり、
図4は、本発明に係る情報取出モデルから出力されたデータを木(tree)化させた様子を示す概念図である。
【0066】
本発明に係る情報取出方法においては、対象ドキュメントに対するOCR(Optical Character Recognition)を行って、複数の言葉及び前記複数の言葉のそれぞれに関する位置情報を取り出すステップが行われる(S110)。
【0067】
ここで、対象ドキュメントとは、情報取出の対象となる紙ドキュメントまたは紙ドキュメントに対する画像であってもよい。以上において述べたように、紙ドキュメントに対する画像10は、様々なルーツを介して受信可能である。
【0068】
OCRデータは、画像に含まれているテキスト及びテキストの位置情報を含んでいてもよい。
【0069】
OCRデータに含まれている既に設定された基準に従って、前記OCRデータに含まれているテキストが複数のテキストセグメント(text segment)に区分されてもよい。
【0070】
一実施形態において、テキストセグメントは、語節単位に区切られ、または、テキストの位置情報に基づいて、隣り合う複数のテキストが一つのテキストセグメントに区切られたりしてもよい。
【0071】
テキストセグメントを区切る過程において、複数のテキストセグメントが一つにまとめられ、または、一つのテキストセグメントが複数のテキストセグメントに分離されたりしてもよい。例えば、
図1の画像10から取り出されたテキスト「105 h-street」は、二つのテキストセグメント(「105」及び「h-street」)に区切られた後で、一つのテキストセグメント(「105 h-street」)にまとめられてもよい。他の例を挙げると、
図1の画像10から取り出された「Happy store」は、一つのテキストセグメント「Happy store」に区切られた後で、複数のテキストセグメント(「Happy」及び「store」)に分離されてもよい。
【0072】
制御部140は、テキストの位置情報に基づいて、テキストセグメントをまとめたり分離したりすることができる。制御部140がテキストセグメントをまとめたり分離したりするモデルは、マシンラーニングを通して生成可能であるが、これに何ら限定されるものではない。
【0073】
上述した過程を通して、複数の言葉が取り出し可能である。
【0074】
一方、取り出された複数の言葉ごとに位置情報がマッチングされてもよい。ここで、取り出された言葉に対応する位置情報は、対象ドキュメント上の位置情報であってもよい。具体的に、前記位置情報は、前記対象ドキュメントの画像上のある個所を基準点とし、前記基準点に関する2次元座標情報を含んでいてもよい。
【0075】
上述したように、前記位置情報は、相対座標であってもよく、前記位置情報を用いて取り出された複数の言葉の間の距離が算出可能である。
【0076】
複数の言葉のそれぞれに関する位置情報は、複数の言葉の間の関連性を判断するのに活用可能である。これについては、後述する。
【0077】
次いで、前記複数の言葉のそれぞれに対応する複数のトークンを生成するステップが行われる(S120)。
【0078】
前記複数のトークンは、3種類のタイプのうちのいずれか一つとして生成されてもよい。まず、複数のトークンタイプのうち、第1及び第2のタイプについて説明する。
【0079】
複数のトークンは、範疇の属性を有する第1のタイプのトークン及び前記範疇の値に相当するデータ属性を有する第2のタイプのトークンのうちのどちらか一方のタイプを有することができる。
【0080】
前記第1及び第2のタイプに対応するトークンは、対象ドキュメントから取り出された複数の言葉のそれぞれの意味に基づいて生成可能である。
【0081】
一実施形態において、前記複数の言葉は、前記複数の言葉のそれぞれの意味及び前記対象ドキュメントにおける複数の言葉のそれぞれに関する位置情報に基づいて、前記複数の言葉を前記範疇の属性を有する第1のタイプに対応する第1のタイプの言葉及び前記データ属性を有する第2のタイプの言葉のうちの少なくとも一方に仕分けされる。
【0082】
前記仕分け過程は、人工知能モデルを通して行われてもよい。人工知能モデルは、前記既に定義された複数の範疇を基準として、前記複数の言葉のそれぞれがどのような範疇に属する言葉であるかを判断し、前記複数の言葉がそれぞれ「属性」(第1のタイプ)であるか、あるいは、「値」(第2のタイプ)であるかを判断する。
【0083】
複数の言葉のうち、第1のタイプに仕分けされた第1のタイプの言葉のそれぞれに対応する第1のタイプのトークンが生成され、複数の言葉のうち、第2のタイプに仕分けされた第2のタイプの言葉のそれぞれに対応する第2のタイプのトークンが生成される。
【0084】
前記第1のタイプのトークンは、範疇の属性を定義するトークンであり、範疇名(フィールド名、範疇の属性)を示すテキストを含んでいてもよい。第1のタイプのトークンに含まれているテキストは、既に記憶された範疇と関わる情報に含まれている範疇名であってもよい。ここで、特定の第1のタイプのトークンに含まれているテキストは、前記特定の第1のタイプのトークンの生成にベースとなった第1のタイプの言葉と同一ではない場合もある。
【0085】
例えば、
図3を参照すると、第1のタイプに仕分けされた言葉の「品名」に基づいて生成される第1のタイプのトークンは、「品名」を含んでおらず、テキスト「name」を含んでいる。
【0086】
前記第2のタイプのトークンは、対象ドキュメントから取り出された言葉それ自体であってもよい。
【0087】
例えば、
図3を参照すると、第2のタイプに仕分けされた言葉の「Happy」に対応する第2のタイプのトークンは、テキスト「Happy」それ自体であってもよい。
【0088】
一方、特定の第1のタイプのトークンは、第2のタイプの言葉の意味に基づいて生成されてもよい。具体的に、複数の言葉のうち、第2のタイプに仕分けされた第2のタイプの言葉が属する範疇のそれぞれに対する第1のタイプのトークンが生成されてもよい。
【0089】
一実施形態において、前記複数の言葉のうち、特定の範疇の範疇値に相当する特定の第2のタイプの言葉が存在し、前記特定の範疇に相当する言葉が存在しない場合、前記特定の範疇の範疇値に相当する前記特定の第2のタイプの言葉に基づいて、前記特定の範疇に対応する特定の第1のタイプのトークンが生成されてもよい。
【0090】
例えば、
図3を参照すると、対象ドキュメント10には、「店名・売り場名」の範疇の属性に対応する言葉が存在しない。本発明は、対象ドキュメント10から取り出された第2のタイプの言葉「Happy」、「Store」11の意味に基づいて、既に定義された複数の範疇のうち、「店名・売り場名」の範疇を特定し、「店名・売り場名」の範疇に対応する第1のタイプのトークンを生成することができる。
【0091】
上述したように、本発明は、たとえ、対象ドキュメントに範疇の属性を指し示す言葉が存在しないとしても、第2のタイプの言葉の実質的な意味に基づいて、対象ドキュメントに含まれている範疇を特定する。
【0092】
一実施形態において、
図3を参照すると、対象ドキュメント10から複数の言葉(「Happy」、「store」、「105 h-street」、「注文番号:」、「20210520011」、「品名」、「数量」、「金額」、「Carrot」、「3」、「2997」、「tomato」、「2」、「1000」)が取り出される。
【0093】
一方、取り出された言葉の一部(「品名」、「数量」、「金額」、「注文番号:」)は、第1のタイプの言葉に仕分けされ、残りの一部(「Happy」、「store」、「105 h-street」、「20210520011」、「Carrot」、「3」、「2997」、「tomato」、「2」、「1000」、「20210520011」)は、第2のタイプの言葉に仕分けされてもよい。
【0094】
引き続き、取り出された言葉のそれぞれの意味に基づいて、既に定義された複数の範疇のうち、複数の言葉のそれぞれに対応する一部の範疇が特定される。具体的に、取り出された言葉の意味に基づいて、「store」、「name」(「store」の範疇の下位範疇)、「address」、「item」、「list」、「menu」、「name」(「menu」の範疇の下位範疇)、「count」、「price」の範疇が特定されてもよい。
【0095】
次いで、「address」、「item」、「list」、「menu」、「name」(「menu」の範疇の下位範疇)、「count」、「price」の範疇のそれぞれに対応する第1のタイプのトークンが生成され、第2のタイプの言葉に仕分けされた言葉に対応する第2のタイプのトークンが生成される。
【0096】
一方、対象ドキュメントから取り出しようとするデータのうち、ユーザーにとって不要な範疇のデータは、データの取出に際して削除するように設定されてもよい。ユーザーは、ユーザーにとって不要なデータの範疇を予め設定し、当該範疇のデータに対するトークンが生成されないように設定してもよい。既に設定された範疇に属する言葉(「注文番号:」、「20210520011」)は削除されてもよい。
【0097】
一実施形態において、
図3に示す表を参照すると、第1及び第2のタイプの言葉に仕分けされた複数の言葉に基づいて、複数のトークン(出力トークン:output token)320が生成されてもよい。複数のトークンは、時間の流れ(t)に従って順番に生成されてもよい。
【0098】
前記複数のトークンは、第3のタイプのトークンを含んでいてもよい。第3のタイプのトークンについては後述する。
【0099】
次いで、対象ドキュメントに含まれている前記複数の言葉の間のデータ構造が反映されるように、前記複数のトークンを並べるステップが行われる(S130)。
【0100】
対象ドキュメントに含まれている複数の言葉は、所定のデータ構造を有することができる。データ構造とは、複数の言葉の特性及び言葉の間の関係を論理的な観点から示す構造であり、データ構造の種類は、リスト(一覧)、並べ、木(ツリー)、グラフ、キュー及びスタックのうちの少なくとも一つを含んでいてもよいが、これに何ら限定されない。
【0101】
例えば、
図1において述べた対象ドキュメント10は、「店名・売り場名」の範疇、「売り場の住所」の範疇、「注文商品名」の範疇、「注文数量」の範疇、及び「注文金額」の範疇を含むデータ構造を有する。ただし、対象ドキュメント10に対応するデータ構造は、必ずしも絶対的なものであるとは限らず、対象ドキュメント10に関するデータ構造は、データ構造を定義する方式に応じて異なってくる場合がある。
【0102】
この明細書において、複数のトークンを並べるステップは、対象ドキュメントに含まれている複数の言葉の間のデータ構造と同一の構造のデータを生成するように実現されてよく、対象ドキュメントに含まれている複数の言葉の間のデータ構造が既に設定された方式に従って変形された構造のデータを生成するように実現されてもよい。
【0103】
例えば、
図1において述べた対象ドキュメント10は、「店名・売り場名」の範疇、「売り場の住所」の範疇、「注文商品名」の範疇、「注文数量」の範疇、及び「注文金額」の範疇を含むデータ構造を有し、本発明に係るトークンを並べるステップは、「店名・売り場名」の範疇及び「売り場の住所」の範疇の上位範疇である「売り場」の範疇、「売り場」の範疇の下位概念である「店名・売り場名」の範疇及び「売り場の住所」の範疇、互いに関連付けられた「注文商品名」の範疇、「注文数量」の範疇、及び「注文金額」の範疇を含むデータ構造を有するデータが実現されるように行われてもよい。
【0104】
上述したように、本発明は、対象ドキュメント10に含まれている範疇の上位概念の範疇を新たに定義し、または、互いに異なる範疇のデータを互いに関連付けたりすることができる。
【0105】
複数のトークンを並べるステップにおいては、前記複数の言葉の意味及び前記複数の言葉のそれぞれに関する位置情報を用いて、前記複数のトークンが順番に並べられる。
【0106】
前記複数のトークンを並べるステップは、必ずしも複数のトークンがいずれも生成された後に行われる必要はない。本発明は、前記複数のトークンの一部が生成された状態で、生成されたトークンを並べた後で、さらにトークンを生成するような方式によって行われてもよい。
【0107】
一実施形態において、本発明は、一つのトークンが生成されるたびに、生成されたトークンを並べるような方式により行われてもよい。
【0108】
以下、複数のトークンを並べる方法について詳しく説明する。
【0109】
第2のタイプに仕分けされた特定の第2のタイプの言葉が属する第1の範疇に対応する第1のタイプのトークンと、前記特定の第2のタイプの言葉に対応する第2のタイプのトークンは、順番に並べられてもよい。
【0110】
一実施形態において、同一の範疇である第1の範疇に対応する第1のタイプのトークンと第2のタイプのトークンは、順番に並べられてもよい。この明細書においては、説明のしやすさのために、第1のタイプのトークンが第2のタイプのトークンよりも先に並べられる実施形態について説明するが、これに何ら限定されず、第2のタイプのトークンが第1のタイプのトークンよりも先に並べられてもよい。
【0111】
他の一実施形態において、一つのトークンが生成されるたびに、生成されたトークンを並べるような方式によりトークンの並べ作業が行われる場合、先に並べられるトークンがこれよりも後で並べられるトークンよりも先に生成されることもある。
【0112】
一方、前記第1の範疇に属する特定の第2のタイプの言葉は、複数であってもよい。この場合、複数の前記特定の第2のタイプの言葉のそれぞれに対応する複数の第2のタイプのトークンが順番に並べられる。
【0113】
このとき、順番に並べられた前記複数の第2のタイプのトークンの並べ順は、複数の前記特定の第2のタイプの言葉のそれぞれの意味及び前記対象ドキュメント上の位置情報に基づいて決められてもよい。
【0114】
例えば、
図3を参照すると、生成されたトークン320のうち、第2のタイプのトークンである「Happy」のトークンと「store」のトークンは、「[name]」のトークンに続いて順番に並べられ、前記二つの第2のタイプのトークンのそれぞれの言葉に基づいて、「Happy」のトークンが先に並べられ、「store」のトークンが「Happy」のトークンに続いて並べられる。
【0115】
上述したように、本発明は、対象ドキュメントから取り出された言葉の大きさを最小化させることにより、たとえ、対象ドキュメントの形態が変形されたり一部が失われたりすることに伴い、テキスト間の相対的な位置が不規則的になる場合であっても、言葉の意味に基づいて、高い正確度をもって情報を取り出せるようにする。
【0116】
一方、互いに異なる範疇に属する第1のタイプのトークンは、順番に並べられる。具体的に、前記第1の範疇に対応する第1のタイプのトークンと、前記第1の範疇とは異なる第2の範疇に対応する第1のタイプのトークンとが順番に並べられる。
【0117】
このとき、前記第1の範疇に対応する第1のタイプのトークンと、前記第2の範疇に対応する第2のタイプのトークンとの間には、前記第1の範疇及び前記第2の範疇のそれぞれに対応するトークンを区別するための第3のタイプのトークンが並べられてもよい。
【0118】
一実施形態において、第1の範疇に属するトークンが第1のタイプのトークンのみ存在(対象ドキュメントから属性に対応する言葉のみ取り出され、値に対応する言葉は取り出されていない場合)する場合に、第3のタイプのトークンは、第1のタイプのトークンに続いて並べられる。
【0119】
他の一実施形態において、第1の範疇に属するトークンが第1のタイプのトークンと一つの第2のタイプのトークンである場合、第1の範疇に対応する第1のタイプのトークンが最初に並べられ、第1のタイプのトークンに続いて第2のタイプのトークンが並べられてもよい。第3のタイプのトークンは、第2のタイプのトークンに続いて並べられる。
【0120】
他の一実施形態において、第1の範疇に属するトークンが第1のタイプのトークンと複数の第2のタイプのトークンである場合、前記第1の範疇に対応する第1のタイプのトークンが最初に並べられ、前記第1の範疇に対応する第1のタイプのトークンに続いて、前記特定の第2のタイプの言葉に対応する複数の第2のタイプのトークンが順番に並べられ、前記特定の第2のタイプの言葉に対応する第2のタイプのトークンのうち、最後に並べられた特定の第2のタイプのトークンに続いて、前記第3のタイプのトークンが並べられてもよい。
【0121】
上述したように、前記第3のタイプのトークンは、特定の範疇に属する少なくとも一つのトークンのうち、最後に並べられてもよい。
【0122】
対象ドキュメント10から取り出された複数の言葉のそれぞれの意味に基づいて、既に定義された複数の範疇のうち、複数の言葉のそれぞれに対応する範疇が特定されてもよい。既に定義された複数の範疇のうち、前記特定された範疇が定義する概念よりも上位概念の範疇が存在する場合、前記上位概念の範疇が複数の言葉のそれぞれに対応する範疇として特定されてもよい。
【0123】
上述した上位概念の範疇は、特定のカテゴリーの上位カテゴリーであると理解されてもよい。この明細書において、特定の範疇に対する上位概念の範疇を上位範疇と称し、前記上位範疇の下位概念の範疇を下位範疇と称する。前記言い回しは相対的な言い回しであるため、特定の範疇を基準として活用してもよい。
【0124】
例えば、前記第1の範疇の上位概念に対応する範疇が存在する場合に、前記上位概念に対応する範疇は第3の範疇と特定されてもよい。この場合、前記第1の範疇は前記第3の範疇の下位範疇と称されてもよく、前記第3の範疇は前記第1の範疇の上位範疇と称されてもよい。
【0125】
前記上位概念の範疇よりも上位概念の範疇が既に定義された場合に、前記上位概念の範疇よりも上位概念の範疇も、また、複数の言葉のそれぞれに対応する範疇と特定されてもよい。
【0126】
特定の範疇の上位範疇が特定される場合に、上位範疇に対応する第1のタイプのトークンが生成されてもよい。例えば、前記特定された第3の範疇に対応する前記第1のタイプのトークンが生成される。前記第3の範疇に対応する第1のタイプのトークン、前記第1の範疇に対応する第1のタイプのトークン及び前記第1の範疇に対応する第2のタイプのトークンは、順番に並べられてもよい。
【0127】
一方、特定の範疇の下位範疇は、複数特定されてもよい。例えば、前記第1及び第2の範疇が前記第3の範疇の下位範疇であってもよい。この場合、第1乃至第3の範疇に対応する第1のタイプのトークンが生成される。前記第3の範疇に対応する第1のタイプのトークン、前記第1の範疇に対応する第1のタイプのトークン、前記第1の範疇に対応する第2のタイプのトークン、第3のタイプのトークン、前記第2の範疇に対応する第1のタイプのトークン及び前記第2の範疇に対応する第2のタイプのトークンは、順番に並べられてもよい。
【0128】
上述したように、二つの下位範疇のそれぞれに対応する第1のタイプのトークンの間には、第3のタイプのトークンが並べられる。
【0129】
図3に基づいて、実際の領収証を基に生成されたトークンを並べる方法についてさらに詳しく説明する。
【0130】
図3においては、トークンが生成された順番とトークンの並べ順とが同一であるということを想定して説明するが、トークンの生成順番とトークンの並べ順とが必ずしも一致するとは限らない。
【0131】
対象ドキュメント10から取り出された言葉のそれぞれの意味に基づいて、「[store]」、「[name]」(「[store]」のトークンに対応する範疇の下位範疇に対応)、「[address]」(「[store]」のトークンに対応する範疇の下位範疇に対応)、「[item]」、「[list]」(「[item]」のトークンに対応する範疇の下位範疇に対応)、「[menu]」(「[list]」のトークンに対応する範疇の下位範疇に対応)、「[name]」(「[menu]」のトークンに対応する範疇の下位範疇に対応)、「[count]」(「[menu]」のトークンに対応する範疇の下位範疇に対応)、及び「[price]」(「[menu]」のトークンに対応する範疇の下位範疇に対応)トークンが生成される。
【0132】
また、第2のタイプに仕分けされた言葉(「Happy」、「store」、「105 h-street」、「20210520011」、「Carrot」、「3」、「2997」、「tomato」、「2」、「1000」)に対応する第2のタイプのトークンが生成される。
【0133】
複数の範疇のうち、最も上位概念に対応する二つの範疇「store」、「item」の範疇のうちのどちらか一方に対応する[store]のトークンが最初のトークンとして並べられる。次いで、「store」の範疇の下位範疇に対応する「name」の範疇に対応する[name]のトークンが[store]のトークンに続いて並べられ、「name」の範疇に属している第2のタイプの言葉に対応する「Happy」、「store」のトークンが[name]のトークンに続いて続けて並べられる。
【0134】
「name」の範疇に属しているトークン321aがいずれも並べられた後、「name」の範疇に対応するトークンのうち、最後のトークン(「store」のトークン」)に続いて第3のタイプのトークン([reduce])321bが並べられる。次いで、「store」の範疇の下位範疇に対応する「address」の範疇に対応する[address]のトークンが[reduce]のトークンに続いて並べられる。
【0135】
図示はしないが、以降の並べ方について詳述する。「address」の範疇に属している第2のタイプの言葉に対応する「105 h-street」のトークンが[address]のトークンに続いて並べられる。「address」の範疇に属しているトークンがいずれも並べられた後、「address」の範疇に対応するトークンのうち、最後のトークン(「105 h-street」のトークン)に続いて第3のタイプのトークンが並べられる。
【0136】
一方、「store」の範疇に対応するすべてのトークンが並べられたため、第3のタイプのトークンがさらにもう一回並べられる。すなわち、「address」の範疇に対応するトークンのうち最後のトークン(「105 h-street」のトークン)に続いて、二つの第3のタイプのトークンが続けて並べられる。
【0137】
続けて並べられた二つの第3のタイプのトークンに続いて、「item」の範疇に対応する[item]のトークンが並べられる。[item]のトークンに続いて、「item」の範疇の下位範疇である「list」の範疇に対応する[list]のトークン、「list」の範疇の下位範疇である「menu」の範疇に対応する[menu]のトークン、「menu」の範疇の下位範疇である「name」の範疇に対応する[name]のトークンが続けて並べられる。[name]のトークンに続いて、「name」の範疇に属している値に対応する「carrot」のトークンが続けて並べられ、「carrot」のトークンに続いて、[reduce]のトークンが並べられる。
【0138】
次いで、「menu」の範疇の下位範疇である「count」の範疇に対応する[count]のトークンが続けて並べられる。[count]のトークンに続いて、「count」の範疇に属している値に対応する「3」のトークンが続けて並べられ、「3」のトークンに続いて、[reduce]のトークンが並べられる。
【0139】
次いで、「menu」の範疇の下位範疇である「price」の範疇に対応する[price]のトークンが続けて並べられる。[price]のトークンに続いて、「price」の範疇に属している値に対応する「2997」のトークンが続けて並べられ、「2997」のトークンが並べられる。
【0140】
「price」の範疇、「menu」の範疇、「list」の範疇に対応するすべてのトークンが並べられたため、「2997」のトークンに続いて、三つの第3のタイプのトークンが続けて並べられる。
【0141】
次いで、続けて並べられた三つの第3のタイプのトークンに続いて、「item」の範疇の下位範疇である「list」の範疇に対応する[list]のトークン、「list」の範疇の下位範疇である「menu」の範疇に対応する[menu]のトークン、「menu」の範疇の下位範疇である「name」の範疇に対応する[name]のトークンが続けて並べられる。[name]のトークンに続いて、「name」の範疇に属している値に対応する「tomato」のトークンが続けて並べられ、「tomato」のトークンに続いて、[reduce]のトークンが並べられる。
【0142】
次いで、「menu」の範疇の下位範疇である「tomato」の範疇に対応する[count]のトークンが続けて並べられる。[count]のトークンに続いて、「count」の範疇に属している値に対応する「2」のトークンが続けて並べられ、「2」のトークンに続いて、[reduce]のトークンが並べられる。
【0143】
引き続き、「menu」の範疇の下位範疇である「price」の範疇に対応する[price]のトークンが続けて並べられる。[price]のトークンに続いて、「price」の範疇に属している値に対応する「1000」のトークンが続けて並べられ、「1000」のトークンが並べられる。前記「1000」のトークンを最後にトークンの並べが終わる。
【0144】
一方、前記生成されたトークン及び前記トークンが並べられた順番に基づいて、前記対象ドキュメントに含まれている前記複数の言葉の間のデータ構造が反映されたデータが生成されてもよい。
【0145】
前記対象ドキュメントに含まれている前記複数の言葉の間のデータ構造が反映されたデータは、トークンが並べられた順番の通りにトークンに対応するアクションを行うことにより生成される。
【0146】
一実施形態において、前記対象ドキュメントに含まれている前記複数の言葉の間のデータ構造が反映されたデータは、木(tree)状に生成されてもよい。
【0147】
木データは、複数のノード及び複数のレイヤーを備え、それぞれのノードには複数の範疇のうちのいずれか一つが対応し、対応する範疇の属性及び値のうちの少なくとも一つがマッチングされる。
【0148】
木データの生成に際して最上位ノードSを基準ノードとして設定した後で、トークンが並べられた順番の通りに、トークンに対応するアクションを行ってノードを生成するか、あるいは、ノードに対応するデータをマッチングさせる。
【0149】
第1のタイプのトークンに対するアクションは、基準ノードの下位ノードを生成し、生成された下位ノードを基準ノードに変更するものであり、第2のタイプのトークンに対するアクションは、基準ノードに当該第2のタイプのトークンに対応する言葉を値としてマッチングさせるものである。第3のタイプのトークンに対するアクションは、基準ノードよりも1段階上位のノードを基準ノードに変更するものである。
【0150】
上述した基準に従い、順番に並べられたトークンから木データが生成されてもよい。
【0151】
図3及び
図4に基づいて、木データを生成する一実施形態について説明する。対象ドキュメント10からトークンを生成し、かつ、並べる方法に関する説明は、上述した説明に換えるものとする。
【0152】
図3を参照すると、トークンが並べ順の通りにトークンに対応するアクション330を行う。
図3に示す表のトークン生成時間列311に含まれている数字は、トークンを処理する順番になることがあり、トークンの処理順番の通りにアクション列331に含まれているアクションが行われる。これにより、パース340が行われ、パース列341に含まれているデータが順番に生成される。
【0153】
最初に木の最上位ノードSを基準ノードとして設定し、基準ノードにおいて[store]のトークンに対応するアクションNT(store)が行われる。これにより、基準ノードSの下位ノードである[store]のノード410が生成され、基準ノードが[store]のノード410に変更される。
【0154】
次いで、[name]のトークンに対応するアクションNT(name)が行われ、[store]のノード410の下位ノードである[name]のノード420が生成され、基準ノードが[name]のノード420に変更される。
【0155】
次いで、[name]のノード420に「Happy」のトークンに対応する言葉「Happy」をマッチングさせるアクションGEN(Happy)が行われる。続けて、[name]のノード420に「store」のトークンに対応する言葉「store」をマッチングさせるアクションGEN(store)が行われる。[name]のノード420にマッチングされた言葉は、言葉がマッチングされた順番の通りに直列化(serialization)される。これにより、[name]のノード420には、「Happy store」421がマッチングされる。
【0156】
図3に示す表の331aの領域に含まれているすべてのアクションが行われることに伴い、
図4の410、420ノードが生成され、420ノードに対応するテキストがマッチングされる。
【0157】
次いで、
図3に示す表の331bの領域に含まれている[reduce]のトークンに対応するアクションが行われる。これにより、基準ノードが[name]のノードから[name]のノードの上位ノードである[store]のノードに変更される。
【0158】
次いで、[address]のトークンに対応するアクションNT(address)が行われ、[store]のノード410の下位ノードである[address]のノードが生成され、基準ノードが[address]のノードに変更される。
【0159】
次いで、[address]のノードに「105 h-street」のトークンに対応する言葉「105 h-street」をマッチングさせるアクションGEN(105 h-street)が行われる。これにより、[address]のノードには、「105 h-street」がマッチングされる。
【0160】
次いで、続けて並べられた二つの[reduce]のトークンに対応するアクションが行われ、基準ノードが最上位ノードSに変更される。
【0161】
次いで、[item]のトークン、[list]のトークン、[menu]のトークン、[name]のトークンに対応するアクションが順番に行われ、[item]のノード430、[list]のノード440、[menu]のノード450、[name]のノード460が順番に生成される。引き続き、「carrot」のトークンに対応するアクションが行われることにより、[name]のノード460に言葉「carrot」461がマッチングされる。
【0162】
上述したルールに従って生成されたトークンに対するアクションを繰り返し行う場合、
図4に示す木データが生成可能である。
【0163】
図4に示す木は、対象ドキュメント10に含まれている言葉のそれぞれに関するキー-値の組が完全にマッチングされたデータであり、それぞれのデータの範疇が完全に定義されている。
【0164】
上述したように、本発明は、対象ドキュメントから取り出された前記複数の言葉の意味及び前記複数の言葉のそれぞれに関する位置情報を用いて、かつ、生成されたトークン及び生成されたトークンの並べを用いて、対象ドキュメントに含まれている複数の言葉の間のデータ構造が反映されたデータを生成することができる。
【0165】
一方、本発明は、情報取出モデルに対するマシンラーニングを行うときに、上述した木データを基準として情報取出モデルに関する正確度を判断する。
【0166】
図5は、本発明に係る情報取出モデルのマシンラーニング方法を示す概念図であり、
図6は、本発明に係る情報取出モデルから出力されたデータの正確度を算出する様子を示す概念図である。
【0167】
図5を参照すると、対象ドキュメント10に対するOCR 511を行って、複数の言葉及び前記複数の言葉のそれぞれに関する位置情報512を推定した後で、複数の言葉及び位置情報を本発明に係る情報取出モデル513に入力する。これにより、順番に並べられたトークンが順番に並べられる。
【0168】
一方、対象ドキュメント10に対応するデータは、学習データに加工される。学習データのための加工は、パースアノテーター(parse annotator)521により行われるが、パースアノテーター521は、既に記憶されたデータを複数のトークンが順番に並べられた複数のトークン状に出力する。すなわち、パースアノテーター521は、本発明に係るマシンラーニングモデルの出力データと同一の形式のデータを出力する。これを通して、マシンラーニングのための原データ(学習データ)が生成される。
【0169】
本発明に係る情報取出モデルから出力された複数のトークンを基に生成された木データと原データとの誤差を算出し、誤差を最小化させるように訓練が行われてもよい。
【0170】
一実施形態において、
図6を参照すると、情報取出モデルの誤差は、情報取出モデルから生成された木データに含まれているノードと原データを構成するノードとを比較することにより算出されてもよい。具体的に、情報取出モデルから出力された木データ(
図6における最上段の木)を原データの木(
図6における最下段の木)と同様に変化させながら情報取出モデルの誤差が算出されてもよい。
【0171】
具体的に、情報取出モデルから出力された木データ(
図6における最上段の木)の各ノード610、620、630とノードにマッチングされた値621、631が原データの木と一致するか否かを判断し、一致しないノード630及び一致しない値631を原データと同様に修正して、一致しないノード630が原データと一致するノード630’に修正されるようにし、一致しない値631が原データと一致する値631’に修正されるようにする。このような過程において、情報取出モデルから出力された木データのスコアが算出される。スコアの算出方式は、既に公知の方式を活用するため、具体的な説明は省略する。
【0172】
上述したように、本発明に係る情報取出モデルのマシンラーニングは、情報取出モデルから出力され、順番に並べられたトークンの正確度を算出することにより行われる。前記出力されたトークンは、「キー-値」の組が完全にマッチングされたデータではないので、前記情報取出モデルの正確度を算出するための学習データが生成されやすくなる。
【0173】
具体的に、学習データの生成に際して既に定められたルール(トークン生成ルール)に従って一定の順番に並べられたトークンを生成した後で、情報取出モデルから出力されたトークンと比較する作業を行うことで、情報取出モデルの正確度を判断し、前記情報取出モデルの正確度を高めるようにマシンラーニングを行うことが可能になる。これにより、情報取出モデルのマシンラーニングのための学習データを生成するのにかかる時間が大幅に短縮される。
【0174】
一方、前述した本発明は、コンピューターにおいて一つ以上のプロセスにより実行され、このようなコンピューターにおいて読み取り可能な媒体(または、記録媒体)に記憶可能なプログラムとして実現可能である。
【0175】
さらに、前述した本発明は、プログラムが記録された媒体にコンピューターにおいて読み取り可能なコードまたはコマンドとして実現することが可能である。すなわち、本発明は、プログラムの形態で提供されてもよい。
【0176】
一方、コンピューターにおいて読み取り可能な媒体は、コンピューターシステムにより読み込まれるデータが記憶されるあらゆる種類の記録装置を網羅する。コンピューターにおいて読み取り可能な媒体の例としては、ハードディスクドライブ(HDD:Hard Disk Drive)、ソリッドステートディスク(SSD:Solid State Disk)、シリコンディスクドライブ(SDD:Silicon Disk Drive)、読み取り専用メモリー(ROM)、ランダムアクセスメモリー(RAM)、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶装置などが挙げられる。
【0177】
さらにまた、コンピューターにおいて読み取り可能な媒体は、保存先を備え、電子機器が通信を通してアクセスできるサーバーまたはクラウド保存先であってもよい。この場合、コンピューターは、有線または無線通信を通して、サーバーまたはクラウド保存先から本発明に係るプログラムをダウンロードすることができる。
【0178】
これらに加えて、本発明においては、以上において説明したコンピューターは、プロセッサー、すなわち、中央処理装置(CPU:Central Processing Unit)が搭載された電子機器であって、その種類に対して格別に限定をしない。
【0179】
一方、上記の詳細な説明は、あらゆる面において制限的であると解釈されてはならず、例示的なものであると考慮されるべきである。本発明の範囲は、特許請求の範囲のリーズナブルな解釈によって決められなければならず、本発明の等価的な範囲内におけるあらゆる変更は、本発明の範囲に含まれる。