(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-28
(45)【発行日】2024-01-12
(54)【発明の名称】情報処理システム、情報処理方法および情報処理プログラム
(51)【国際特許分類】
G06F 16/951 20190101AFI20240104BHJP
【FI】
G06F16/951
(21)【出願番号】P 2021125943
(22)【出願日】2021-07-30
【審査請求日】2021-10-05
(73)【特許権者】
【識別番号】594027074
【氏名又は名称】エムオーテックス株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】金原 将人
(72)【発明者】
【氏名】▲曹▼ 炯旭
(72)【発明者】
【氏名】小原 岳士
(72)【発明者】
【氏名】西 悠介
(72)【発明者】
【氏名】井出 有加
(72)【発明者】
【氏名】永井 雄志郎
【審査官】酒井 恭信
(56)【参考文献】
【文献】特開2009-282745(JP,A)
【文献】特開2005-275488(JP,A)
【文献】特開2000-155633(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00 - 16/958
(57)【特許請求の範囲】
【請求項1】
1以上のコンピュータを備え、
前記1以上のコンピュータが、
アプリケーションによって表示された表示画像を取得する取得処理と、
1以上のコンポネントが含まれる学習画像と、当該コンポネントの座標および当該コンポネントの種類を示す情報との組を教師データとして機械学習を行うことにより生成された第1の学習モデルを用いて、前記取得処理において取得した前記表示画像を入力として、当該表示画像に含まれる
1以上のコンポネントのうちの
コンポネントの種類が入力対象の各コンポネントの座標である各入力対象の位置を推定する推定処理と、
クローリングを行うために、前記推定処理において推定した前記各入力対象の位置を指定して前記アプリケーションに対する入力を行う入力処理と、
を実行することを特徴とする情報処理システム。
【請求項2】
前記第1の学習モデルは、1以上のコンポネントが含まれる学習画像と、当該コンポネントの座標および当該コンポネントの種類を示す情報とに加えて、コンポネント間の関連性を示す情報および当該コンポネントの文字情報との組を教師データとして機械学習を行うことによって生成され、
前記推定処理では、前記1以上のコンピュータが、
前記取得処理において取得した前記表示画像を前記第1の学習モデルに入力することによって取得する情報であって、当該表示画像に含まれる1以上のコンポネントのうちのコンポネントの種類が前記各入力対象の周辺のコンポネント間の関連性を示す情報および前記コンポネントの文字情報
と、当該文字情報と入力情報とが関連付けられた第1のデータベースを参照して、前記各入力対象に入力する入力情報をさらに推定し、
前記入力処理では、前記1以上のコンピュータが、前記推定処理において推定した前記入力情報を前記各入力対象に入力することを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記推定処理では、前記1以上のコンピュータが、第2の学習モデルを用いて、前記表示画像を入力として、
当該表示画像に含まれる1以上のコンポネントのうちの入力対象の周辺のコンポネントの文字情報に応じた前記入力情報を推定し、
前記入力処理では、前記1以上のコンピュータが、前記アプリケーションに対し、前記推定処理において推定した情報の前記各入力対象への入力が成功したか否かを判定し、
前記第2の学習モデルは、前記学習画像と、前記学習画像に含まれる1以上のコンポネント
のうちの各入力対象の周辺のコンポネントの文字情報と、
前記学習画像の前記各入力対象に対する入力処理において前記各入力対象に対する入力が成功した
入力情報との組を教師データとして機械学習を行うことにより生成されたものであることを特徴とする請求項2に記載の情報処理システム。
【請求項4】
前記推定処理では、前記1以上のコンピュータが、
前記取得処理において取得した前記表示画像を前記第1の学習モデルに入力することによって取得する情報であって、当該表示画像に含まれる1以上のコンポネントの文字情報を参照して、当該表示画像が果たす役割を推定し、当該表示画像が果たす役割
と入力情報とが関連付けられた第2のデータベースを参照して前記入力情報を推定
し、
前記推定処理では、前記1以上のコンピュータが、前記学習画像と、前記学習画像に含まれる1以上のコンポネントの文字情報と、前記学習画像が果たす役割との組を教師データとして機械学習を行うことにより生成された第3の学習モデルを用いて、前記表示画像を入力として、当該表示画像に含まれる1以上のコンポネントの文字情報に関連した当該表示画像が果たす役割を推定する
することを特徴とする請求項
2に記載の情報処理システム。
【請求項5】
前記1以上のコンピュータが、前記入力処理を行った後に、前記取得処理を行うことによって、前記表示画像がどのように遷移するのかを特定する特定処理をさらに実行することを特徴とする請求項1~
4のいずれか1項に記載の情報処理システム。
【請求項6】
前記アプリケーションはウェブブラウザであり、
前記取得処理では、前記1以上のコンピュータが、前記アプリケーションによる通信内容をさらに取得することを特徴とする請求項1~
5のいずれか1項に記載の情報処理システム。
【請求項7】
前記第1の学習モデルは、ウェブブラウザによって表示されたウェブページを示す学習画像
であって、1以上のコンポネントが含まれる学習画像と、当該ウェブページのソースから算出された
当該コンポネントの座標および当該コンポネントの種類を示す情報との組を教師データとして機械学習したものであることを特徴とする請求項1~
6のいずれか1項に記載の情報処理システム。
【請求項8】
1以上のコンピュータが、
アプリケーションによって表示された表示画像を取得する取得処理と、
1以上のコンポネントが含まれる学習画像と、当該コンポネントの座標および当該コンポネントの種類を示す情報との組を教師データとして機械学習した第1の学習モデルを用いて、前記取得処理において取得した前記表示画像を入力として、当該表示画像に含まれる
1以上のコンポネントのうちの
コンポネントの種類が入力対象の各コンポネントの座標である各入力対象の位置を推定する推定処理と、
クローリングを行うために、前記推定処理において推定した前記各入力対象の位置を指定して前記アプリケーションに対する入力を行う入力処理と、
を実行することを特徴とする情報処理方法。
【請求項9】
1以上のコンピュータに、
アプリケーションによって表示された表示画像を取得する取得処理と、
1以上のコンポネントが含まれる学習画像と、当該コンポネントの座標および当該コンポネントの種類を示す情報との組を教師データとして機械学習した第1の学習モデルを用いて、前記取得処理において取得した前記表示画像を入力として、当該表示画像に含まれる
1以上のコンポネントのうちの
コンポネントの種類が入力対象の各コンポネントの座標である各入力対象の位置を推定する推定処理と、
クローリングを行うために、前記推定処理において推定した前記各入力対象の位置を指定して前記アプリケーションに対する入力を行う入力処理と、
を実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法および情報処理プログラムに関する。
【背景技術】
【0002】
ウェブブラウザによって表示されたウェブページのソースを分析し、ウェブページを巡回するクローリングという技術が従来から存在している。
【0003】
例えば、特許文献1には、URLのウェブページを辿ることにより、インターネットに対するクローリングを行いながら、それらのウェブページごとに含まれる検索対象の情報を収集する情報収集手段を備える検索システムが記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、耐クローリング性を有するウェブページなどの出現により、従来のようにソースの分析に基づいてクローリングをすることが難しくなった。
【0006】
そこで、本発明者らは独自の知見に基づき、ウェブページなどの表示画像のソースの分析の代わりにアプリケーションにより表示された表示画像に基づき、表示画像に含まれる各入力対象に自動的に入力を行い、クローリングを行うための技術を鋭意開発している。
【0007】
そのためには、アプリケーションによって表示された表示画像に基づいて各入力対象に好適に入力を行うことが可能な技術が必要となる。
【0008】
そこで、本発明の一態様は、アプリケーションによって表示された表示画像に基づいて各入力対象に好適に入力を行うことが可能な情報処理システムおよびその関連技術を実現することを主たる目的とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本発明の一態様に係る情報処理システムは、1以上のコンピュータを備え、前記1以上のコンピュータが、アプリケーションによって表示された表示画像を取得する取得処理と、1以上の入力対象が含まれる学習画像と、当該1以上の入力対象の各々の位置との組を教師データとして機械学習した第1の学習モデルを用いて、前記取得処理において取得した前記表示画像を入力として、当該表示画像に含まれる各入力対象の位置を推定する推定処理と、前記推定処理において推定した前記各入力対象の位置を指定して前記アプリケーションに対する入力を行う入力処理と、を実行する。
【0010】
本発明の一態様に係る情報処理方法は、1以上のコンピュータが、アプリケーションによって表示された表示画像を取得する取得処理と、1以上の入力対象が含まれる学習画像と、当該1以上の入力対象の各々の位置との組を教師データとして機械学習した第1の学習モデルを用いて、前記取得処理において取得した前記表示画像を入力として、当該表示画像に含まれる各入力対象の位置を推定する推定処理と、前記推定処理において推定した前記各入力対象の位置を指定して前記アプリケーションに対する入力を行う入力処理と、を実行する。
【0011】
本発明の一態様に係る情報処理プログラムは、1以上のコンピュータに、アプリケーションによって表示された表示画像を取得する取得処理と、1以上の入力対象が含まれる学習画像と、当該1以上の入力対象の各々の位置との組を教師データとして機械学習した第1の学習モデルを用いて、前記取得処理において取得した表示画像を入力として、当該表示画像に含まれる各入力対象の位置を推定する推定処理と、前記推定処理において推定した前記各入力対象の位置を指定して前記アプリケーションに対する入力を行う入力処理と、を実行させる。
【発明の効果】
【0012】
本発明の一態様によれば、アプリケーションによって表示された表示画像に基づいて各入力対象に好適に入力を行うことが可能な情報処理システムおよびその関連技術を実現できる。
【図面の簡単な説明】
【0013】
【
図1】実施形態1に係る情報処理システムの構成の一例を示すブロック図である。
【
図2】実施形態1に係る情報処理方法の一例を示すフロー図である。
【
図3】アプリケーションによって表示される表示画像の一例を示す図である。
【
図4】実施形態2に係る情報処理システムの構成の一例を示すブロック図である。
【
図5】実施形態2に係る情報処理方法の一例を示すフロー図である。
【
図6】特定処理によって特定された表示画像の遷移パターンの一例を示す図である。
【
図7】実施形態3に係る情報処理システムの構成の一例を示すブロック図である。
【
図8】実施形態3に係る情報処理方法の一例を示すフロー図である。
【
図10】実施形態4に係る情報処理システムの構成の一例を示すブロック図である。
【
図11】実施形態4に係る情報処理方法の一例を示すフロー図である。
【
図12】第2のデータベースの一例を示す図である。
【発明を実施するための形態】
【0014】
<実施形態1>
図1~4を用いて実施形態1を説明する。
図1は、本発明の実施形態1に係る情報処理システム1の構成の一例を示すブロック図である。
【0015】
〔情報処理システム1〕
図1のように、情報処理システム1は、クローラーサーバ(コンピュータ)11と、AI(Artificial Intelligence:人工知能)サーバ(コンピュータ)12とを備えている。クローラーサーバ11およびAIサーバ12は、後述の情報処理方法S1を実行する。
【0016】
[クローラーサーバ11]
クローラーサーバ11は、情報処理方法S1における取得処理S11と送信処理S12と受信処理S16と入力処理S17とを実行することにより、アプリケーションにより表示された表示画像を遷移させながら表示画像を取得するクローリング処理を実行する。
【0017】
クローラーサーバ11としては、前述の各処理を実行できるものであれば、任意のものコンピュータを用いることができる。
【0018】
図1に示すように、クローラーサーバ11は、メモリ111と、プロセッサ112と、ストレージ113と、を備える。メモリ111と、プロセッサ112と、ストレージ113とは、不図示のバスを介して互いに接続されている。このバスには、さらに、不図示の入出力インタフェース、および、不図示の通信インタフェースが接続されていてもよい。
【0019】
入出力インタフェースは、例えば、クローラーサーバ11が端末などの不図示の外部装置からアプリケーションによって表示された表示画像および学習画像の入力を受け付ける入力処理を実行するために利用される。
【0020】
通信インタフェースは、例えば、クローラーサーバ11とAIサーバ12とが以下の処理を実行するために利用される。
・クローラーサーバ11が、取得処理S11において取得した表示画像をAIサーバ12に送信する送信処理S12
・AIサーバ12が、推定処理S14において推定した各入力対象の位置をクローラーサーバ11がAIサーバ12から受信する受信処理S16
(メモリ111)
メモリ111は、クローラーサーバ11が、情報処理方法S1における取得処理S11と、送信処理S12と、受信処理S16と、入力処理S17とを実行するための情報処理プログラムP1、および、あらかじめ入力されている各入力対象に入力する入力情報の候補を記憶するための構成である。
【0021】
メモリ111としては、例えば、半導体RAM(Random Access Memory)などが挙げられる。
【0022】
(プロセッサ112)
プロセッサ112は、メモリ111に記憶された情報処理プログラムP1に従って、情報処理方法S1における取得処理S11と、送信処理S12と、受信処理S16と、入力処理S17と、を実行するための構成である。
【0023】
プロセッサ112としては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラおよびTPU(Tensor Processing Unit)などのASIC(Application Specific Integrated Circuit)ならびに、これらの組み合わせなどが挙げられる。
【0024】
(ストレージ113)
ストレージ113は、前述の情報処理プログラムP1を格納(不揮発保存)するための構成である。プロセッサ112は、情報処理方法S1を実行する際に、ストレージ113に格納された情報処理プログラムP1をメモリ111上に展開して参照する。
【0025】
ストレージ113としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、および、これらの組み合わせなどが挙げられる。
【0026】
[AIサーバ12]
AIサーバ12は、情報処理方法S1における受信処理S13と、推定処理S14と、送信処理S15と、を実行する。
【0027】
AIサーバ12としては、前述の各処理を実行できるものであれば任意のものコンピュータを用いることができる。
【0028】
図1に示すように、AIサーバ12は、メモリ121と、プロセッサ122と、ストレージ123と、を備える。メモリ121と、プロセッサ122と、ストレージ123とは、不図示のバスを介して互いに接続されている。このバスには、さらに、不図示の通信インタフェースが接続されていてもよい。
【0029】
通信インタフェースは、例えば、AIサーバ12とクローラーサーバ11とが以下の処理を実行するために利用される。
・クローラーサーバ11が取得処理S11において取得した表示画像を、AIサーバ12が受信する受信処理S13
・AIサーバ12が、アプリケーションによって表示された表示画像に含まれる各入力対象の位置など、推定処理S14において推定したものをクローラーサーバ11に送信する送信処理S15
【0030】
(メモリ121)
メモリ121は、AIサーバ12が情報処理方法S1における受信処理S13と、推定処理S14と、送信処理S15とを実行するための情報処理プログラムP2を記憶するための構成であり、例えば、半導体RAMなどが挙げられる。
【0031】
メモリ121は、1以上のコンポネントが含まれる学習画像と、当該コンポネントに関する情報との組を教師データとして機械学習した第1の学習モデルM1を記憶するための構成でもある。また、メモリ121は、推定処理S14において参照される第1のデータベースDB1を記憶するための構成でもある。
【0032】
(プロセッサ122)
プロセッサ122は、メモリ121に記憶された情報処理プログラムP2に従って、情報処理方法S1における受信処理S13と、推定処理S14と、送信処理S15と、を実行するための構成である。
【0033】
プロセッサ122としては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラおよびTPU(Tensor Processing Unit)などのASIC(Application Specific Integrated Circuit)ならびに、これらの組み合わせなどが挙げられる。
【0034】
(ストレージ123)
ストレージ123は、前述の情報処理プログラムP2を格納(不揮発保存)するための構成である。プロセッサ122は、情報処理方法S1を実行する際に、ストレージ123に格納された情報処理プログラムP2をメモリ121上に展開して参照する。ストレージ123としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、および、これらの組み合わせなどが挙げられる。
【0035】
〔情報処理方法S1〕
次に、
図2を用いて実施形態1に係る情報処理方法S1を説明する。
図2は、実施形態1に係る情報処理方法S1の一例を示すフロー図である。
【0036】
図2に示すように、情報処理方法S1は、取得処理S11と、送信処理S12と、受信処理S13と、推定処理S14と、送信処理S15と、受信処理S16と、入力処理S17と、を含み、情報処理システム1によってこの順で実行される。
【0037】
[取得処理S11]
クローラーサーバ11は、端末などの外部装置から、アプリケーションによって表示された表示画像を取得する取得処理S11を実行する。
【0038】
アプリケーションとしては、例えば、グラフィックユーザインタフェース(GUI:graphical user interface)などの各入力対象を含む表示画像を表示可能なウェブブラウザ、スマホアプリおよびデスクトップアプリなどが挙げられる。表示画像としては、端末などの外部装置のディスプレイにおけるアプリケーションの表示領域に表示されるウェブページなどの画像が挙げられる。
【0039】
クローラーサーバ11は、表示画像を取得できれば任意の方法によって表示画像を取得してよく、例えば、スクリーンショットのような、ディスプレイに表示された表示画像を取得する方法によって取得してもよい。すなわち、クローラーサーバ11は、ウェブページ内の個々の表示画像ではなく、ウェブページ全体を示す表示画像を取得してもよい。
【0040】
(取得処理S11の一例)
以下、
図3を用いてクローラーサーバ11による取得処理S11の一例を説明する。
図3は、アプリケーションによって表示される表示画像I1の一例を示す図である。
【0041】
図3に示すように、取得処理S11では、クローラーサーバ11は、ウェブブラウザであるアプリケーションによって、端末などの外部装置のディスプレイに表示されたウェブページを示す表示画像I1を取得する。
【0042】
[送信処理S12]
クローラーサーバ11は、通信インタフェースにより、取得処理S11において取得した表示画像をAIサーバ12に送信する送信処理S12を実行する。
【0043】
ここで、表示画像に含まれる各入力対象としては、入力処理S17を実行可能な対象であれば特に限定されず、例えば、入力フォーム、クリック用のボタンおよびクリック用のリンクなどのGUIのコンポネントが挙げられる。
【0044】
[受信処理S13]
AIサーバ12は、通信インタフェースにより、クローラーサーバ11が取得処理S11において取得した表示画像をクローラーサーバ11から受信する受信処理S13を実行する。
【0045】
[推定処理S14]
AIサーバ12は、クローラーサーバ11が取得処理S11において取得した表示画像を入力として、表示画像に含まれる各入力対象の位置を推定する推定処理S14を実行する。また、AIサーバ12は、各入力対象の周辺のコンポネントに関する情報を参照し、入力情報を推定する。
【0046】
推定処理S14により、各入力対象の位置が推定されるため、クローラーサーバ11は、所望の入力対象を指定して入力を行うことができる。また、推定処理S14により、各入力対象に対する入力情報が推定されるため、クローラーサーバ11は、アプリケーションによって表示された表示画像に基づいて、各入力対象に好適な入力情報を入力できる。
【0047】
推定処理S14において、AIサーバ12は、第1の学習モデルM1を用いる。第1の学習モデルM1とは、1以上のコンポネントが含まれる学習画像と、当該コンポネントに関する情報との組を教師データとして機械学習を行うことにより生成されたものである。このような教師データを用いて第1の学習モデルM1を生成することにより、推定処理S14において、AIサーバ12は表示画像における各入力対象の位置を好適に推定できる。
【0048】
画像に含まれるコンポネントとしては、例えば、入力対象のコンポネント、文字情報を含むコンポネント、および、その他の機能を有するコンポネントなどが挙げられる。
【0049】
コンポネントに関する情報としては、例えば、(i)コンポネントの座標、(ii)コンポネントの種類、(iii)コンポネント間の関連性を示す情報、および、(iv)コンポネントの文字情報、ならびに、これらの組み合わせなどが挙げられる。
(ii)コンポネントの種類には、入力対象のコンポネント、文字情報を含むコンポネント、および、その他の機能を有するコンポネントなどが挙げられる。より詳細には、文字情報を含む「テキスト」、入力欄を示す「入力フォーム」、郵便番号の入力欄を示す「郵便番号」、リンク先に遷移するボタンを示す「リンクボタン」および入力欄のリセットボタンを示す「リセットボタン」などがある。このうち、「入力フォーム」および「郵便番号」は、入力対象のコンポネントを示すものである。
【0050】
(iii)コンポネント間の関連性を示す情報は、例えば、以下のようなコンポネント間の関連性を示す情報などが挙げられる。
・左側の文字情報を含むコンポネントと、右側の入力対象のコンポネントとの関係性
・左右のその他の機能を有するコンポネント間の関係性
【0051】
(iv)コンポネントの文字情報としては、例えば、テキストのキーワードなどが挙げられる。
【0052】
教師データにおけるコンポネントに関する情報は、学習画像に基づいて、人手によって入力されたものであってもよいが、学習画像としてウェブページの表示画像を用いる場合、学習装置(不図示)がウェブページのソースに基づいて生成したものであってよい。
【0053】
この場合、学習装置は、ウェブブラウザによって表示されたウェブページを示す学習画像と、ウェブページのソースから算出されたコンポネントに関する情報の組を教師データとして機械学習させることによって、第1の学習モデルM1を生成してもよい。これにより、人手によらずコンポネントに関する情報を生成できる。
【0054】
学習装置はAIサーバ12とは全く独立した別の装置であり、生成した第1の学習モデルM1をAIサーバ12に提供してもよいし、AIサーバ12に含まれていてもよい。すなわち、AIサーバ12とは別の学習装置が第1の学習モデルM1を生成してもよいし、AIサーバ12自身が第1の学習モデルM1を生成してもよい。以下同様に、AIサーバ12とは別の学習装置がその他の学習モデルを生成してもよいし、AIサーバ12自身がその他の学習モデルを生成してもよい。
【0055】
(第1の学習モデルM1の生成の一例)
以下、
図3を用いて第1の学習モデルM1の生成の一例を説明する。
図3は、アプリケーションによって表示される表示画像I1の一例を示す図である。
図3の表示画像I1には、入力対象C1、入力対象C2、入力対象C3、入力対象C9および入力対象C10が含まれている。
【0056】
第1の学習モデルM1は、
図3のような、入力対象C1~C10が含まれる表示画像I1を学習画像とし、当該学習画像と、コンポネントに関する情報との組を教師データとして機械学習することによって生成される。
【0057】
図3のような表示画像I1を学習画像とする場合、以下のように、コンポネントに関する情報のうち、(i)コンポネントの座標と、(ii)コンポネントの種類とが紐づけられていてもよい。
・テキストC4~C8の座標と、「テキスト」との紐づけ
・入力対象C1およびC3の座標と、「入力フォーム」との紐づけ
・入力対象C2の座標と、「郵便番号」との紐づけ、
・入力対象C9の座標と、「リンクボタン」との紐づけ
・入力対象C10の座標と、「リセットボタン」との紐づけ
【0058】
また、(iii)コンポネント間の関連性を示す情報は、以下のようにコンポネント間の関連性を示す情報であってもよい。
・テキストC6と、テキストC6の右隣の入力対象C1との関係性
・テキストC7と、テキストC7の右隣の入力対象C2との関係性
・テキストC8と、テキストC8の右隣の入力対象C3との関係性
・入力対象C9と、入力対象C9の右隣の入力対象C10との関係性
【0059】
(第1の学習モデルM1を用いた推定処理S14)
推定処理S14では、AIサーバ12は、第1の学習モデルM1を用いて、表示画像における各入力対象の位置を推定する。
【0060】
詳細には、AIサーバ12は、表示画像を入力として、第1の学習モデルM1を用いて推定したコンポネントに関する情報から、コンポネントの種類が入力対象のコンポネントの座標を入力対象の位置であると推定する。より詳細には、AIサーバ12は、第1の学習モデルM1を用いて推定したコンポネントに関する情報のうち、(i)コンポネントの座標と(ii)コンポネントの種類とを参照し、コンポネントの種類が入力対象のコンポネントであるコンポネントの座標を入力対象の位置であると推定する。
【0061】
さらに、AIサーバ12は、推定処理S14において第1の学習モデルM1を用いて推定したコンポネントに関する情報を参照し、入力対象に対する入力情報を推定してよい。
【0062】
例えば、AIサーバ12は、コンポネントに関する情報のうち、(iii)コンポネント間の関連性を示す情報および(iv)コンポネントの文字情報を参照することにより、左側の文字情報を含むコンポネントに対応する右側の入力対象のコンポネントに対する入力情報を推定する。
【0063】
この場合、AIサーバ12は、左側の文字情報を含むコンポネントから文字情報を検出し、第1のデータベースDB1を参照することにより、当該コンポネントに対応する右側の入力対象のコンポネントに対する入力情報を推定できる。AIサーバ12は、例えば、OCR(optical character reader:光学式文字認識)によって文字情報を含むコンポネントから文字情報を検出する。
【0064】
(推定処理S14の一例)
以下、
図3および4を用いてAIサーバ12による推定処理S14の一例を説明する。
図4は、第1のデータベースDB1の一例を示す図である。
【0065】
推定処理S14では、 AIサーバ12は、第1の学習モデルM1を用いて、
図3に示す表示画像I1における入力対象C1~C3およびC9の位置を推定する。
【0066】
AIサーバ12は、表示画像I1を入力とし、第1の学習モデルM1を用いて推定したコンポネントに関する情報のうち(i)コンポネントの座標と(ii)コンポネントの種類とを参照し、入力対象C1~C3およびC9の座標が入力対象の位置であると推定する。
【0067】
例えば、入力対象C1~C3およびC9のコンポネントの種類が入力対象であることを示す情報と、入力対象C1~C3およびC9の座標を示す情報とが紐づけられている場合、AIサーバ12は、紐づけられているこれらの情報を参照し、入力対象C1~C3およびC9の位置が入力対象の位置であると推定する。
【0068】
さらに、AIサーバ12は、各コンポネントに関する情報のうち、(iii)コンポネント間の関連性を示す情報および(iv)コンポネントの文字情報を参照し、入力対象C1~C3に対する入力情報を推定する。
【0069】
この場合、AIサーバ12は、まず、OCRにより、文字情報を含むコンポネント(「テキスト」のコンポネント)であるテキストC6~C8から、各々「氏名」、「郵便番号」および「住所」などのキーワードを文字情報として検出する。
【0070】
次に、AIサーバ12は、第1のデータベースDB1を参照し、検出したキーワード「氏名」、「郵便番号」および「住所」と各々対応する「山田太郎」、「140-8870」および「東京都品川区東品川」が入力対象C1~C3への入力情報であると推定する。
【0071】
[送信処理S15]
AIサーバ12は、通信インタフェースにより、推定処理S14において推定した表示画像に含まれる各入力対象の位置をクローラーサーバ11に送信する送信処理S15を実行する。
【0072】
[受信処理S16]
クローラーサーバ11は、通信インタフェースにより、AIサーバ12が推定処理S14において推定した表示画像に含まれる各入力対象の位置をAIサーバ12から受信する受信処理S16を実行する。
【0073】
[入力処理S17]
クローラーサーバ11は、AIサーバ12が推定処理S14において推定した各入力対象の位置を指定して、アプリケーションに対する入力を行う入力処理S17を実行する。
【0074】
また、クローラーサーバ11は、AIサーバ12が推定処理S14において推定した入力情報を各入力対象に入力する入力処理S17を実行する。
【0075】
例えば、AIサーバ12が、推定処理S14において入力対象C1~C3に対して入力する入力情報を「山田太郎」、「140-8870」および「東京都品川区東品川」であると推定する。この場合、クローラーサーバ11は、メモリ111に記憶された入力情報の候補からこれらの入力情報を抽出し、これらの入力情報を各入力対象に入力する。
【0076】
AIサーバ12が推定処理S14において各入力対象の位置および各入力対象に入力する入力情報を推定することにより、クローラーサーバ11は、入力処理S17において、アプリケーションによって表示された表示画像に含まれる各入力対象に好適に入力できる。
【0077】
AIサーバ12が各入力対象の位置を推定するため、単にマウス操作ソフトにより入力対象に入力する場合と異なり、クローラーサーバ11は、入力フォーム、ボタンおよびリンクなど各入力対象の種類に関わらず、各入力対象に好適に入力できる。表示画像のうち、スクロールしなければならない位置およびプルダウンの中など、マウス操作ソフトでは入力対象への入力が困難な位置に入力対象が存在する場合でも、マウス操作ソフトと異なり、クローラーサーバ11は好適に入力対象に入力できる。
【0078】
また、入力処理S17において、クローラーサーバ11が推定した入力情報を各入力対象に入力することにより、好適な情報を各入力対象に入力することができる。
【0079】
このように、クローラーサーバ11が好適に入力処理S17を実行することにより、表示画像が遷移するリンク先の表示画像のソースを入力しなくても好適に表示画像を遷移させることができるため、クローリング処理を実行しやすくすることができる。
【0080】
(入力処理S17の一例)
図3を用いて、クローラーサーバ11による入力処理S17の一例を説明する。
図3の例では、まず、クローラーサーバ11は、ウェブブラウザであるアプリケーションにより表示されたウェブページを示す表示画像I1に含まれる各入力対象の位置を指定する。
【0081】
以下、クローラーサーバ11が、入力対象C1~C3、C9およびC10のうち、入力対象C1~C3およびC9に入力を行う場合について説明する。
【0082】
クローラーサーバ11は、コンポネントの種類に基づいて、入力を行う入力対象のうち、一度に指定する入力対象を決定してよい。例えば、クローラーサーバ11は、先に「入力フォーム」である入力対象C1~C3など一部の入力対象を指定した後、「リンクボタン」である入力対象C9を指定してもよい。また、クローラーサーバ11は、入力対象C1~C3に加え、入力対象C9をまとめて指定してもよい。
【0083】
クローラーサーバ11は、先に入力対象C1~C3など一部の入力対象を指定した場合、入力対象C1~C3に入力を行った後、入力対象C9を指定して入力対象C9に入力を行う。このように、コンポネントの種類ごとに各入力対象の指定および各入力対象に対する入力を行うことにより、より高精度に入力処理S17を実行することができる。
【0084】
クローラーサーバ11は、入力対象C1~C3およびC9をまとめて指定した場合、入力対象C1~C3に入力を行った後、続けて入力対象C9に入力を行ってよい。このように、入力対象の種類に関わらず、各入力対象をまとめて指定し、各入力対象にまとめて入力を行うことにより、クローラーサーバ11は、効率的に入力処理S17を実行できる。
【0085】
〔変形例〕
(変形例1)
前述の例では、AIサーバ12は、第1の学習モデルM1を用いて、クローラーサーバ11が取得処理S11において取得した表示画像を入力として、表示画像に含まれる各入力対象の位置を推定する推定処理S14を実行している。また、AIサーバ12は、各入力対象の周辺のコンポネントに関する情報を参照し、入力情報を推定する。
【0086】
ただし、入力対象に対してどのような入力も許容されるような場合、AIサーバ12は、推定処理S14において、表示画像に含まれる各入力対象の位置を推定すればよく、各入力対象の周辺のコンポネントに関する情報を参照し、入力情報を推定しなくてもよい。
【0087】
このように、AIサーバ12が前述の推定処理S14において、前述のように表示画像に含まれる各入力対象の位置を推定するだけでも、アプリケーションによって表示された表示画像に基づいて各入力対象に好適に入力を行うことができる。
【0088】
(変形例2)
前述の例では、AIサーバ12は、テーブルである第1のデータベースDB1を用いて、各入力対象の周辺の文字情報を参照して入力情報を推定している。ただし、本実施形態では、AIサーバ12は、キーワード推定用学習モデル(不図示)を用いて、各入力対象の周辺の文字情報を参照し、入力情報を推定してよい。
【0089】
例えば、AIサーバ12は、第1のデータベースDB1に加え、キーワード推定用学習モデルを用いて各入力対象の周辺の文字情報を参照して入力情報を推定してもよい。この場合、AIサーバ12のメモリ121は、第1のデータベースDB1に加え、文字情報と第1のデータベースDB1から入力情報を検索するためのキーワードとの組の教師データを機械学習することによって生成されたキーワード推定用学習モデルを備えることになる。
【0090】
また、AIサーバ12のプロセッサ122は、第1のデータベースDB1に加え、学習モデルを用いて、各入力対象の周辺の文字情報を参照した入力情報の推定を行うことになる。すなわち、AIサーバ12は、キーワード推定用学習モデルを用いて、各入力対象の周辺の文字情報から、第1のデータベースDB1に含まれるキーワードを推定することができる。
【0091】
一例として、第1のデータベースDB1には、入力情報を検索するためのキーワードの一つとして「氏名」が用いられており、「名前」は用いられていない。このとき、AIサーバ12が、入力対象の周辺の文字情報として「氏名」ではなく「名前」を検出した場合に、AIサーバ12は、キーワード推定用学習モデルを用いて、文字情報「名前」からキーワード「氏名」を推定し、推定したキーワードを用いて、第1のデータベースDB1から、入力情報「山田太郎」を取得することができる。このように、AIサーバ12が、第1のデータベースDB1に加え、学習モデルを用いて、各入力対象の文字情報を参照することにより、第1のデータベースDB1にない文字情報(キーワード)からも入力情報を推定できる等、より柔軟に入力情報を推定できる。
【0092】
(変形例3)
図3に示す例では、入力対象C2が郵便番号であることから、AIサーバ12は、郵便番号に対応する段階まで入力対象C3の住所を推定しているが、本実施形態では、推定処理S14において、
図3に示す例に比べて入力情報を詳細に推定しなくてもよい。
【0093】
本実施形態では、AIサーバ12は、例えば、「東京都」など、住所に相応する段階まで推定すればよく、区および市町村まで推定しなくてもよい。このような場合でも、推定処理S14において入力情報を推定しない場合に比べて、入力処理S17において好適な情報を各入力対象に入力することができる。
【0094】
(変形例4)
前述の例では、情報処理システム1は、クローラーサーバ11およびAIサーバ12の2つのサーバ(コンピュータ)を備え、クローラーサーバ11のプロセッサ112およびAIサーバ12のプロセッサ122が情報処理方法S1の各処理を実行している。
【0095】
ただし、本実施形態では、情報処理システム1は、1以上のコンピュータを備え、全体として情報処理方法S1の各処理を実行すればよく、各処理を行う対象は前述の例に限定されない。
【0096】
例えば、情報処理システム1が単一のコンピュータのみから構成される場合、単一のコンピュータにおける1以上のプロセッサが前述の全ての処理を実行してもよい。これにより、2つのコンピュータ間の送信処理および受信処理がいらず、情報処理プログラムP1およびP2をまとめられるため、より効率的に情報処理方法S1の各処理を実行できる。
【0097】
また、情報処理システム1が前述の例のように複数のコンピュータを備えている場合であっても、情報処理方法S1における取得処理S11と、推定処理S14と、入力処理S17とを、各々1つのコンピュータにおけるプロセッサごとに実行してもよい。これにより、1つのコンピュータのプロセッサごとに実行する処理を分散させ、情報処理方法S1の各処理を共同して実行させることにより、各コンピュータにかかる負荷を減らせる。
【0098】
(変形例5)
前述の例では、第1の学習モデルM1を単一のAIサーバ12に設けられた単一のメモリ121に記憶させている。ただし、本実施形態では、第1の学習モデルM1を単一のコンピュータに設けられた複数のメモリに分散して記憶させてもよいし、第1の学習モデルM1を複数のコンピュータに各々設けられた複数のメモリに分散して記憶させてもよい。
【0099】
(変形例6)
本実施形態では、プロセッサ112および122に情報処理方法を実行させるための情報処理プログラムP1およびP2は、コンピュータ読み取り可能な一時的でない有形の1以上の記録媒体に記録されていてもよい。これらの記録媒体は、メモリ111および121であってもよいし、ストレージ113および123であってもよいし、その他の記録媒体であってもよい。その他の記録媒体としては、例えば、テープ、ディスク、カード、半導体メモリおよびプログラマブル論理回路などが挙げられる。
【0100】
(変形例7)
本実施形態では、プロセッサ112および122の一部または全部は、論理回路により実現してもよい。例えば、プロセッサ112および122として機能する論理回路が形成された集積回路も本発明の範疇に含まれる。この他にも、例えば量子コンピュータによりプロセッサ112および122の機能を実現することも可能である。
【0101】
<実施形態2>
本発明の一態様に係る情報処理システムは、実施形態2に係る情報処理システム1Aのように、入力処理S17を行った後に、取得処理S11を行うことにより、表示画像がどのように遷移するのかを特定する特定処理S18をさらに実行してよい。
【0102】
以下、
図5~7を用いて、実施形態2に係る情報処理システム1Aを説明する。なお、説明の便宜上、前述の実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【0103】
〔情報処理システム1A〕
図5は、実施形態2に係る情報処理システム1Aの構成の一例を示すブロック図である。
図5に示すように、情報処理システム1Aは、実施形態1におけるクローラーサーバ11の代わりに、クローラーサーバ11Aを備える。クローラーサーバ11AおよびAIサーバ12は、後述の情報処理方法S1Aを実行する。
【0104】
[クローラーサーバ11A]
クローラーサーバ11Aは、実施形態1に係る情報処理方法S1における取得処理S11の代わりに取得処理S11Aを実行し、特定処理S18をさらに実行する。
【0105】
また、
図5に示すように、クローラーサーバ11Aは、実施形態1におけるメモリ111と、プロセッサ112との代わりに、メモリ111Aと、プロセッサ112Aと、を備える。この点以外、クローラーサーバ11Aは、実施形態1におけるクローラーサーバ11と同様である。
【0106】
(メモリ111A)
メモリ111Aは、実施形態1における取得処理S11の代わりに取得処理S11Aを実行し、特定処理S18をさらに実行するための情報処理プログラムP1Aを記憶するための構成である。また、メモリ111Aは、表示画像に、アプリケーションによる通信内容が紐づけて記憶する。これらの点以外、メモリ111Aは、実施形態1における情報処理プログラムP1を記憶するメモリ111と同様である。
【0107】
(プロセッサ112A)
プロセッサ112Aは、メモリ111Aに記憶された情報処理プログラムP1Aに従って、実施形態1における取得処理S11の代わりに取得処理S11Aを実行し、特定処理S18をさらに実行するための構成である。この点以外、プロセッサ112Aは、実施形態1におけるプロセッサ112と同様である。
【0108】
〔情報処理方法S1A〕
次に、
図6を用いて実施形態2に係る情報処理方法S1Aを説明する。
図6は、実施形態2に係る情報処理方法S1Aの一例を示すフロー図である。
【0109】
図6に示すように、情報処理方法S1Aは、実施形態1における取得処理S11の代わりに取得処理S11Aを含み、特定処理S18をさらに含む。この点以外は、情報処理方法S1Aは、実施形態1に係る情報処理方法S1と同様である。
【0110】
[取得処理S11A]
取得処理S11Aでは、クローラーサーバ11Aは、表示画像に加え、アプリケーションによる通信内容をさらに取得する。この場合、クローラーサーバ11Aは、表示画像と、アプリケーションによる通信内容とを紐づけて取得し、メモリ111Aに記憶してよい。
【0111】
ここで、従来技術は、ウェブページのソースを分析するなど、HTTPレスポンスに基づいてHTTPリクエストを取得し、これによりウェブページを遷移させてHTTPレスポンスを取得し、ウェブページを巡回しながら、これらの通信内容の取得を繰り返す。
【0112】
これに対し、取得処理S11Aでは、クローラーサーバ11Aは、表示画像を取得し、表示画像に基づいてウェブページを遷移させて、アプリケーションによる通信内容を取得することができる。このように、取得処理S11Aでは、従来技術とは異なる方法により、通信内容を取得できる。
【0113】
[特定処理S18]
クローラーサーバ11Aは、入力処理S17を行った後、取得処理S11Aを行うことにより、表示画像がどのように遷移するのかを特定する特定処理S18を実行してよい。
【0114】
クローラーサーバ11Aは、特定処理S18をさらに実行することにより、取得処理S11Aにおいて取得した表示画像を有効活用し、表示画像の遷移パターンを特定できるため、より好適にクローリング処理を実行できる。また、遷移パターンなどの情報は、入出力インタフェースを介して外部装置に遷移図として表示したり、セキュリティ上の評価、診断を自動化、自動見積および動作テストなどに有効活用したりすることができる。
【0115】
(特定処理S18の一例)
図7を用いてクローラーサーバ11Aによる特定処理S18の一例を説明する。
図7は特定処理S18により特定された表示画像の遷移パターンTの一例を示す図である。
【0116】
クローラーサーバ11Aは、
図7のようにウェブページを示す表示画像I1、表示画像I2、表示画像I3、表示画像I4および表示画像I5がどのように遷移するのかを遷移コンテキスト情報などの遷移パターンTとして特定する特定処理S18を実行してよい。
【0117】
図7に示す例では、遷移パターンTにおける、ウェブページを示す表示画像I1~I5と、ウェブページのソースとの対応関係およびソースの階層から、表示画像I1から表示画像I2~I4に遷移し、表示画像I4から表示画像I5に遷移することがわかる。
【0118】
クローラーサーバ11Aは、特定処理S18により、ウェブページを示す表示画像I5がさらに遷移することを特定した場合、
図7に示す遷移パターンTを更新してよい。これにより、リアルタイムで遷移パターンTを特定することができる。
【0119】
また、クローラーサーバ11Aは、取得処理S11Aにおいて取得した通信内容を遷移パターンTにおいて特定してよい。クローラーサーバ11Aは、任意の方法により、遷移パターンTにおいて通信内容を特定することができるが、例えば、
図7のように、ウェブページを示す各表示画像と通信内容とを紐づけて出力してよい。
【0120】
なお、
図7に示す例では、遷移パターンTは遷移コンテキスト情報であるが、本実施形態では、クローラーサーバ11Aは、表示画像がどのように遷移するのかを特定すればよく、遷移パターンTの形態は特に限定されない。例えば、遷移パターンTは、表示画像I1~I5を線でつなぎ、各表示画像がどのように遷移するのかを示す遷移図でもよい。このような形態によっても、遷移パターンTを好適に特定することができる。
【0121】
<実施形態3>
本発明の一態様に係る情報処理システムは、第1のデータベースDB1に加え、第2の学習モデルを用いて、入力情報を推定してよい。
【0122】
以下、
図8および9を用いて、実施形態3に係る情報処理システム1Bを説明する。前述の実施形態にて説明した部材と同様の部材には同じ符号を付記し、説明を省略する。
【0123】
〔情報処理システム1B〕
図8は、実施形態3に係る情報処理システム1Bの構成の一例を示すブロック図である。
図8のように、情報処理システム1Bは、実施形態1におけるクローラーサーバ11と、AIサーバ12との代わりに、クローラーサーバ11Bと、AIサーバ12Bとを備える。クローラーサーバ11BおよびAIサーバ12Bは、後述の情報処理方法S1Bを実行する。
【0124】
[クローラーサーバ11B]
クローラーサーバ11Bは、実施形態1に係る情報処理方法S1における入力処理S17の代わりに、情報処理方法S1Bにおける入力処理S17Bを実行する。
【0125】
また、
図8に示すように、クローラーサーバ11Bは、実施形態1におけるメモリ111と、プロセッサ112との代わりに、メモリ111Bと、プロセッサ112Bとを備えている。この点以外、クローラーサーバ11Bは、実施形態1におけるクローラーサーバ11と同様である。
【0126】
(メモリ111B)
メモリ111Bは、クローラーサーバ11Bが、実施形態1における入力処理S17の代わりに入力処理S17Bを実行するための情報処理プログラムP1Bを記憶するための構成である点以外、実施形態1におけるメモリ111と同様である。
【0127】
(プロセッサ112B)
プロセッサ112Bは、メモリ111Bに記憶された情報処理プログラムP1Bに従って、実施形態1における入力処理S17の代わりに入力処理S17Bを実行するための構成である点以外、実施形態1におけるプロセッサ112と同様である。
【0128】
[AIサーバ12B]
AIサーバ12Bは、実施形態1に係る情報処理方法S1における推定処理S14の代わりに、情報処理方法S1Bにおける推定処理S14Bを実行する。
【0129】
また、
図8に示すように、AIサーバ12Bは、実施形態1におけるメモリ121と、プロセッサ122との代わりに、メモリ121Bと、プロセッサ122Bとを備える。この点以外、AIサーバ12Bは、実施形態1におけるAIサーバ12と同様である。
【0130】
(メモリ121B)
メモリ121Bは、AIサーバ12Bが、実施形態1における推定処理S14の代わりに推定処理S14Bを実行するための情報処理プログラムP2B、および、第2の学習モデルM2を記憶するための構成である。この点以外、メモリ121Bは、実施形態1におけるメモリ121と同様である。
【0131】
第2の学習モデルM2は、各入力対象の周辺のコンポネントに関する情報と、入力処理S17Bにおいて各入力対象に対する入力が成功した情報との組を教師データとして機械学習を行うことにより生成されたものである。
【0132】
(プロセッサ122B)
プロセッサ122Bは、メモリ121Bに記憶された情報処理プログラムP2Bに従って、実施形態1における推定処理S14の代わりに推定処理S14Bを実行するための構成である点以外、実施形態1におけるプロセッサ122と同様である。
【0133】
〔情報処理方法S1B〕
次に、
図9を用いて実施形態3に係る情報処理方法S1Bを説明する。
図9は、実施形態3に係る情報処理方法S1Bの一例を示すフロー図である。
【0134】
図9に示すように、情報処理方法S1Bは、実施形態1における推定処理S14と、入力処理S17との代わりに、推定処理S14Bと、入力処理S17Bとを含む。この点以外、情報処理方法S1Bは、実施形態1に係る情報処理方法S1と同様である。
【0135】
[推定処理S14B]
AIサーバ12Bは、各入力対象の周辺のコンポネントに関する情報と、各入力対象に対する入力が成功した情報との組を教師データとして機械学習を行うことにより生成された第2の学習モデルM2を用いて、表示画像を入力として、入力情報を推定する。これにより、AIサーバ12Bは、例えば、表示画像の入力されるたびに、各入力対象の周辺の文字情報を検出し、第1のデータベースDB1を参照するなど、逐一、各入力対象の周辺のコンポネントに関する情報を参照しなくても入力情報を好適に推定きる。
【0136】
教師データにおける各入力対象に対する入力が成功した情報は、人手によって入力されたものであってもよいが、前述の学習装置が、ウェブページである表示画像のソースに基づいて生成したものであってもよい。これにより、人手によらず、各入力対象に対する入力に成功した情報を生成できる。
【0137】
また、第2の学習モデルM2が一定量(例えば、数百個)の教師データを学習するまで、AIサーバ12Bは、例えば、各入力対象の周辺のコンポネントに関する情報を参照し、第1のデータベースDB1を用いて入力情報を推定してよい。すなわち、第2の学習モデルM2が一定量の教師データを学習するまで、AIサーバ12Bは、実施形態1、実施形態1の変形例2および実施形態2におけるAIサーバ12および12Aと同様に入力情報を推定してよい。
【0138】
AIサーバ12Bは、各入力対象の周辺のコンポネントに関する情報の参照による入力情報の推定と、第2の学習モデルM2を用いた入力情報の推定とを併用してよい。AIサーバ12Bは、各入力対象の周辺のコンポネントに関する情報の参照による入力情報の推定の精度より、第2の学習モデルM2を用いた入力情報の推定の精度が上回った段階で第2の学習モデルM2を用いて入力情報を推定すれば、より好適に入力情報を推定できる。
【0139】
(第2の学習モデルM2の生成の一例)
以下、
図3を用いて第2の学習モデルM2の生成の一例を説明する。
【0140】
第2の学習モデルM2は、
図3に示す表示画像I1における各入力対象の周辺のコンポネントに関する情報と、各入力対象に対する入力が成功した情報との組を教師データとして機械学習を行うことによって生成される。
【0141】
各入力対象の周辺のコンポネントに関する情報としては、各入力対象の周辺に存在する前述の(i)~(iv)の少なくとも1つであれば特に限定されないが、例えば、各入力対象に対応する文字情報を含むコンポネントの文字情報などが挙げられる。
図3に示す例では、各入力対象の周辺のコンポネントに関する情報としては、入力対象C1に対応するテキストC6の「氏名」、入力対象C2に対応するテキストC7の「郵便番号」、および、入力対象C3に対応するテキストC8の「住所」などが挙げられる。
【0142】
教師データにおける各入力対象に対する入力が成功した情報は、例えば、以下のように、表示画像I1の各入力対象と、各入力情報との紐づけが行われた一覧の表などによって特定されていてもよい。
・入力対象C1と、入力情報「山田太郎」との紐づけ
・入力対象C2と、入力情報「140-8870」との紐づけ
・入力対象C3と、入力情報「東京都品川区東品川」との紐づけ
【0143】
(推定処理S14Bの一例)
以下、
図3を用いてAIサーバ12Bによる推定処理S14Bの一例を説明する。
【0144】
推定処理S14Bでは、AIサーバ12Bは、
図3に示す表示画像I1を入力とし、第2の学習モデルM2を用いて推定したコンポネントに関する情報を参照し、表示画像I1の入力対象C1~C3に対する入力情報を推定する。
【0145】
詳細には、AIサーバ12Bは、OCRにより、表示画像I1におけるテキストC6~C8の文字情報を検出し、第2の学習モデルM2を用いてテキストC6~C8に対応する入力対象C1の入力情報を推定する。
【0146】
より詳細には、AIサーバ12Bは、OCRにより、表示画像I1におけるテキストC6~C8のキーワード「氏名」、「郵便番号」および「住所」を検出し、第2の学習モデルM2を用いてテキストC6~C8に対応する入力対象C1の入力情報「山田太郎」、「140-8870」および「東京都品川区東品川」を推定する。
【0147】
このように、AIサーバ12Bは、第2の学習モデルM2を参照することにより、第1のデータベースDB1を参照しなくても各入力情報を好適に推定できる。
【0148】
[入力処理S17B]
クローラーサーバ11Bは、AIサーバ12Bが推定処理S14Bにおいて推定した入力情報を各入力対象に入力する入力処理S17Bを実行する。また、入力処理S17Bでは、クローラーサーバ11Bは、アプリケーションに対し、AIサーバ12Bが推定した情報の各入力対象への入力が成功したか否かを判定する。
【0149】
(入力処理S17Bの一例)
図3を用いて、クローラーサーバ11Bによる入力処理S17Bの一例を説明する。
【0150】
クローラーサーバ11Bは、入力処理S17Bにおいて推定された、
図3に示す表示画像I1の入力対象C1~C3に対する入力情報を入力後、入力対象C9のボタンをクリックした際に、表示画像I1が確認画面を示す表示画像I2に遷移するか否かを判定する。
【0151】
エラーなしに表示画像I1が表示画像I2に遷移した場合、クローラーサーバ11Bは、アプリケーションに対し、推定した入力情報の各入力対象への入力が成功したと判定する。続いて、クローラーサーバ11Bは、
図3に示す表示画像I1における各入力対象と、各入力対象に対する入力が成功した入力情報との組を教師データとし、第2の学習モデルM2に機械学習を行わせる。
【0152】
一方、エラーが出て表示画像I1が表示画像I2に遷移しない場合、クローラーサーバ11Bは、推定した入力情報の各入力対象への入力が失敗したと判定する。この場合、クローラーサーバ11Bは、第2の学習モデルM2を用いて、表示画像I1が表示画像I2に遷移するまで入力処理S17Bを繰り返し、表示画像I1が表示画像I2に遷移した場合、推定した入力情報の各入力対象への入力が成功したと判定する。続いて、クローラーサーバ11Bは、表示画像I1に対応する学習画像と、各入力対象に対する入力が成功した入力情報との組を教師データとし、第2の学習モデルM2に機械学習を行わせる。
【0153】
このように、クローラーサーバ11Bが入力処理S17Bにおいて前述の判定を行うことにより、AIサーバ12Bの推定した入力情報が正確でなくても、AIサーバ12Bの失敗をカバーし、正確な入力情報を各入力対象に入力できる。
【0154】
また、学習画像と各入力対象に対する入力が成功した情報との組を教師データとし、クローラーサーバ11Bが第2の学習モデルM2に機械学習を行わせることにより、AIサーバ12Bは、次回以降の推定処理S14Bでは、より高精度に入力情報を推定できる。
【0155】
<実施形態4>
本発明の一態様に係る情報処理システムは、実施形態4に係る情報処理システム1Cのように、表示画像を参照して、当該表示画像の内容をさらに推定し、表示画像の内容を参照して、各入力対象に入力する情報を決定してよい。
【0156】
以下、
図10~12を用いて、実施形態4に係る情報処理システム1Cを説明する。前述の実施形態にて説明した部材と同様の部材には、同じ符号を付記し、説明を省略する。
【0157】
〔情報処理システム1C〕
図10は、実施形態4に係る情報処理システム1Cの構成の一例を示すブロック図である。
図10に示すように、情報処理システム1Cは、実施形態1におけるAIサーバ12との代わりに、AIサーバ12Cを備える。クローラーサーバ11およびAIサーバ12Cは、後述の情報処理方法S1Cを実行する。
【0158】
[AIサーバ12C]
AIサーバ12Cは、実施形態1に係る情報処理方法S1における推定処理S14の代わりに、情報処理方法S1Cにおける推定処理S14Cを実行する。
【0159】
また、
図10に示すように、AIサーバ12Cは、実施形態1におけるメモリ121と、プロセッサ122との代わりに、メモリ121Cと、プロセッサ122Cとを備える。この点以外は、AIサーバ12Cは、実施形態1におけるAIサーバ12と同様である。
【0160】
(メモリ121C)
メモリ121Cは、AIサーバ12Cが、実施形態1における推定処理S14の代わりに推定処理S14Cを実行するための情報処理プログラムP2Cを記憶するための構成である。この点以外、メモリ121Cは、実施形態1におけるメモリ121と同様である。
【0161】
メモリ121Cは、コンポネントに関する情報と、学習画像の内容との組を教師データとして機械学習を行うことにより生成された第3の学習モデルM3を記憶するための構成でもある。また、メモリ121Cは、推定処理S14Cにおいて参照される第2のデータベースDB2を記憶するための構成でもある。
【0162】
(プロセッサ122C)
プロセッサ122Cは、メモリ121Cに記憶された情報処理プログラムP2Cに従って、実施形態1における推定処理S14の代わりに推定処理S14Cを実行するための構成である点以外、実施形態1におけるプロセッサ122と同様である。
【0163】
〔情報処理方法S1C〕
次に、
図11を用いて実施形態4に係る情報処理方法S1Cを説明する。
図11は、実施形態4に係る情報処理方法S1Cの一例を示すフロー図である。
【0164】
図11のように、情報処理方法S1Cは、実施形態1における推定処理S14の代わりに推定処理S14Cを含む。この点以外、情報処理方法S1Cは、実施形態1に係る情報処理方法S1と同様である。
【0165】
[推定処理S14C]
推定処理S14Cにおいて、AIサーバ12Cは、コンポネントに関する情報を参照して、当該表示画像の内容を推定し、当該表示画像の内容を参照して入力情報を推定する。
【0166】
例えば、AIサーバ12Cは、コンポネントに関する情報含まれる前述の(i)~(iV)のうち、(iv)コンポネントの文字情報を参照し、表示画像の内容を推定してよい。
【0167】
表示画像としては、前述の表示画像と同様に、例えば、ウェブブラウザであるアプリケーションにより、端末などの外部装置のディスプレイに表示されたウェブページなどが挙げられる。また、表示画像の内容としては、例えば、ウェブページ全体がどういったものに関するのか、どういった役割(機能)を果たすのかを示すものが挙げられる。すなわち、表示画像の内容は、ウェブページに含まれる個々の画像の内容に限定されない。
【0168】
また、AIサーバ12Cは、ウェブページの一部の画像におけるテキストのコンポネントの文字情報だけでなく、アプリケーションにより、端末などのディスプレイに表示されたウェブページ全体のテキストのコンポネントの文字情報を参照してよい。
【0169】
また、AIサーバ12Cは、各入力対象の周辺のコンポネントに関する情報に加え、推定した表示画像の内容を参照して入力情報を推定してよい。このように、表示画像の内容を推定した上で、各入力対象の周辺のコンポネントに関する情報に加え、推定した表示画像の内容を参照して入力情報を推定することにより、より高精度に入力情報を推定することができる。
【0170】
推定処理S14Cでは、AIサーバ12Cは、前述の(iv)コンポネントに関する情報と、学習画像の内容との組を教師データとして機械学習を行うことにより生成された第3の学習モデルを用いて、表示画像を入力として、当該表示画像の内容を推定してよい。この場合、第3の学習モデルとしては、例えば、アプリケーションにより、端末などのディスプレイに表示されたウェブページ全体のテキストのコンポネントの文字情報と、学習画像の内容との組を教師データとして機械学習を行うことにより生成されたものが挙げられる。これにより、さらに高精度に入力情報を推定することができる。
【0171】
(第3の学習モデルM3の生成の一例)
以下、
図3を用いて第3の学習モデルM3の生成の一例を説明する。
図3は、アプリケーションによって表示される表示画像I1の一例を示す図である。
【0172】
例えば、第3の学習モデルM3は、コンポネントの文字情報であるテキストC4のキーワード「商品」および「注文」と、
図3の表示画像I1に対応する学習画像の内容である「商品の注文に関する画像」と、の組を教師データとして機械学習する。同様に、第3の学習モデルM3は、コンポネントの文字情報として、当該学習画像全体のコンポネントの文字情報(テキストのキーワード)と、当該学習画像の内容との組を教師データとして機械学習する。これにより、第3の学習モデルM3が生成される。
【0173】
(推定処理S14Cの一例)
以下、
図3および12を用いてAIサーバ12Cによる推定処理S14Cの一例について説明する。
図12は、第2のデータベースDB2の一例を示す図である。
【0174】
推定処理S14Cでは、まず、AIサーバ12Cは、
図3に示す表示画像I1を入力として、第3の学習モデルM3を用いて推定された「商品の注文に関する画像」が表示画像I1の内容であると推定する。
【0175】
続いて、AIサーバ12Cは、第1の学習モデルM1を用いて、
図3に示す表示画像I1における入力対象C1~C3の周辺にある「テキスト」のコンポネントであるテキストC6~C8の位置を検出する。また、AIサーバ12Cは、OCRなどにより、テキストC6~C8から、各々「氏名」、「郵便番号」および「住所」などのキーワードを文字情報として検出する。
【0176】
次に、AIサーバ12Cは、
図12に示す表示画像の内容と、キーワードと、入力情報とが紐づけられた第2のデータベースDB2を参照し、入力情報を推定する。詳細には、AIサーバ12Cは、推定した「商品の注文に関する画像」と、検出したキーワード「氏名」、「郵便番号」および「住所」と各々対応する「山田太郎」、「140-8870」および「東京都品川区東品川」が入力情報であると推定する。
【0177】
〔変形例〕
(変形例1)
前述の例では、AIサーバ12Cは、第1の学習モデルM1を用いてコンポネントの位置を推定した上で、第3の学習モデルM3を用いて当該コンポネントの文字情報を参照し、表示画像の内容を推定している。
【0178】
ただし、本実施形態では、AIサーバ12Cが、コンポネントに関する情報を参照して表示画像の内容を推定できればよく、第1の学習モデルM1を用いてコンポネントの位置を推定しなくてもよい。すなわち、AIサーバ12Cは、OCRによって表示画像から直接文字情報を検出し、第3の学習モデルM3を用いて、表示画像の内容を推定してもよい。
【0179】
(変形例2)
前述の例では、AIサーバ12Cは、第3の学習モデルM3を用いて、表示画像の内容を推定しているが、本実施形態では、第3の学習モデルM3の代わりに、データベース(不図示)を用いて、表示画像の内容を推定してよい。
【0180】
この場合、AIサーバ12Cのメモリ121Cは、第3の学習モデルM3の代わりに、コンポネントに関する情報(例えば、コンポネントの文字情報)と、表示画像の内容とが紐づけられた表などのデータベースを備えることになる。また、AIサーバ12Cのプロセッサ122Cは、当該データベースを用いて、表示画像から検出したコンポネントのキーワードなどの文字情報と、データベースとを照らし合わせて、表示画像の内容の推定を行うことになる。
【0181】
例えば、AIサーバ12Cは、表示画像I1のテキストC4から「商品」および「注文」というキーワードを検出した場合、データベースを参照し、「商品」および「注文」と紐づけられている「商品の注文に関する画像」を表示画像の内容であると推定する。
【0182】
AIサーバ12Cは、第3の学習モデルM3を用いることにより、あらかじめ定められたデータベースを用いる場合より柔軟に表示画像の内容を推定できる。これに対し、AIサーバ12Cは、あらかじめ定められたデータベースを用いることにより、第3の学習モデルM3が一定量の教師データを学習するまで待たずに、短期間で表示画像の内容を推定できる。
【0183】
<付記事項>
本発明は前述の各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【0184】
また、各実施形態に係る情報処理システムは、クローリング処理を好適に実行でき、より多くの人々がアプリケーションの表示画像の情報を取得できるため、持続可能な開発目標(SDGs)の目標9「産業と技術革新の基盤をつくろう」の達成に貢献できる。
【符号の説明】
【0185】
1、1A、1B、1C 情報処理システム
11、11A、11B クローラーサーバ
12、12A、12B、12C AIサーバ
C1、C2、C3、C9、C10 入力対象
I1、I2、I3、I4、I5 表示画像
M1 第1の学習モデル
M2 第2の学習モデル
M3 第3の学習モデル
P1、P1A、P1B、P2、P2A、P2B、P2C 情報処理プログラム
S1、S1A、S1B、S1C 情報処理方法
S11、S11A 取得処理
S14、S14B、S14C 推定処理
S17、S17B 入力処理
S18 特定処理