(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-13
(45)【発行日】2023-10-23
(54)【発明の名称】データ検索方法及びシステム
(51)【国際特許分類】
G06F 16/35 20190101AFI20231016BHJP
G06F 16/383 20190101ALI20231016BHJP
G06F 16/53 20190101ALI20231016BHJP
G06F 16/63 20190101ALI20231016BHJP
【FI】
G06F16/35
G06F16/383
G06F16/53
G06F16/63
(21)【出願番号】P 2022121133
(22)【出願日】2022-07-29
【審査請求日】2022-07-29
(31)【優先権主張番号】10-2021-0101660
(32)【優先日】2021-08-02
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(73)【特許権者】
【識別番号】523303688
【氏名又は名称】ワークスモバイルジャパン株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】キム ギウク
(72)【発明者】
【氏名】ファン ウォンソク
(72)【発明者】
【氏名】ソ ミンジュン
【審査官】和田 財太
(56)【参考文献】
【文献】特開2019-144771(JP,A)
【文献】国際公開第2018/070026(WO,A1)
【文献】特開2005-301786(JP,A)
【文献】特開2020-177507(JP,A)
【文献】特開2004-013813(JP,A)
【文献】米国特許出願公開第2006/0088214(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00
(57)【特許請求の範囲】
【請求項1】
複数のフィールド値を含むコンテンツを受信するステップと、
前記コンテンツに含まれるフィールド値を配列するが、前記フィールド値が属するカテゴリーを区分する複数の区分子を追加してモデル入力値を生成するステップと、
前記モデル入力値及び学習されたディープラーニングモデルを用いて前記コンテンツのベクトルを生成するステップと、
前記生成されたベクトルと既に保存された複数のデータのそれぞれに対応するベクトル間の類似度に基づいて、前記既に保存された複数のデータから検索対象データに対応するデータを検索するステップとを含む、データ検索方法。
【請求項2】
前記フィールド値は、複数のカテゴリーにそれぞれ対応し、
前記複数の区分子は、前記複数のカテゴリーにそれぞれ対応することを特徴とする請求項1に記載のデータ検索方法。
【請求項3】
前記複数のカテゴリーのうち特定のカテゴリーに対応する特定の区分子及び特定のフィールド値は、互いに隣接して配列されることを特徴とする請求項2に記載のデータ検索方法。
【請求項4】
前記特定の区分子は、前記特定のフィールド値の前部又は後部に配列されることを特徴とする請求項3に記載のデータ検索方法。
【請求項5】
前記モデル入力値に含まれる前記フィールド値のそれぞれを少なくとも1つの第1タイプトークンに変換するステップと、
前記複数の区分子のそれぞれを第2タイプトークンに変換するステップとをさらに含み、
前記複数のカテゴリーのそれぞれに対応する第1タイプトークンが互いに区分されるように、前記特定のカテゴリーに対応する前記フィールド値及び前記区分子から変換された前記第1及び前記第2タイプトークンは、互いに隣接して配列されることを特徴とする請求項4に記載のデータ検索方法。
【請求項6】
前記第2タイプトークンは、
前記複数のカテゴリーを示すテキストをそれぞれ含み、
前記第2タイプトークンのうちいずれか1つに含まれるテキストと他の1つに含まれるテキストとが異なることを特徴とする請求項5に記載のデータ検索方法。
【請求項7】
前記フィールド値のうち前記特定のフィールド値に対応する前記第1タイプトークンは、複数であり、前記特定のフィールド値に対応する複数の前記第1タイプトークンは、互いに隣接して配列されることを特徴とする請求項5に記載のデータ検索方法。
【請求項8】
前記特定のフィールド値が属するカテゴリーに対応する前記第2タイプトークンは、前記複数の第1タイプトークンのうち最初に配列された前記第1タイプトークンの前部又は前記複数の第1タイプトークンのうち最後に配列された前記第1タイプトークンの後部に配列されることを特徴とする請求項7に記載のデータ検索方法。
【請求項9】
前記コンテンツに特定のカテゴリーを定義するフィールド名が含まれ、前記特定のカテゴリーに対応する前記フィールド値が含まれない場合、前記モデル入力値は、前記特定のカテゴリーに対応するマスクトークンを含み、
前記マスクトークンは、前記特定のカテゴリーに対応する区分子に隣接して配列されることを特徴とする請求項1に記載のデータ検索方法。
【請求項10】
前記既に保存された複数のデータから検索対象データに対応するデータを検索するステップは、
前記コンテンツのベクトルと前記既に保存された複数のデータのそれぞれに対応するベクトル間の距離を比較するステップと、
前記比較の結果に基づいて、前記既に保存された複数のデータのそれぞれに対応するベクトルから少なくとも1つを選択するステップと、
前記選択されたベクトルに対応するデータを出力するステップとをさらに含むことを特徴とする請求項1に記載のデータ検索方法。
【請求項11】
前記選択されたベクトルに対応するデータは、
異なるカテゴリーに属する複数のフィールド値を含み、
前記複数のフィールド値が属するカテゴリーが区分された形態のデータであることを特徴とする請求項10に記載のデータ検索方法。
【請求項12】
前記コンテンツは、
前記複数のフィールド値が属するカテゴリーが区分された形態のデータであることを特徴とする請求項1に記載のデータ検索方法。
【請求項13】
前記コンテンツは、イメージに関するOCRデータ及び音声データのいずれかから生成されることを特徴とする請求項12に記載のデータ検索方法。
【請求項14】
複数のフィールド値を含むコンテンツを受信する通信部と、
前記コンテンツに含まれるフィールド値を配列するが、前記フィールド値が属するカテゴリーを区分する複数の区分子を追加してモデル入力値を生成し、
前記モデル入力値及び学習されたディープラーニングモデルを用いて前記コンテンツのベクトルを生成し、
前記生成されたベクトルと既に保存された複数のデータのそれぞれに対応するベクトル間の類似度に基づいて、前記既に保存された複数のデータから検索対象データに対応するデータを検索する制御部とを含む、データ検索システム。
【請求項15】
複数の命令を含むコンピュータプログラムであって、
命令が実行されると、
複数のフィールド値を含むコンテンツを受信するステップと、
前記コンテンツに含まれるフィールド値を配列するが、前記フィールド値が属するカテゴリーを区分する複数の区分子を追加してモデル入力値を生成するステップと、
前記モデル入力値及び学習されたディープラーニングモデルを用いて前記コンテンツのベクトルを生成するステップと、
前記生成されたベクトルと既に保存された複数のデータのそれぞれに対応するベクトル間の類似度に基づいて、前記既に保存された複数のデータから検索対象データに対応するデータを検索するステップとを、
コンピュータで実行する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異なるカテゴリーのフィールド値を含むデータを検索するデータ検索方法及びシステムに関する。
【背景技術】
【0002】
人工知能の辞書的意味は、人間の学習能力、推論能力、知覚能力、自然言語理解能力などをコンピュータプログラムで実現した技術である。このような人工知能は、マシンラーニングに人間の脳を模倣したニューラルネットワークを加えたディープラーニングにより飛躍的に発展してきた。
【0003】
ディープラーニング(deep learning)とは、コンピュータが人間のように判断及び学習できるようにし、それにより事物やデータを群集化又は分類する技術をいい、近年、テキストデータだけでなく画像データまで分析できるようになり、非常に多様な産業分野に積極的に活用されている。
【0004】
このような人工知能の発達により、オフィス・オートメーション(office automation)分野においても様々な自動化が行われている。特に、オフィス・オートメーション分野においては、人工知能を活用した画像データ分析技術に基づいて、紙(ペーパ)に印刷されたコンテンツをデータ化するのに多くの努力をしている。その一環として、オフィス・オートメーション分野においては、紙文書をイメージ化し、イメージに含まれるコンテンツを分析するイメージ分析技術(又は画像データ分析技術)により、文書に含まれるコンテンツをデータ化しており、その場合、文書に含まれるコンテンツのタイプによってイメージを分析する技術が必要である。
【0005】
例えば、領収証(レシート)を含む文書をデータ化する場合、領収証の形式、領収証に含まれるテキストの内容、及び領収証に含まれるテキストの位置などのように、領収証に関連する様々な要素についての正確な分析が必要である。
【0006】
よって、イメージに含まれる情報を電子機器で処理できる形態のデータに加工するための様々な技術が開発されている。例えば、特許文献1においては、OCR(Optical Character Reader)データベースを構築する方法が開示されているが、これまで開発された方法は、人が経験的に定めた規則に従ってデータを分類するレベルのものであるので、OCRデータにエラーがある場合、不正確なデータベースが構築されるだけでなく、データベースを用いた検索が円滑に行われないことがある。
【0007】
一方、近年、各種検索サービスが提供されている。例えば、領収証を用いて当該領収証を使用した場所を検索するサービスが提供されている。よって、イメージ、音声、テキストなどの様々な形式のコンテンツに対してそれに対応するデータを検索する技術の必要性が高まっている。
【0008】
従来は、OCR認識エラーを補正するために、正規表現式などを活用した前処理技術に依存していた。このような方法は、時間とコストが多くかかり、補正性能が高くないという問題があった。
【0009】
また、複数のフィールド値を含むコンテンツの場合、所望の結果を得るために複数のフィールド情報を検索に用いなければならないが、一般的にはヒューリスティックなルールベースのモデルに依存していた。特に、どのフィールドを選択するかによって検索性能が大きく異なるか所望の検索結果が得られないという問題があった。
【0010】
よって、OCR認識エラーなどによりテキストが誤って認識された場合にも所望の検索結果が得られるようにする技術が求められている。
【先行技術文献】
【特許文献】
【0011】
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明は、異なるカテゴリーに属するフィールド値を含むデータを電子機器で活用できる形態のデータに埋め込み(embedding)、埋め込みの結果に基づいてデータを検索するための方法及びシステムを提供するものである。
【0013】
具体的には、本発明は、データに含まれる異なるカテゴリーの特徴を維持しながらも電子機器で活用できる形態のデータに埋め込むための方法及びシステムを提供する。
【0014】
また、本発明は、データベースから異なるフィールド値を含むデータに対応するデータを容易に検索できるようにする方法及びシステムを提供するものである。
【0015】
さらに、本発明は、テキスト認識エラーや音声認識エラーなどによりエラー値が含まれるデータに対応するデータを検索する場合にも、データベースから所望の結果を高い正確度で検索できるようにする方法及びシステムを提供するものである。
【課題を解決するための手段】
【0016】
上記課題を解決するために、本発明は、複数のフィールド値を含むコンテンツを受信するステップと、前記コンテンツに含まれるフィールド値を配列するが、前記フィールド値が属するカテゴリーを区分する複数の区分子を追加してモデル入力値を生成するステップと、前記モデル入力値及び学習されたディープラーニングモデルを用いて前記コンテンツのベクトルを生成するステップと、前記生成されたベクトルと既に保存された複数のデータのそれぞれに対応するベクトル間の類似度に基づいて、前記既に保存された複数のデータから検索対象データに対応するデータを検索するステップとを含む、データ検索方法を提供する。
【0017】
また、本発明は、複数のフィールド値を含むコンテンツを受信する通信部と、前記コンテンツに含まれるフィールド値を配列するが、前記フィールド値が属するカテゴリーを区分する複数の区分子を追加してモデル入力値を生成し、前記モデル入力値及び学習されたディープラーニングモデルを用いて前記コンテンツのベクトルを生成し、前記生成されたベクトルと既に保存された複数のデータのそれぞれに対応するベクトル間の類似度に基づいて、前記既に保存された複数のデータから検索対象データに対応するデータを検索する制御部とを含む、データ検索システムを提供する。
【発明の効果】
【0018】
前述したように、本発明は、データに含まれる複数のフィールド値が属するカテゴリーを区分してデータの埋め込みを行うので、データに含まれる異なるカテゴリーの特徴が維持されたベクトルを生成することができる。本発明は、生成された異なるカテゴリーの特徴が維持されたベクトルをデータ検索に活用することにより、既に保存されたデータと同じデータのみを検索することに限定されず、対象文書に含まれる複数のカテゴリーに属する値の類似度を考慮したデータ検索を行うことができる。
【0019】
また、本発明によれば、埋め込みの結果で生成されたベクトル間の類似度に基づいてデータを検索するので、データ検索時に人が定めた検索規則に依存して検索を行う必要がなくなる。
【0020】
さらに、本発明によれば、データのカテゴリー毎の類似度を考慮した検索が可能であるので、ノイズやエラーが頻繁に発生するデータ(例えば、文字認識データ(OCRデータ)、音声認識データ)を用いた検索時にも高い正確度でデータ検索を行うことができる。
【図面の簡単な説明】
【0021】
【
図1】本発明によるデータ検索システムを説明するための概念図である。
【
図2】本発明によるデータ検索方法を示す概念図である。
【
図3】本発明によるデータ検索方法を説明するためのフローチャートである。
【
図4】本発明によるデータ埋め込みモデルを説明するための概念図である。
【
図5】本発明によるデータの埋め込みの結果で生成されたベクトルをベクトル空間にフローティングした状態を示す概念図である。
【
図6a】OCRデータを用いてデータを検索する一実施形態を示す概念図である。
【
図6b】OCRデータを用いてデータを検索する一実施形態を示す概念図である。
【
図7】データの埋め込みの結果で生成されたベクトルを用いてデータを検索する一実施形態を示す概念図である。
【発明を実施するための形態】
【0022】
以下、添付図面を参照して本発明の実施形態について詳細に説明するが、図面番号に関係なく同一又は類似の構成要素には同一の符号を付し、それについての重複する説明は省略する。以下の説明で用いられる構成要素の接尾辞である「モジュール」や「部」は、明細書の作成を容易にするために付与又は混用されるものであり、それ自体が有意性や有用性を有するものではない。また、本発明の実施形態について説明するにあたり、関連する公知技術についての具体的な説明が本発明の実施形態の要旨を不明にすると判断される場合は、その詳細な説明を省略する。さらに、添付図面は本発明の実施形態の理解を助けるためのものにすぎず、添付図面により本発明の技術的思想が限定されるものではなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物乃至代替物を含むものと理解すべきである。
【0023】
「第1」、「第2」などのように序数を含む用語は様々な構成要素を説明するために用いられるが、上記構成要素は上記用語により限定されるものではない。上記用語は1つの構成要素を他の構成要素と区別する目的でのみ用いられる。
【0024】
ある構成要素が他の構成要素に「連結」又は「接続」されていると言及された場合は、他の構成要素に直接連結又は接続されていてもよく、中間にさらに他の構成要素が存在してもよいものと解すべきである。それに対して、ある構成要素が他の構成要素に「直接連結」又は「直接接続」されていると言及された場合は、中間にさらに他の構成要素が存在しないものと解すべきである。
【0025】
単数の表現には、特に断らない限り複数の表現が含まれる。
【0026】
本明細書において、「含む」や「有する」などの用語は、本明細書に記載された特徴、数字、段階、動作、構成要素、部品又はそれらの組み合わせが存在することを指定しようとするもので、1つ又はそれ以上の他の特徴、数字、段階、動作、構成要素、部品又はそれらの組み合わせの存在や付加可能性を予め排除するものではないと理解すべきである。
【0027】
本明細書において、コンテンツとは、コンピュータで処理可能な各種情報やその内容物を意味し、テキスト、イメージ、音声、ファイルなど、様々な形態であり、特定の形態に限定されない。
【0028】
カテゴリーとは、定義された分類内で任意のレベルにある項目を意味する。特定のカテゴリーに属するデータと他のカテゴリーに属するデータとを区分する基準は、絶対的であるのではなく、カテゴリーを規定する任意の規則によって異なる。このような規則は、原本コンテンツ(例えば、紙文書、紙文書を撮影したイメージ、音声データ)とそれを構造化したデータとに異なって適用される。
【0029】
例えば、様々な種類の領収証などの文書は、売場名、事業者番号、売場電話番号、売場住所、注文商品名、注文商品数量など、販売者及び消費者に関連する複数のカテゴリーを含み、データの効率的な処理のために紙文書に含まれるデータを、同一のカテゴリー同士を関連付けてデータ化する必要がある。
【0030】
例えば、紙文書である特定の領収証は、「売場名」、「注文商品名」、「注文商品数量」という3つのカテゴリーを含むが、当該紙文書に含まれるデータをデジタル化する際には、「売場名」、「注文商品」という2つのカテゴリーに縮小してもよい。
【0031】
一方、本明細書においては、特定のカテゴリーの属性を示すデータをフィールド名(例えば、「売場名:」、「数量:」、「電話番号」など)と定義し、特定のカテゴリーの値を示すデータをフィールド値(例えば、「NLP CAFE」、「S City」、「01-234-568」など)と定義する。
【0032】
一方、コンテンツの種類に関係なく、各コンテンツは、フィールド名及びフィールド値を含んでもよい。例えば、紙文書、紙文書のイメージ、音声データのそれぞれは、フィールド名及びフィールド値を含んでもよい。よって、フィールド名及びフィールド値は、テキスト、イメージ、音声データなど、様々な形態を有する。
【0033】
一方、機械で処理可能な形式のデータの観点から、前記フィールド名は「属性」と称され、前記フィールド値は「値」と称される。
【0034】
上記用語の定義によれば、コンテンツは、同一のカテゴリーに含まれる「属性-値」対のデータを含んでもよい。ただし、これに限定されるものではなく、コンテンツは、特定のカテゴリーに対しては、フィールド名を含まず、フィールド値のみを含んでもよい。この場合、前記フィールド名が省略されているだけであり、省略されたフィールド名に対応するフィールド値はフィールド名に関連する意味を含む。
【0035】
一方、コンテンツは、フィールド値を含まず、フィールド名のみを含んでもよい。この場合、特定の項目に割り当てられた値が存在せず、特定の項目に割り当てられた値が存在しなくても、当該特定の項目が存在することがある。
【0036】
上記例示において、紙文書(又は紙文書を撮影したイメージ)は、文字認識により、電子機器で処理可能なテキストに変換され、変換されたテキストは、異なるカテゴリーに分類される。よって、異なるカテゴリーに属するフィールド値を含むデータが生成される。
【0037】
一方、異なるカテゴリーに属するフィールド値を含むデータは、OCRだけでなく、他の方式で収集されたテキストに基づいて生成することもできる。例えば、音声認識結果物により、異なるカテゴリーに属するフィールド値を含むデータを生成することができる。具体的には、音声認識により認識されたユーザの音声がテキストに変換され、変換されたテキストが異なるカテゴリーに分類されて電算化される。
【0038】
前述したように、異なるカテゴリーに属するフィールド値を含むデータは、様々な方法で生成することができる。本発明は、既に保存されたデータベースから前記生成されたデータに対応するデータを検索する方法及びシステムを提供する。
【0039】
一方、本発明によるデータ検索は、前記コンテンツに対するデータの埋め込みの結果で生成されたベクトルに基づいて行われる。
【0040】
本発明は、異なるカテゴリーに属するフィールド値を含むデータの検索を効率的に行う方法を提供する。具体的には、本発明は、異なるカテゴリーに属するフィールド値を含むデータを機械が理解できる形態の情報に変換する効率的な埋め込みによりデータ検索の正確度を向上させる。
【0041】
本発明は、新たな方式のデータの埋め込みにより生成されたベクトルを用いてデータ検索の正確度を向上させるデータ検索方法及びシステムを提供する。
【0042】
以下、新たな方式のデータの埋め込みについて、添付図面を参照して具体的に説明する。
【0043】
図1は本発明によるデータ検索システムを説明するための概念図であり、
図2は本発明によるデータ検索方法を示す概念図である。
【0044】
本発明によるデータ検索システム100は、アプリケーション又はソフトウェアの形態で実現されてもよい。本発明によるデータ検索システム100のソフトウェア的な実現によれば、本明細書で説明されるプロセスや機能などの実施形態は、別途のソフトウェアモジュールで実現されてもよい。ソフトウェアモジュールのそれぞれは、本明細書で説明される1つ以上の機能及び動作を行うことができる。
【0045】
本発明によるソフトウェア的な実現は、
図1に示すデータ検索システム100により実現される。以下、データ検索システム100の構成についてより具体的に説明する。
【0046】
本発明によるデータ検索システム100は、複数のフィールド値を含むコンテンツを受信することができる。受信されたコンテンツは、データ検索システム100に必要な形態でデータ化される。
【0047】
例えば、本発明によるデータ検索システム100は、紙文書のイメージを受信し、イメージに対するテキスト認識によりOCRデータを生成することができる。本明細書において、OCRデータは、イメージから抽出されたテキスト及び抽出されたテキストに対応する位置情報を含んでもよい。ここで、位置情報は、抽出されたテキストのイメージ(又は紙文書)内の位置を定義する。本発明によるデータ検索システム100は、前記抽出されたテキストを異なるカテゴリーに分類することができる。
【0048】
他の例として、本発明によるデータ検索システム100は、音声データを受信し、音声データをテキストに変換し、その後変換されたテキストを異なるカテゴリーに分類することができる。
【0049】
一方、本発明によるデータ検索システム100は、
図1に示すように、通信部110、保存部120、OCR部130、制御部140及び音声認識部150の少なくとも1つを含む。ただし、これに限定されるものではなく、本発明によるデータ検索システム100は、上記構成要素より多いか又は少ない構成要素を含んでもよく、上記構成要素の少なくとも一部は物理的に離隔した位置に配置されてもよい。
【0050】
まず、通信部110は、紙文書をスキャンしたイメージ10又は音声データを受信する手段であって、通信部、スキャン部及び入力部の少なくとも1つを含むようにしてもよく、その他のイメージ10を受信する手段からなるようにしてもよい。
【0051】
データ検索システム100は、通信部110を介して受信したイメージ10又は音声データなどのコンテンツを受信し、コンテンツに対するデータの埋め込みを行うことができる。
【0052】
次に、保存部120は、本発明による様々な情報を保存するようにしてもよい。保存部120は、その種類が非常に多様であり、少なくとも一部はDB(データベース)160を含んでもよい。DB160は、データ検索システム100から物理的に離隔した外部サーバ又はクラウドサーバであってもよく、データ検索システム100は、DB160との通信によりDB160を保存部120のように活用することができる。
【0053】
すなわち、保存部120は、本発明に関連する情報が保存される空間であればよく、物理的な空間の制約はない。本明細書においては、保存部120とDB160を区分せず、DB160に保存されたデータも保存部120に保存されたデータとして説明する。
【0054】
保存部120には、i)コンテンツの生成に活用されるデータ(紙文書をスキャンしたイメージ10又は音声データ)及びそれに関連するデータ、ii)データ埋め込みモデルの機械学習に活用される学習データ、iii)埋め込まれたデータの少なくとも1つが保存される。
【0055】
次に、OCR部130は、イメージ10に含まれるテキストを認識する手段であって、様々なテキスト認識アルゴリズムの少なくとも1つによりイメージ10に含まれるテキストを認識することができる。OCR部130は、人工知能に基づくアルゴリズムを用いて、テキストを認識することができる。
【0056】
OCR部130は、イメージ10に含まれるテキスト及びテキストの位置情報を抽出することができる。ここで、テキストの位置情報には、イメージ10内でのテキストの位置に関する情報が含まれる。
【0057】
次に、制御部140は、本発明に関連するデータ検索システム100の全般的な動作を制御する。制御部140は、人工知能アルゴリズムを処理するプロセッサ(又は人工知能プロセッサ)を含んでもよい。
【0058】
また、制御部140は、データの埋め込みのための作業領域を提供し、このような作業領域は、データの埋め込みを行うか、又はデータの埋め込みのための機械学習を行うための「ユーザ環境」又は「ユーザインタフェース」とも命名される。
【0059】
このような作業領域は、電子機器のディスプレイ部に出力(又は提供)されるようにしてもよい。さらに、制御部140は、電子機器に備えられるか又は電子機器と連動するユーザ入力部(例えば、タッチスクリーン、マウスなど)を介して受信されるユーザ入力に基づいて、データの埋め込みを行うか、又はデータの埋め込みのための機械学習を行うことができる。さらに、制御部140は、コンテンツ10を受信し、受信したコンテンツ10に対応するデータを保存部120に保存されたデータ240a、240b及び保存部120に保存された他のデータから検索することができる。
【0060】
なお、本発明において、作業領域が出力される電子機器の種類に特に制限はなく、本発明によるアプリケーションを起動できるものであればよい。例えば、電子機器には、スマートフォン、携帯電話、タブレットPC、コンピュータ、ノートブックコンピュータ、デジタル放送用端末、PDA(Personal Digital Assistants)、PMP(Portable Multimedia Player)、スマートミラー(smart mirror)及びスマートテレビ(smart TV)の少なくとも1つが含まれる。
【0061】
本発明において、電子機器又は電子機器に備えられるディスプレイ部、ユーザ入力部に対しては符号を付さない。しかし、本発明における作業領域は、電子機器のディスプレイ部に出力され、ユーザ入力が電子機器に備えられるか又は電子機器と連動するユーザ入力部を介して受信されることは、当業者にとって自明である。
【0062】
一方、本発明によるデータ検索システムは、既に保存されたデータからコンテンツに対応するデータを検索することができる。
【0063】
以下、本発明によるデータ検索システムを用いる例として、紙文書のイメージ10を受信して既に保存されたデータから当該イメージに対応するデータを検索する過程について説明する。受信されるコンテンツがイメージに限定されないことは前述した通りである。
【0064】
図2に示すように、本発明によるデータ検索システムは、紙文書のイメージ10を受信し、テキスト認識によりイメージ10からテキスト及びテキストの位置情報を抽出220する。ここで、紙文書の損傷210などにより、テキストの文字が正確に認識されないことがあり、このような場合をノイズ221があるという。その後、データ検索システムは、抽出されたテキスト220を異なる複数のカテゴリーのそれぞれに分類し、構造化されたデータ230を生成する。ここで、構造化されたデータは、既に定められた形式(例えば、JSON、XML)で表される。
【0065】
データ検索システム100は、それを用いて、既に保存された複数のデータ240a、240b及び保存部120に保存された他のデータからイメージ10に対応するデータ240aを検索する。
【0066】
ここで、本発明は、異なるカテゴリーに属する複数のフィールド値を含むコンテンツに対する埋め込みを行い、データ検索に活用する。以下、コンテンツに対するデータの埋め込み方法についてより具体的に説明する。
【0067】
以下、前述したデータ検索システムを用いてデータの埋め込みを行う方法についてより具体的に説明する。特に、以下では、フローチャートを参照して、データの埋め込み方法についてまず説明する。
【0068】
図3は本発明によるデータ検索方法を説明するためのフローチャートであり、
図4は本発明によるデータ埋め込みモデルを説明するための概念図であり、
図5は本発明によるデータの埋め込みの結果で生成されたベクトルをベクトル空間にフローティングした状態を示す概念図である。
【0069】
本発明によるデータ検索方法においては、コンテンツを受信するステップが行われる(S110)。
【0070】
前記コンテンツは、複数のフィールド値を含み、前記フィールド値は、複数の異なるカテゴリーにそれぞれ対応するようにしてもよい。前述したように、前記コンテンツは、フィールド値のカテゴリーが区分された形態のデータであるか、又はこのような形態に加工される。例えば、複数のフィールド値とそのカテゴリーは、既に定められた形式(例えば、JSONやXMLなど)で表される。
【0071】
すなわち、本発明によるデータ検索システムは、外部からフィールド値のカテゴリーが区分された形態のデータを受信するか、原本データ(紙文書のイメージ又は音声データ)を受信し、その後原本データに基づいてフィールド名-フィールド値で区分された形態のデータを生成して検索に活用することができる。
【0072】
次に、前記コンテンツに含まれるフィールド値を配列するが、前記フィールド値が属するカテゴリーに基づいて前記フィールド値のカテゴリーを区分する複数の区分子を追加してモデル入力値を生成するステップが行われる(S120)。
【0073】
本発明によるデータ検索システム100は、複数のフィールド値を順次配列してデータの埋め込みのためのディープラーニングモデルの入力値を生成する。ここで、データ検索システム100は、複数のフィールド値のそれぞれが属するカテゴリーを区分する区分子を活用して、異なるカテゴリーに属するフィールド値が区分されるようにモデル入力値を生成することができる。カテゴリーを区分するためのカテゴリー区分子の他にも、データ入力の開始又は終了を示す区分子、該当フィールド値がないことを示す区分子などをさらに用いてもよい。
【0074】
例えば、データ検索システム100は、コンテンツに含まれるフィールド値を所定の順序で連結して1つのデータを生成し、フィールド値の前部又は後部に区分子を配列する。よって、モデル入力値は、複数のフィールド値と複数の区分子が所定の順序で一列に配列されたデータであってもよい。
【0075】
一方、前記フィールド値は、複数のカテゴリーにそれぞれ対応し、モデル入力値に追加される前記複数の区分子は、前記複数のカテゴリーにそれぞれ対応する。すなわち、モデル入力値には、複数のカテゴリーのそれぞれに対応するフィールド値及び区分子が含まれる。
【0076】
ここで、同一のカテゴリーに属するフィールド値及び区分子は、互いに隣接して配列される。すなわち、複数のカテゴリーのうち特定のカテゴリーに対応する特定の区分子及び特定のフィールド値は、互いに隣接して配列される。本明細書においては、同一のカテゴリーに属するフィールド値及び区分子のいずれかを称する際に、フィールド値に対応する区分子及び区分子に対応するフィールド値と説明する。
【0077】
特定のフィールド値に対応する特定の区分子は、特定のフィールド値の前部又は後部に配列されてもよい。よって、モデル入力値に含まれる一部の区分子は、モデル入力値の前部又は後部に配列されてもよく、異なるフィールド値間に配列されてもよい。
【0078】
図2を参照すると、イメージ10の入力に対して、モデル入力値は、「[CLS]NLP COFFEE[SEP_Name]S City[SEP_Address]」のように生成される。ここで、「[]」(「[]」の内部のテキストを含む)は、特定の役割を果たす区分子又は異なるカテゴリーに属するフィールド値を区分する区分子であり、「[]」で区分されないテキストは、コンテンツに含まれるフィールド値を示す。例示において、[CLS]は、データ全体を代表するクラス区分子、[SEP_Name]は、名称フィールド値の終了を示すカテゴリー区分子、[SEP_Address]は、住所フィールド値の終了を示すカテゴリー区分子である。
【0079】
一方、前記コンテンツに特定のカテゴリーを定義するフィールド名が含まれ、前記特定のカテゴリーに対応するフィールド値が含まれない場合、前記モデル入力値は、前記特定のカテゴリーに対応する特殊な区分子(マスク)を含んでもよい。前記マスクは、前記特定のカテゴリーに対応する区分子に隣接して配列されてもよい。
【0080】
フィールド値がない場合、前記特定のコンテンツから生成されたモデル入力値は、該当カテゴリーに対応するフィールド値が配列されなければならない位置にマスクを代わりに配列することにより構成してもよい。例えば、特定のコンテンツに「事業者登録番号」を定義するフィールド名が含まれるが、フィールド値は、それに対応するマスク([MASK_biz])で表され、モデル入力値は、「[CLS]NLP CAFE[SEP_name]S city[MASK_biz][SEP_biz]」のように生成される。
【0081】
次に、前記モデル入力値及び学習されたディープラーニングモデルを用いて前記コンテンツのベクトルを生成するステップが行われる(S130)。
【0082】
ここで、前記モデル入力値に含まれる前記フィールド値のそれぞれを少なくとも1つの第1タイプトークンに変換するステップ、及び前記複数の区分子のそれぞれを第2タイプトークンに変換するステップが行われてもよい。
【0083】
データ検索システム100は、前記複数のカテゴリーのそれぞれに対応する第1タイプトークンが互いに区分されるように、特定のカテゴリーに対応するフィールド値及び区分子から変換された第1及び第2タイプトークンを互いに隣接して配列する。
【0084】
ここで、1つのフィールド値に対応する第1タイプトークンは、1つ以上生成されてもよい。
【0085】
一実施形態において、1つのフィールド値から複数の第1タイプトークンが生成されるようにしてもよい。1つの単語又は複数の単語からなるフィールド値は、トークン変換過程で複数のテキストに分割され、分割されたテキストの少なくとも一部には、既に設定されたテキストが結合されるようにしてもよい。例えば、モデル入力値に含まれるフィールド値「NLP COFFEE」は、複数の第1タイプトークン(「NL」、「♯P」、「COFF」、「♯EE」)に変換される。ここで、第1タイプトークンに含まれるテキスト「♯」は、前のトークンとの間が空白でないことを定義するテキストであって、フィールド値から分割された一部のテキストに結合されるようにしてもよい。
【0086】
前記フィールド値のうち特定のフィールド値に対応する第1タイプトークンは、1つ又はそれ以上から構成されてもよく、前記特定のフィールド値に対応する複数の第1タイプトークンは、互いに隣接して配列されてもよい。例えば、フィールド値「NLP COFFEE」から生成された複数の第1タイプトークン(「NL」、「♯P」、「COFF」、「♯EE」)は、順次配列されてもよい。
【0087】
一方、第2タイプトークンは、モデル入力値に含まれる複数の区分子のそれぞれから変換されたものであってもよい。
【0088】
一実施形態において、第2タイプトークンは、異なるカテゴリーに属するフィールド値を区分するようになっているが、第2タイプトークン自体が特定の意味を含まない形態からなるようにしてもよい。例えば、第2タイプトークンは、[SEP1]、[SEP2]、[SEP3]の形態からなるようにしてもよい。
【0089】
他の一実施形態において、第2タイプトークンのそれぞれは、当該第2タイプトークンに対応するカテゴリーの属性を示す値を含んでもよい。具体的には、複数の第2タイプトークンは、前記複数のカテゴリーを示すテキストをそれぞれ含み、前記第2タイプトークンのうちいずれか1つに含まれるテキストと他の1つに含まれるテキストとは異なるものであってもよい。例えば、第2タイプトークンは、[SEP_Name]、[SEP_Address]のように、特定のカテゴリーのフィールド名を含んでもよい。
【0090】
一方、特定のカテゴリーに属するフィールド値から変換された第1タイプトークンが複数である場合、前記特定のカテゴリーに対応する第2タイプトークンは、前記複数の第1タイプトークンのうち最初に配列された第1タイプトークンの前部又は前記複数の第1タイプトークンのうち最後に配列された第1タイプトークンの後部に配列されるようにしてもよい。
【0091】
例えば、モデル入力値「[CLS]NLP_COFFEE[SEP_Name]S City[SEP_Address]」から変換された第1及び第2タイプトークンは、「[CLS]/NL/♯P/COFF/♯EE/[SEP1]/S/Ci/♯ty/[SEP2]」のように配列される。(「/」は単にトークンを区分するための表示である)なお、モデル入力値がマスクを含む場合、マスクトークンは、マスクトークンに対応する第2タイプトークンに隣接して配列される。
【0092】
配列された第1、第2タイプトークン及びマスクトークンが既に学習されたディープラーニングモデルに入力され、コンテンツに対応するベクトルが生成される。
【0093】
データの埋め込みのためのディープラーニングモデルとしては、シーケンスを埋め込む際に活用できるモデル、具体的にはRNN又はTransformer類のモデル(例えば、BERTなど)を活用することができる。
【0094】
学習されたディープラーニングモデルは、異なるカテゴリーに属するフィールド値を含む構造化されたデータのベクトルを生成する。具体的には、前記学習されたディープラーニングモデルは、保存部120に保存されたデータのそれぞれのベクトルを生成し、受信したコンテンツのベクトルを生成する。すなわち、コンテンツ及び前記コンテンツを用いて検索しようとする既に保存されたデータをベクトル化する。
【0095】
図5を参照してコンテンツのベクトルを生成する一実施形態について説明すると、例えば、制御部140は、対象文書のイメージ510に対してOCR520を行ってOCRデータを生成し、OCRデータから異なるカテゴリーに属する複数のフィールド値を含む構造化されたデータ530を生成し、データの埋め込み540によりコンテンツ530のベクトルを生成する。
【0096】
一方、既に保存されたデータも、学習されたディープラーニングモデルによりベクトル化される。既に保存されたデータのそれぞれに対応するベクトル551a~553a、551b~554b、551c~554cは、ベクトル平面上に示される。既に保存されたデータのベクトルの生成時に既に保存されたデータを構造化されたデータに変換するステップ(例えば、510及び520)は省略される。
【0097】
図5においては、説明の便宜上、データの埋め込みにより生成されるベクトルを2次元的に示すが、データの埋め込みにより生成されるベクトルは2次元より大きい次元のベクトルであってもよい。
【0098】
一方、
図5においては、説明の便宜上、データの埋め込みが行われるデータを2種類のカテゴリー(name、tel)のみを含むものとして説明するが、データの埋め込みが行われるデータはそれより多い数のフィールドを含んでもよい。
【0099】
同図に示すように、フローティングされた複数のベクトルのうち、一部のベクトル551a~553aは、第1領域550a内で互いに隣室して配置される。なお、他の一部のベクトル551b~554bは、第2領域550b内で互いに隣室して配置される。さらに他のベクトル551c~554cは、第3領域550c内で互いに隣室して配置される。
【0100】
ディープラーニングモデルは、データ間の類似度に応じてベクトル間の距離が異なるように訓練される。具体的には、ディープラーニングモデルは、データ間の類似度が高いほど近い位置に配置され、データ間の類似度が低いほど遠い位置に配置されるように訓練される。
【0101】
OCRデータに基づいて生成されたコンテンツ530に対するデータの埋め込みの結果で生成されたベクトルは、第1領域550a上にフローティングされる。
【0102】
前述したように、本発明は、データに含まれる複数のフィールド値が属するカテゴリーを区分してデータの埋め込みを行うので、データに含まれる異なるカテゴリーの特徴が維持されたベクトルを生成することができる。
【0103】
また、本発明は、生成された異なるカテゴリーの特徴が維持されたベクトルをデータ検索に活用することにより、既に保存されたデータと同じデータのみを検索することに限定されず、対象文書に含まれる複数のカテゴリーに属する値の類似度を考慮したデータ検索を行うことができる。以下、前記ベクトルを活用したデータ検索について具体的に説明する。
【0104】
図6a及び
図6bはOCRデータを用いてデータを検索する一実施形態を示す概念図であり、
図7はデータの埋め込みの結果で生成されたベクトルを用いてデータを検索する一実施形態を示す概念図である。
【0105】
ディープラーニングを用いて前記コンテンツのベクトルを生成し、その後前記生成されたベクトルと既に保存された複数のデータのそれぞれに対応するベクトル間の類似度に基づいて、前記既に保存された複数のデータから検索対象データに対応するデータを検索するステップが行われる(S140)。
【0106】
前述した作業領域には、イメージを用いてデータを検索するためのインタフェース画面を表示することができる。
【0107】
図6a及び
図6bを参照すると、作業領域には、検索対象コンテンツ、例えば領収証のイメージ600が出力される。イメージ600は、既に保存されたイメージのいずれかであるか、作業領域を表示する電子機器に内蔵されたカメラにより撮影されたイメージであるか、作業領域を表示する電子機器以外の他の装置から受信されたイメージであってもよい。
【0108】
一方、作業領域には、イメージ600に対するOCRの結果で抽出されたテキストを表示することができる。OCRの結果で抽出されたテキストのうちフィールド名に分類されたデータは、前記抽出されたテキストがそのまま表示されるのではなく、既に保存されたテキストが表示されるようにしてもよく、また、抽出されたテキストに存在しなくても作業領域上に表示されるようにしてもよい。
【0109】
例えば、
図6aを参照すると、イメージ600には、売場名に関するカテゴリーが存在するが、当該カテゴリーに関するフィールド名は含まれていない。制御部140は、フィールド値「HLP Coffee」の意味に基づいて、イメージ600に売場名に関するカテゴリーが存在すると判断し、作業領域に既に保存されたフィールド名(「name」611)を表示することができる。
【0110】
一方、制御部140は、第2タイプのデータ「カフェラッテ(hot)」に基づいて、イメージ600に商品名に関するカテゴリーが存在すると判断する。ここで、制御部140は、抽出されたテキストに商品名に関するカテゴリーに対応するフィールド名「商品名」が存在するが、既に保存されたフィールド名「item1」を作業領域上に表示することができる。
【0111】
前述したように、作業領域には、OCRの結果で抽出されたテキストを、フィールド名611~615及びフィールド値621~625に区分して表示することができる。ここで、制御部140は、同一のカテゴリーに属するフィールド名及びフィールド値をマッチングさせ、そのマッチングの結果に基づいてデータを表示することができる。例えば、同一のカテゴリーに属するフィールド名「name」及びフィールド値「HLP Coffee」がマッチングされ、作業領域上で互いに隣接して表示される。
【0112】
制御部140は、抽出されたテキストの意味に基づいて同一のカテゴリーに属するデータをマッチングさせてコンテンツを生成し、生成されたコンテンツ及びディープラーニングモデルを用いてベクトルを生成する。その後、生成されたベクトルと既に保存された複数のデータのベクトル間の距離を比較し、その比較の結果に基づいて、前記既に保存された複数のデータのベクトルから少なくとも1つを選択する。
【0113】
制御部140は、学習されたディープラーニングモデルを用いてデータベースに既に保存された「属性-値」形式のデータを前述したベクトルに変換する。データベースに既に保存されたデータは、
図5で説明したように、ベクトル空間に表すことができる。
【0114】
制御部140は、前記コンテンツのベクトルと既に保存された他のベクトル間の距離を算出し、既に保存された他のベクトルから少なくとも1つのベクトルをベクトル間の距離が小さい順に選択することができる。
【0115】
その後、制御部140は、前記選択されたベクトルに対応するデータを出力することができる。前記選択されたベクトルに対応するデータは、前述した作業領域上に表示することができる。
【0116】
このために、本発明によるデータ埋め込みモデルは、前述したベクトルを「属性-値」対からなる形式のデータに変換するデコーダ(decoder)を含んでもよい。前記デコーダは、特定のベクトルの生成時に入力データとして活用されたデータと同じ形態のデータに変換するように機械学習される。よって、前記デコーダは、複数のフィールド値が属するカテゴリーが区分された形態のデータ(例えば、JSON、XML)を出力する。
【0117】
例えば、
図6bを参照すると、作業領域には、
図6aで説明したイメージから生成されたコンテンツに対応するベクトルからの距離が最も近い第1ベクトル及び2番目に近い第2ベクトルのそれぞれに対応する「属性-値」対からなるデータ631、632が表示される。前記データのうち、
図6aで説明したイメージ600に対応するデータ631が含まれる。
【0118】
より具体的には、
図7を参照すると、制御部140は、既に保存された複数のデータに対応するベクトル551a~553cと前記コンテンツに対応するベクトル560間の距離を算出する。その結果、既に保存された複数のデータに対応するベクトル551a~553cのそれぞれに対する距離d1~d3が算出される。制御部140は、既に保存されたデータに対応するベクトル551a~553cからコンテンツに対応するベクトル560からの距離が最も近いベクトル552aを選択し、ベクトル552aを「属性-値」対のデータ(Name:NLP COFFEE、Tel:01-234-567)に変換して出力することができる。
【0119】
前述したように、本発明によれば、埋め込みの結果で生成されたベクトル間の類似度に基づいてデータを検索するので、データ検索時に人が定めた検索規則に依存して検索を行う必要がなくなる。
【0120】
また、本発明によれば、データのカテゴリー毎の類似度を考慮した検索が可能であるので、ノイズやエラーが頻繁に発生するデータ(例えば、OCRデータ、音声認識データ)を用いた検索時にも高い正確度でデータ検索を行うことができる。
【0121】
一方、前述した本発明は、コンピュータで1つ以上のプロセスにより実行され、コンピュータ可読媒体(又は記録媒体)に格納可能なプログラムとして実現することができる。
【0122】
また、前述した本発明は、プログラム記録媒体にコンピュータ可読コード又はコマンドとして実現することができる。すなわち、本発明は、プログラムの形態で提供することができる。
【0123】
一方、コンピュータ可読媒体は、コンピュータシステムにより読み取り可能なデータが記録されるあらゆる種類の記録装置を含む。コンピュータ可読媒体の例としては、HDD(Hard Disk Drive)、SSD(Solid State Disk)、SDD(Silicon Disk Drive)、ROM、RAM、CD-ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ記憶装置などが挙げられる。
【0124】
また、コンピュータ可読媒体は、ストレージを含み、電子機器が通信によりアクセスできるサーバ又はクラウドストレージであり得る。この場合、コンピュータは、有線又は無線通信により、サーバ又はクラウドストレージから本発明によるプログラムをダウンロードすることができる。
【0125】
さらに、本発明において、前述したコンピュータは、プロセッサ、すなわち中央処理装置(Central Processing Unit,CPU)が搭載された電子機器であり、その種類は特に限定されない。
【0126】
一方、本発明の詳細な説明は例示的なものであり、あらゆる面で限定的に解釈されてはならない。本発明の範囲は添付の特許請求の範囲の合理的解釈により定められるべきであり、本発明の均等の範囲内でのあらゆる変更が本発明の範囲に含まれる。
【符号の説明】
【0127】
10 イメージ
100 データ検索システム
110 通信部
120 保存部
130 OCR部
140 制御部
150 音声認識部
160 DB(データベース)