【文献】
Joe Mayo、大澤 文孝、清水 美樹,プログラミング Bot Framework,日本,日経BP社,2018年10月29日,第1版,pp.215〜223
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下、本発明を適用したメタデータ抽出システムについて図面を参照しながら詳細に説明をする。
【0018】
全体構成
図1は、メタデータ抽出システム100の全体構成を示している。メタデータ抽出システム100は、公衆通信網50へアクセス可能なユーザ端末10と、公衆通信網50に接続されたメタデータ抽出装置1と、画像特定システム2とを備えている。
【0019】
公衆通信網50は、インターネット通信網等であるが、社内等の狭いエリア内で運用する場合には、LAN(Local Area Network)で構成されてもよい。また、公衆通信網50は、いわゆる光ファイバ通信網で構成されてもよい。また、この公衆通信網50は、有線通信網に限定されるものではなく、無線通信網で実現されてもよい。
【0020】
ユーザ端末10は、パーソナルコンピュータ(PC)、スマートフォン、タブレット型端末、携帯電話機、ウェアラブル端末、デジタルカメラ等のような情報媒体の画像を視認することができ、或いは情報媒体の画像を撮像することが可能なあらゆる電子機器が含まれる。ユーザ端末10は、情報媒体の画像A1を自らに実装されているデジタルカメラによって撮像し、或いは公衆通信網50を経由して図示しないサーバ等から取得する。ここでいう情報媒体とは、パンフレット、カタログ、会社案内や広告、更には各種文書や説明資料等、情報を示すあらゆる媒体を示す。画像A1は、このような情報媒体を画像データとして構成したものである。ユーザ端末10は、このようにして取得した画像A1を公衆通信網50を介してメタデータ抽出装置1へ送信する。
【0021】
メタデータ抽出装置1は、ユーザ端末10から公衆通信網50を介して受信した画像A1についてメタデータを抽出するデバイスであり、例えばPC、サーバ等で構成される。このメタデータ抽出装置1では、画像A1毎にメタデータを関連付ける。ここでいうメタデータとは、情報媒体の画像に対して、決められた属性についてその属性値を書き表したものであり、例えば販売中の車のカタログの画像であれば、その画像中に表示されている車の販売元やブランド、価格、燃費や性能等の文字列から読み取れる文字情報に加え、その車の写真の内容(つまりその写真の内容が「車」であることを示す情報)、車の色、車の形状、車の出す雰囲気や速そうなイメージ等、写真から得られる付帯情報のメタデータが存在する。このメタデータ、つまりこれらの付帯情報をテキスト化したものが、情報媒体としての車の画像A1に関連付けられるメタデータとなる。更にこのメタデータは、情報媒体の種類がそもそも何であるのかを示す情報で構成されていてもよく、例えば情報媒体の種類としてパンフレット、レントゲン写真、会社案内、カタログ、宣伝用のちらし、財務諸表等の種別を示す情報で構成されていてもよい。
【0022】
また、例えば温泉旅館のパンフレットの画像であれば、その画像中に表示されている旅館名や宿泊料金、旅館の住所や連絡先、チェックインからチェックアウトの時間等、文字から読み取れる文字情報に加え、その露天風呂の写真の内容(つまりその写真の内容が「露天風呂」であることを示す情報)、露天風呂の写真から出ている湯気から醸し出される心地よさや温かさ、更には露天風呂の周囲の風景との調和から醸し出される色彩や美しさ、更には食事の写真から抽出できる料理のメニュー等、写真から得られる付帯情報のメタデータが存在する。このメタデータ、つまりこれらの付帯情報をテキスト化したものが、情報媒体としての温泉のパンフレットの画像A1に関連付けられるメタデータとなる。
【0023】
メタデータ抽出装置1は、ユーザ端末10を介して情報媒体に関する画像A1を収集し、この画像A1毎にメタデータを関連付ける処理動作を順次実行する。メタデータ抽出装置1は、このメタデータを関連付けた画像A1につきそれぞれ記憶することで、画像A1にそれぞれのメタデータが関連付けられたデータベースを構築する。
【0024】
画像特定システム2は、このメタデータ抽出装置1において構築された、画像A1とメタデータとの関係が関係付けられたデータベースを参照し、ユーザが望む画像を特定するシステムである。この画像特定システム2では、ユーザから会話文を直接、又はユーザ端末10から受け付ける。そして画像特定システム2は、メタデータ抽出装置1へアクセスし、受け付けた会話文に対応する適切な画像を特定し、直接ユーザに表示するか、これをユーザ端末10へ送信する。ユーザ端末10を操作するユーザは、見たい画像を音声で入力することにより、画像特定システム2から送られてきた所望の画像を取得することが可能となる。
【0025】
以下、メタデータ抽出システム100を構成するメタデータ抽出装置1と、画像特定システム2の構成について説明をする。
【0026】
メタデータ抽出装置の構成
図2は、メタデータ抽出装置1のブロック構成を示している。メタデータ抽出装置1は、中央制御部20と、この中央制御部20にそれぞれ接続された実行部3並びに補助記憶部4とを備えている。
【0027】
中央制御部20は、例えばCPU(Central Processing Unit)であって、実行部3に記憶されたプログラムを呼び出すことで処理を実行する。中央制御部20は、メタデータ抽出装置1内に実装された各構成要素を制御する。実行部3は、画像取得部5、特徴マップ生成部6、総括推論部7、紐づけ部8、抽出部9をそれぞれ備えている。実行部3をRAM(Random Access Memory)で構成する場合には、これら画像取得部5〜抽出部9の構成に対応するプログラムがこれに格納されている。
【0028】
画像取得部5は、ユーザ端末10から公衆通信網50を介して受信した画像A1を取得する。
【0029】
特徴マップ生成部6は、画像A1から特徴を抽出したデータである後述の特徴マップ30を生成する。特徴マップ30は、画素単位、又は例えば複数の画素の集合体であるブロック領域単位で構成されており、周知の画像解析に基づいて、必要に応じてディープラーニング技術を利用した、解析画像の特徴量を2次元画像上に反映させたものである。これにより、例えば写真の画像から判別したい対象につき特徴となる部分を際立たせた特徴マップ30を得ることも可能となる。
【0030】
総括推論部7は、特徴マップ生成部6において生成した特徴マップ30に対して、後述する1以上の個別推論モデルDB11〜DB16から構成される1つの総括推論モデルDB1を使用する。総括推論モデルDB1を使用して、総括推論部7は、少なくとも、画像A1における少なくとも1つの対象の内容を推論しメタデータを生成する。
【0031】
紐付け部8は、総括推論部7が推論した結果である総括推論結果としての特徴ラベルに対して、1又は複数の連想単語を紐づける。連想単語は、特徴ラベルの単語から連想される単語であり、例えば、特徴ラベルが「車」であれば、「乗り物」、「重い」等が連想単語であり、特徴ラベルが「温泉」であれば、「温かい」、「硫黄」、「アルカリ性」、「湯気」、「保養」等が連想単語である。このような各特徴ラベルに対して連想単語が1又が複数に亘り紐付けられたものが、連想モデルセットTB2であり、補助記憶部4に記憶される。
【0032】
補助記憶部4は、例えばSSD(Solid State Drive)やHDD(Hard Disk Drive)であって、テーブル格納部11と、コーパス格納部14と、エンティティ格納部15と、画像データ格納部26と、メタデータ格納部27とを備えている。
【0033】
テーブル格納部11には、1または2以上のテーブルが格納される。このテーブル格納部11に格納されるテーブルとしては、補助記憶部4に記憶される総括推論モデルDB1と総括推論結果テーブルTB1、連想モデルセットTB2が記憶される。
【0034】
図3に総括推論モデルDBの例を示す。総括推論モデルDB1は、1以上の個別推論モデルDB11〜DB15により構成されている。個別推論モデルDB11〜DB15の入力は、共通の特徴マップであり、出力は、個別推論結果である。個別推論結果は、それぞれ推論した結果を示す文言からなるテキストデータで構成される。入力データと出力データとは、互いに連関度を通じて関連付けられる。連関度は、入力データと出力データとの繋がりの度合いを示しており、例えば連関度が高いほど各データの繋がりが強いと判断することができる。連関度は、例えば百分率等の3値以上又は3段階以上で示されるほか、2値又は2段階で関連付けされるものであってもよい。
【0035】
個別推論モデルDB11〜DB15は、学習用の複数の特徴マップと、学習用の複数の個別推論結果とを学習用データセットとして、機械学習により生成する。機械学習としては、例えば畳み込みニューラルネットワーク(CNN:Convolution Neural Network)とし、例えば深層学習等が適用される。
【0036】
各個別推論モデルDB11〜DB15は、特徴マップから、情報媒体の画像に映し出されている対象物の内容や色彩、文字等を推論する学習用データセットで構成される。例えば、
図4に示すような車のパンフレットからなる情報媒体の画像において、個別推論モデルDB11,12,14は、当該情報媒体の画像に映し出されている対象物の内容として「車」、「木」、「柵」を推論するためのモデルであり、個別推論モデルDB13は、画像に映し出されている対象物の色を推論するためのモデルであり、個別推論モデルDB15は、画像に映し出されている文字列を推論するためのモデルとしている。このように、個別推論モデルは、対象物の内容、対象物の色、画像に映し出されている文字列等からなる各要素毎にぞれぞれ独立して設けられている。
【0037】
個別推論結果は、例えば、個別推論モデルDB11を例に挙げる場合、車:96.999%、木:2.01%といったように探索解が推論される確率である推論確率で表されるようにしてもよい。総括推論モデルDB1は、1つの特徴マップ30を入力とし、類論確率の閾値として例えば80%以上の探索解のみを総括推論結果として出力するようにしてもよい。また、推論確率の閾値以上の探索解が存在せず、閾値未満の探索解のみしか存在しない場合、当該探索解を複数出力するものであってもよい。例えば、DB13、DB15については総括推論結果として複数の探索解を出力している。
【0038】
総括推論モデルDB1では、個々の個別推論モデルDB11〜DB15の探索解として求められた、テキストデータで表される個別推論結果をそれぞれ総括推論結果とする。
図3の例では、個々の個別推論モデルDB11〜DB15の探索解として、「車」、「木」、「赤、緑」、「柵」、「A社、ラインナップA」が求められたため、これらを総括推論結果として出力する。なお、この総括推論結果は、総括推論結果テーブルTB1に示すようにテーブル化した上でテーブル格納部11に格納するようにしてもよい。この総括推論結果テーブルTB1は、特徴マップを形成した情報媒体の画像と、総括推論結果が互いに紐付けられたテーブルで構成される。このように各情報媒体の画像が総括推論結果と関連付けられた総括推論結果テーブルTB1を準備し、テーブル格納部11に格納しておくことで、事後的に行われる検索の利便性を高めることが可能となる。
【0039】
連想モデルセットTB2は、
図5に示すように、特徴ラベルと連想単語が互いに紐付けられたテーブルとして構成される。ここでいう特徴ラベルは、上述した総括推論結果として出力された探索解としてのテキストデータ「車」、「木」、「赤」、「緑」、「柵」、「A社」、「ラインナップA」がこれに該当する。
【0040】
また、連想単語は、これらの特徴ラベルから連想することができる単語である。例えば、特徴ラベルが「車」であれば連想単語として「重い」、「乗り物」等がある。また特徴ラベルが「木」であれば連想単語として「資源」、「自然」等がある。また、ある自動車メーカのセール対象のラインナップである「ラインナップA」が特徴ラベルであれば「車」、「メーカ」が連想単語として挙げられる。また特徴ラベルとして「赤」であれば、連想単語として「色」が連想単語として挙げられる。
【0041】
このような特徴ラベルに対して1対1又は1対複数の関係で連想単語が紐付けられた連想モデルセットTB2は、システム側(運営者側)において予め設定しておき、これをテーブル格納部11に格納しておく。このような連想モデルセットTBを予め準備しておくことにより、特徴ラベルが入力された場合にこれに紐付けられた1以上の連想単語を出力することが可能となる。
【0042】
ちなみに、この連想モデルセットTB2は、特徴ラベルと連想単語が互いに紐付いているか否かの2値で表される場合に限定されるものでは無く、
図6に示すような連関性を以って互いに関連付けられるものであってもよい。
【0043】
この
図6の例によれば、入力が特徴ラベルであり、出力は連想単語となる。特徴ラベルと連想単語との間は互いに連関度を通じて関連付けられる。連関度は、入力データと出力データとの繋がりの度合いを示しており、例えば連関度が高いほど各データの繋がりが強いと判断することができる。連関度は、例えば百分率等の3値以上又は3段階以上で示されるほか、2値又は2段階で示されてもよい。このような連関度を構成する隠れ層の各ノードは、ニューラルネットワークのノードで構成されていてよい。
【0044】
かかる場合には、特徴ラベルと連想単語とを学習用データセットとして、機械学習により生成する。機械学習としては、例えば畳み込みニューラルネットワークとし、例えば深層学習等が適用される。
【0045】
連想モデルセットTB2として、このようなニューラルネットワークを予め準備しておくことにより、特徴ラベルが入力された場合にこれと連関度の高い連想単語を出力することが可能となる。
【0046】
エンティティ格納部15には、1または2以上のエンティティ並びにエンティティ値が格納される。エンティティとは、会話文情報に対応付けられた1または2以上の各単語である。単語とは、文を構成する単位である。単語は、例えば、単に「語」、または「ことば」などと呼んでもよいし、形態素の一種(例えば、後述する自立語)と考えてもよい。
【0047】
エンティティ格納部15には、
図5に示すエンティティテーブルTB3のように、例えば、1以上の各エンティティに対応付けて、1または2以上のエンティティ値が格納される。エンティティ値は、エンティティを具体化した文字列である。
【0048】
エンティティは、通常、コーパス格納部14に格納されている1以上の会話文情報の中のいずれか1つ又は2以上の会話文情報に対応付いている。従って、エンティティ格納部15には、例えば、コーパス格納部14に格納されている1以上の会話文情報ごとに、1または2以上のエンティティが格納されてもよい。
【0049】
エンティティテーブルTB3では、連想モデルセットTB2における一の特徴ラベル又は連想単語をエンティティとした場合、当該連想モデルセットTB2においてそのエンティティに紐付けられているものをエンティティ値とする。例えば連想モデルセットTB2において、特徴ラベル及び連想単語に「車」を含むものについて、これに紐付けられているものは、「車」、「ラインナップA」、「重い」、「乗り物」である。このため、「車」をエンティティとした場合、エンティティ値は「車」、「ラインナップA」、「重い」、「乗り物」となる。また、「石焼き芋」をエンティティとした場合、エンティティ値は「甘い」、「美味しい」、「作物」、「品種改良」、「土の中」等がエンティティ値となる。
【0050】
エンティティテーブルTB3は、このようなエンティティとエンティティ値が互いに一対一、又は一対複数で紐付けられている。このため、このエンティティテーブルTB3を介して、エンティティ値からこれに関連するエンティティを導出することができ、またエンティティからエンティティ値を導出することも可能となる。
【0051】
エンティティ及びエンティティ値の設定の際には例えば、図示せぬサーバにおいて、特徴ラベル及び連想単語を検索した検索結果の件数の多い文字列である特徴ラベル又は連想単語をエンティティに設定し、検索結果の件数の少ないもう一方の文字列をエンティティ値に設定するようにしてもよい。
【0052】
また、エンティティテーブルTB3は、互いに対応付けされたエンティティ及びエンティティ値に対して更に画像が紐付けされて記憶される。エンティティ及びエンティティ値は、上述したように連想モデルセットTB2から抽出しており、連想モデルセットTBにおける特徴ラベルは、総括推論結果テーブルTB1において画像と紐付いている。このため、これら互いに紐付いた対応関係から、エンティティ及びエンティティ値に対して画像を紐付けることが可能となる。その結果、
図5に示すように各画像A1、A2、A3、・・・・に対して紐付いたエンティティ及びエンティティ値の関係を格納することが可能となる。
【0053】
なおエンティティやエンティティ値を構成する単語は、例えば、連語でもよい。連語とは、2以上の自律語が結び付いて一定の意味を表す語であり、複合語といってもよい。連語は、例えば、“温泉”と“旅館”が結合した“温泉旅館”や、“ラインナップ”と“A”が結合した“ラインナップA”等であるが、“中村一郎”といった氏と名の組でもよく、2以上の語の組であれば何でもよい。
【0054】
また、エンティティテーブルTB3には、1または2以上の日変換情報が格納される。日変換情報とは、日単語を日付に変換するための情報である。日単語とは、日に関する単語である。日単語は、通常、エンティティ名「日付エンティティ」に対応付いた単語であり、例えば、「先月」、「昨日」、「先週」、「今年」、「今月」、「昨年」、「前期」、「今年度」などであるが、日付に変換し得る情報であれば何でもよい。
【0055】
日変換情報は、日単語と、日情報取得情報とを有する。日情報取得情報とは、日情報を取得するための情報である。日情報とは、日単語に対応する日に関する情報であり、問合情報を構成する際に使用する情報である。日情報は、例えば、“4月1日”等の日付を示す情報でもよいし、“4/1〜4/30”等の開始日付から終了日付までの期間を示す情報でもよく、これらに限定されるものではない。日情報取得情報は、例えば、関数名、またはメソッド名であるが、API情報でもよいし、プログラム自体でもよく、またこれらに限定されるものではない。
【0056】
具体的には、日単語「先月」に対する日情報取得情報は、例えば、現在時刻情報(例えば“2020年5月10日11時15分”:以下同様)を取得し、当該現在時刻情報が有する月(例えば“5月”)に対して前の月(例えば“4月”)を取得し、当該前の月のカレンダー情報を参照して、当該前の月の初日から末日までの日情報(例えば“4/1〜4/30”等)を取得するプログラム等でもよい。
【0057】
また、日単語「今年」に対する日情報取得情報は、例えば、現在時刻情報を取得し、当該現在時刻情報が有する年(例えば“2020年”)のカレンダー情報を参照して、当該年の初日から、当該現在時刻情報が有する日までの日情報(例えば、“2020/1/1〜2020/5/10”)を取得するAPI情報等でもよい。
【0058】
さらに、日単語「昨日」に対する日情報取得情報は、現在時刻情報を取得し、当該現在時刻情報が有する日の前の日の日情報(例えば、“5/9”)を取得するメソッド、またはそのメソッド名等でもよい。
【0059】
コーパス格納部14には、1または2以上の会話文情報が格納される。会話文情報とは、会話文の情報である。会話文情報は、通常、会話文の例文である。例文は、例えば、“温泉旅館のパンフレット見せて”や“〇〇ブランドの車のカタログ見せて”等であるが、これらに限定されるものではない。
【0060】
ただし、会話文情報は、会話文のテンプレートであってもよい。テンプレートは、例えば、“{車}の画像はある?”、“{乗り物}の{パンフレット}を見せて”、“{メーカ}の{車}の{情報}を教えて”、“{企業}の{車}の{情報}を教えて”等であり、テンプレートに含まれる{車}等の“{”,“}”で表現される情報は、エンティティ、即ち変数である。
【0061】
会話文情報は、通常、インテントに対応付いている。インテントとは、処理動作を特定するための情報ともいえる。処理動作の例としては、例えば「画像検索」、「パンフレット検索」、「画像情報検索」等であり、これらの各処理動作を特定する情報に対応付けて、コーパステーブルTB4に格納されることであってもよい。
【0062】
すなわち、コーパス格納部14には、例えば、インテント格納部12に格納されている1以上のインテントごとに、1または2以上の会話文情報が格納される。
【0063】
各インテントに紐付いた会話文情報(コーパス)に関するコーパステーブルTB4の例を
図5に示す。コーパステーブルTB4には、通常、格納されている1以上の会話文情報ごとに、1または2以上のエンティティ情報も格納される。エンティティ情報とは、一の会話文情報に対応付いている1以上の各エンティティに関する情報である。エンティティ情報は、上述したエンティティ、エンティティ値に加え、各エンティティの開始位置、終了位置、およびエンティティ名を有する。
【0064】
ここでいう開始位置とは、会話文情報において当該エンティティが始まる位置である。開始位置は、例えば、会話文を構成する文字列において、当該エンティティの最初の文字が何番目の文字であるかを示す値(例えば、“1”や“4”等)で表現される。同様に、終了位置とは、会話文情報において当該エンティティが終わる位置であり、例えば、当該エンティティの最後の文字が何番目の文字であるかを示す値(例えば、“2”や“5”等)で表現される。ただし、開始位置や終了位置の表現形式はこれらに限定されるものではない。なお、開始位置および終了位置は、オフセットといってもよい。また、オフセットは、バイト数で表現されてもよく、また、これに限定されるものではない。
【0065】
エンティティ名とは、エンティティの名称である。エンティティ名は、例えば、「対象物エンティティ」、「日付エンティティ」、「情報エンティティ」等であるが、エンティティの属性を表現し得る情報であれば、その形式はこれらに限定されるものではない。対象物エンティティとは、対象物に関するエンティティであり、表1でいうところの{乗り物}や、{車}、{企業}等である。日付エンティティとは、日付に関するエンティティである。情報エンティティとは、必要とされている情報に関するエンティティである。
【0066】
または、エンティティ情報は、会話文情報がテンプレートの場合、例えば、エンティティ名、および順序情報を有していてもよい。順序情報とは、テンプレートに含まれる1以上の変数において、当該エンティティ名が何番目の変数に対応するかを示す値である。ただし、エンティティ情報の構造は、これに限定されるものではない。
【0067】
なお、実施形態におけるコーパスとは、例えば、コーパス格納部14に格納されている1以上の会話文情報の各々と考えてもよいし、1以上の会話文情報、および各会話文情報に対応付いているエンティティ情報の集合と考えることもできる。
【0068】
上述した連想モデルセットTB2、エンティティテーブルTB3、コーパステーブルTB4は、例えば、表形式のデータベースであってもよい。テーブルには、例えば、1または2以上の項目名が登録され、さらに、当該1以上の項目名ごとに、1または2以上の値が登録される。なお、項目名は、属性名といってもよいし、一の項目名に対応する1以上の各値は、属性値といってもよい。また、テーブルは、例えば、リレーショナルデータベースのテーブル、TSV、エクセル、CSV等であるが、その種類はこれらに限定されるものではない。
【0069】
画像データ格納部26は、画像取得部5を介して取得された画像を格納するための領域である。総括推論結果テーブルTB1やエンティティテーブルTB3において各パラメータに対して各画像が紐付けられているが、その紐付いた画像を即座に読み出すことができるように、これを画像データ格納部26に格納しておく。
【0070】
メタデータ格納部27は、補助記憶部4に記憶された各モデルDB1やテーブルTB1〜TB4は、中央制御部20が実行部3に対して各種処理動作を実行する上で読み出され、参照される。また補助記憶部4に記憶された各モデルDB1やテーブルTB1〜TB4は、画像取得部5において取得された画像に基づき、総括推論部7において、新たにメタデータとして特徴ラベルが抽出され、或いは紐付け部8において新たに連想単語が導出される都度、更新されるものであってもよい。
【0071】
抽出部9は、後述する画像特定システム2において抽出されたエンティティと、特徴ラベル及び連想単語の少なくとも1つと、を比較し、抽出されたエンティティと少なくとも一部が一致する特徴ラベル及び連想単語の少なくとも1つと紐づく画像を抽出する。かかる場合には、上述した各モデルDB1やテーブルTB1〜TB4を参照する。抽出部9は、抽出した画像をユーザ端末10に送信し、ユーザ端末10は、画像を表示する。
【0072】
画像特定装置の構成
図7は、画像特定システム2のブロック図である。画像特定システム2は、格納部19、受付部29、処理部39、および出力部49を備える。
【0073】
格納部19は、テーブル格納部11、インテント格納部12、API情報格納部13、コーパス格納部14、エンティティ格納部15、および日変換情報格納部18を備える。受付部29は、会話文受付手段21を備える。会話文受付手段21は、音声受付手段211、および音声認識手段212を備える。
【0074】
処理部39は、パラメータ化手段30、インテント決定手段31、会話文情報決定手段32、エンティティ取得部33、パラメータ取得部34、API情報取得手段35、問合情報構成部36、および検索結果取得手段37を備える。パラメータ取得部34は、判断手段341、日情報取得手段342、エンティティ名取得手段343、翻訳項目名取得手段344、テーブル識別子取得手段345、主キー識別子取得手段346、および変換パラメータ取得手段347を備える。出力部4は、検索結果出力手段41を備える。
【0075】
格納部19は、各種の情報を格納するデータベースである。各種の情報とは、例えば、テーブル、インテント、API情報、コーパス、エンティティ、エンティティマッピング情報、PK項目、および日変換情報などである。なお、テーブル等の情報については後述する。また、その他の情報については、適時説明する。
【0076】
テーブル格納部11は、メタデータ抽出装置1におけるテーブル格納部11に記憶される総括推論モデルDB1と総括推論結果テーブルTB1、連想モデルセットTB2と同様のテーブルを記憶する。画像特定システム2において、このテーブル格納部11は、メタデータ抽出装置1におけるテーブル格納部11を利用するのであれば、この画像特定システム2側において省略するようにしてもよい。
【0077】
インテント格納部12には、1または2以上のインテントが格納される。インテントとは、画像特定の処理毎に管理される情報であり、画像特定の処理動作を特定するための情報ともいえる。インテントは、通常、業務処理を特定する処理動作名を有する。処理動作名とは、処理動作の名称である。処理動作とは、通常、APIを介して実行される業務処理である。ただし、処理動作は、例えば、SQL文に応じて実行される業務処理であってもよい。
【0078】
なお、処理動作名は、通常、後述するAPI情報にも対応付いている。従って、インテントは、例えば、処理動作名を介して、API情報に対応付けられる、と考えてもよい。
【0079】
API情報格納部13には、1または2以上のAPI情報が格納される。API情報とは、APIに関する情報である。APIとは、プログラムの機能を利用するためのインターフェースである。APIは、例えば、関数、メソッド、または実行モジュールなどのソフトウェアである。APIは、例えば、WebAPIであるが、それ以外のAPIでもよい。WebAPIとは、HTTPやHTTPSなどのWeb通信のプロトコルを用いて構築されたAPIである。なお、WebAPI等のAPIについては、公知技術であるので、詳しい説明を省略する。
【0080】
API情報は、インテントに対応付いている情報である。API情報は、前述したように、例えば、処理動作名を介して、インテントに対応付いている。
【0081】
API情報は、通常、画像化された情報媒体を検索を行うための情報である。ただし、API情報は、例えば、情報の登録、または情報に基づく処理などを行うための情報であってもよい。
【0082】
API情報は、1または2以上のパラメータ特定情報を有する。パラメータ特定情報とは、パラメータを特定する情報である。パラメータとは、特定の属性を有する値である、といってもよい。値は、通常、変数である。変数は、引数といってもよい。
【0083】
パラメータは、通常、エンティティを変換した情報であるが、エンティティそのものでもよい。パラメータは、例えば、APIに与える引数、またはSQL文の変数などである。
【0084】
パラメータは、例えば、属性名と値との組で構成されてもよい。属性名と値との組とは、具体的には、例えば、“shain_code=2”、“sta_date=20190401,end_date=20190430”等であるが、その形式はこれらに限定されるものではない。
【0085】
パラメータ特定情報は、例えば、パラメータ名である。パラメータ名とは、パラメータの名称である。または、パラメータ特定情報は、例えば、属性名であるが、パラメータを特定し得る情報であれば何でもよい。
【0086】
コーパス格納部14には、メタデータ抽出装置1におけるコーパス格納部14に記憶されるコーパステーブルTB4と同様のテーブルを記憶する。画像特定システム2において、このコーパス格納部14は、メタデータ抽出装置1におけるコーパス格納部14を利用するのであれば、この画像特定システム2側において省略するようにしてもよい。
【0087】
エンティティ格納部15には、メタデータ抽出装置1におけるエンティティ格納部15に記憶されるエンティティテーブルTB3と同様のテーブルを記憶する。画像特定システム2において、このエンティティ格納部15は、メタデータ抽出装置1におけるエンティティ格納部15を利用するのであれば、この画像特定システム2側において省略するようにしてもよい。
【0088】
受付部29は、各種の情報を受け付ける。各種の情報とは、例えば、会話文である。受付部29は、会話文等の情報を、例えば、端末から受信するが、キーボードやタッチパネルやマイクロフォン等の入力デバイスを介して受け付けてもよい。または、受付部29は、例えば、ディスクや半導体メモリ等の記録媒体から読み出された情報を受け付けてもよく、その受け付けの態様は特に限定されるものではない。
【0089】
会話文受付手段21は、会話文を受け付ける。会話文とは、人が会話する文であり、自然言語による文といってもよい。会話文の受け付けは、例えば、音声での受け付けであるが、テキストでの受け付けでもよい。音声とは、人が発した声である。テキストとは、人が発した声を音声認識した文字列である。文字列は、1または2以上の文字の配列で構成される。
【0090】
音声受付手段211は、会話文の音声を受け付ける。音声受付手段211は、会話文の音声を、例えば、端末から、端末識別子と対に受信するが、マイクロフォンを介して受け付けてもよい。端末識別子とは、端末を識別する情報である。端末識別子は、例えば、MACアドレス、IPアドレス、IDなどであるが、端末を識別し得る情報であれば何でもよい。なお、端末識別子は、端末のユーザを識別するユーザ識別子でもよい。ユーザ識別子は、例えば、メールアドレス、電話番号等であるが、IDや住所・氏名等でもよく、ユーザを識別し得る情報であれば何でもよい。
【0091】
音声認識手段212は、音声受付手段211が受け付けた音声に対して音声認識処理を行い、文字列である会話文を取得する。なお、音声認識処理は公知技術であり、詳しい説明を省略する。
【0092】
処理部39は、各種の処理を行う。各種の処理とは、例えば、パラメータ化手段30、インテント決定手段31、会話文情報決定手段32、エンティティ取得部33、パラメータ取得部34、API情報取得手段35、問合情報構成部36、検索結果取得手段37、判断手段341、日情報取得手段342、エンティティ名取得手段343、翻訳項目名取得手段344、テーブル識別子取得手段345、主キー識別子取得手段346、および変換パラメータ取得手段347などの処理である。また、各種の処理には、例えば、フローチャートで説明する各種の判別なども含まれる。
【0093】
処理部39は、例えば、会話文受付手段21が会話文を受け付けたことに応じて、パラメータ化手段30及びインテント決定手段31等の処理を行う。なお、1以上の各端末から、端末識別子と対に会話文が送信される場合、処理部39は、インテント決定手段31等の処理を、1以上の端末識別子ごとに行う。
【0094】
パラメータ化手段30は、会話文受付手段21が受け付けた1以上の会話文に含まれる1以上のエンティティをパラメータ化する。なお、パラメータ化手段30は、会話文情報決定手段32が決定した会話文情報に対応するエンティティをパラメータ化してもよい。
【0095】
詳しくは、パラメータ化手段30は、音声として入力された会話文に含まれるエンティティ、一例として自立語をパラメータ化する。例えば、「ラインナップAの画像はある?」という会話文と「ラインナップAについての画像はありますか?」という会話文を比較すると、助詞が入れ替わっている点以外、2つの会話文に異なる点は無い。これにも拘わらず、これまでの検索結果では、異なる意味を持つ会話文として、必ずしも同じ意味内容であると認識されていないことがあった。そこで、パラメータ化手段30は、これらの会話文に含まれる「ラインナップA」、「画像」という自立語、即ちエンティティをパラメータ化する。
【0096】
インテント決定手段31は、会話文受付手段21が受け付けた会話文に対応するインテントを決定する。
【0097】
詳しくは、インテント決定手段31は、最初、例えば、会話文受付手段21が受け付けた会話文に対応するテキストを取得する。テキストは、前述したように、例えば、会話文受付手段21が受け付けた会話文を音声認識した結果であるが、会話文受付手段21が受け付けた会話文そのものでもよい。
【0098】
すなわち、インテント決定手段31は、音声である会話文が受け付けられた場合、当該会話文を音声認識し、テキストを取得する。なお、テキストである会話文が受け付けられた場合、インテント決定手段31は、当該テキストを取得すればよい。
【0099】
次に、インテント決定手段31は、取得したテキストに対して、例えば、形態素解析、構文解析を行うことにより、当該テキストから1以上の自立語を取得する。なお、形態素解析は公知技術であり、詳しい説明を省略する。
【0100】
そして、インテント決定手段31は、取得した1以上の自立語と同一または類似する単語を有する処理動作名を有するインテントを決定する。
【0101】
詳しくは、例えば、格納部1に類義語辞書が格納されている。類義語辞書とは、類義語に関する辞書である。類義語辞書には、インテント格納部12に格納されている1以上の各インテントを構成する処理動作名ごとに、当該処理動作名が有する単語と、当該単語の1または2以上の類義語とが登録されている。
【0102】
例えば、会話文受付手段21が会話文「メーカー〇〇の車の販売価格情報を教えて」を受け付けた場合、インテント決定手段31は、当該会話文から、「メーカー〇〇」や「車」や「販売価格情報」等の1以上の自立語を取得し、各自立語をキーにインテント格納部12を検索して、当該自立語と一致する処理動作名を有するインテントがあるか否かを判断する。なお、一致は、例えば、完全一致であるが、部分一致でもよい。そして、当該自立語と一致する単語を有する、処理動作を特定するインテントがある場合、インテント決定手段31は、当該インテントを決定する。本例では、表1の例に照らし合わせるのであれば、自立語「メーカー〇〇」と部分一致する単語「メーカー」、「車」と一致する単語「車」、「販売価格情報」と部分一致する単語「情報」とを有するインテントとして「画像情報検索」があるため、当該インテントが決定される。
【0103】
なお、当該自立語と一致する単語を有する処理動作名を有するインテントがない場合、例えば、インテント決定手段31は、類義語辞書から、当該自立語に対応する1以上の類義語のうち、一の類義語を取得し、当該一の類義語をキーにインテント格納部12を検索して、当該当該一の類義語と一致する単語を有する処理動作名を有するインテントがあるか否かを判断する。そして、当該一の類義語と一致する単語を有する処理動作名を有するインテントがある場合、インテント決定手段31は、当該インテントを決定する。かかるインテントがない場合、インテント決定手段31は、他の類義語について、同様の処理を行い、インテントを決定する。どの類義語についても、かかるインテントがない場合、インテント決定手段31は、インテントが決定されない旨を出力してもよい。
【0104】
会話文情報決定手段32は、インテント決定手段31が決定したインテントをキーにコーパス格納部14を検索し、当該インテントに対応する1以上の会話文情報の中から、会話文受付手段21が受け付けた会話文に最も近似する会話文情報を決定する。
【0105】
会話文に最も近似する会話文情報とは、例えば、会話文に対する類似度が最も高い会話文情報である。すなわち、会話文情報決定手段32は、例えば、受け付けられた会話文と、決定されたインテントに対応する1以上の各会話文情報との類似度を算出し、類似度が最大の会話文情報を決定する。
【0106】
または、会話文情報決定手段32は、例えば、受け付けられた会話文の名詞の位置を変数にしたテンプレートに一致する会話テンプレートを検索してもよい。すなわち、コーパス格納部14には、1または2以上の各エンティティ名を変数にしたテンプレートが格納されており、会話文情報決定手段32は、受け付けられた会話文の1または2以上の各エンティティ名の位置を取得し、取得したエンティティ名の位置に対応するテンプレートを会話文情報に決定する。なお、会話文の1以上の各エンティティ名の位置とは、1以上の各エンティティ名を有するテンプレートにおいて、当該エンティティ名が何番目のエンティティ名かを示す情報である。
【0107】
エンティティ取得部33は、会話文情報決定手段32が決定した会話文情報に対応付いている1以上の各エンティティに対応し、会話文受付手段21が受け付けた会話文が有する単語である1以上のエンティティを取得する。
【0108】
エンティティ取得部33は、例えば、決定された会話文情報に対応付いている1以上のエンティティごとに、当該エンティティの開始位置および終了位置をコーパス格納部14から取得し、受け付けられた会話文から、当該開始位置および当該終了位置により特定される単語を取得する。
【0109】
パラメータ取得部34は、エンティティ取得部33が取得した1以上の各エンティティに対応する1以上のパラメータを取得する。
【0110】
取得されるパラメータは、例えば、取得されたエンティティそのものであるが、取得されたエンティティを変換した情報でもよい。すなわち、例えば、取得された1以上のエンティティの中に日単語が含まれている場合、パラメータ取得部34は、当該日単語をパラメータである日情報に変換する。
【0111】
パラメータ取得部34を構成する判断手段341は、エンティティ取得部33が取得した1以上のエンティティの中に日単語が存在するか否かを判断する。詳しくは、例えば、格納部1に、1または2以上の日単語が格納されており、判断手段341は、取得された1以上のエンティティごとに、格納されているいずれかの日単語と一致するか否かの判別を行い、少なくとも1つのエンティティについての判別結果が一致を示す場合に、取得された1以上のエンティティの中に日単語が存在すると判断する。
【0112】
日情報取得手段342は、取得された1以上のエンティティの中に日単語が存在すると判断手段341が判断した場合に、当該日単語に対応する日変換情報を日変換情報格納部18から取得し、当該日変換情報を用いて、パラメータである日情報を取得する。
【0113】
具体的には、例えば、格納部1に、日単語「昨年」等が格納されており、会話文「ブランドBの昨年のパンフレットを見せて」が受け付けられて、3つのエンティティ「ブランドB」、「昨年」、および「パンフレット」が取得された場合、判断手段341は、エンティティ「先月」が日単語「先月」と一致することから、取得された3のエンティティの中に日単語が存在すると判断する。例えば、現在時刻情報を取得し、日情報(例えば“4/1〜4/30”等)を取得する。
【0114】
日情報取得手段342は、当該日単語「昨年」に対応する日情報取得情報(例えば、プログラム)を日変換情報格納部18から取得する。そして、日情報取得手段342は、当該日情報取得情報を用いて、MPU(Micro Processing Unit)の内蔵時計やNTPサーバ等から現在時刻情報(例えば“2020年5月10日11時15分”)を取得し、当該現在時刻情報が有する年(例えば“2020年”)に対して前の月(例えば“2019年”)を取得する。そして、日情報取得手段342は、当該前の月のカレンダー情報を参照して、当該前の年の初日から末日までの日情報“2019年1月1日〜2019年12月31日”を取得する。
【0115】
なお、会話文から取得された日単語が「今年」である場合、日情報取得手段342は、当該日単語「今年」に対応する日情報取得情報(例えば、API情報)を日変換情報格納部18から取得する。そして、日情報取得手段342は、当該日情報取得情報を用いて、内蔵時計等から現在時刻情報を取得し、当該現在時刻情報が有する年(例えば“2020年”)のカレンダー情報を参照して、当該年の初日から、当該現在時刻情報が有する日までの日情報(例えば、“2020年1月1日〜2020年12月31日”)を取得する。
【0116】
また、取得された日単語が「昨日」である場合、日情報取得手段342は、当該日単語「昨日」に対応する日情報取得情報(例えば、メソッド)を日変換情報格納部18から取得する。そして、日情報取得手段342は、当該日情報取得情報を用いて、内蔵時計等から現在時刻情報を取得し、当該現在時刻情報が有する日の前の日の日情報(例えば、“5/9”)を取得する。
【0117】
エンティティ名取得手段343は、エンティティ取得部33が取得した1以上のエンティティごとに、当該エンティティに対応するエンティティ名をエンティティ格納部15から取得する。
【0118】
当該エンティティに対応するエンティティ名とは、当該エンティティが取得された会話文において、当該エンティティに対応するエンティティの位置に一致または類似する開始位置および終了位置と対になるエンティティ名である。エンティティ名取得手段343は、エンティティ取得部33が取得した1以上のエンティティごとに、例えば、当該エンティティに対応付いたエンティティ情報を用いて、当該エンティティに対応するエンティティ名をエンティティ格納部15から取得してもよい。
【0119】
具体的には、例えば、受け付けられた会話文「メーカー〇〇の車の販売価格情報を教えて」から3つのエンティティ「メーカー〇〇」、「車」、および「販売価格情報」が取得された場合、エンティティ名取得手段343は、コーパス格納部14に格納されている会話文情報「メーカー〇〇の車の販売価格情報を教えて」において、当該会話文情報に対応付けて格納されている3つのエンティティ情報のうち、受け付けられた会話文「メーカー〇〇の車の販売価格情報を教えて」における「メーカー〇〇」と同じ開始位置および終了位置を有する1つ目のエンティティ情報を用いて、「メーカー〇〇」に対応付いた「メーカエンティティ」を取得する。
【0120】
また、エンティティ名取得手段343は、例えば、上記3つのエンティティ情報のうち、会話文「メーカー〇〇の車の販売価格情報を教えて」における「車」と同じ開始位置および終了位置を有する2つ目のエンティティ情報を用いて、「車」に対応付いた「車エンティティ」を取得し、さらに、会話文「メーカー〇〇の車の販売価格情報を教えて」における「販売価格情報」と同じ開始位置および終了位置を有する3つ目のエンティティ情報を用いて、「販売価格情報」に対応付いた「情報エンティティ」を取得する。
【0121】
API情報取得手段35は、インテント決定手段31が決定したインテントに対応するAPI情報をAPI情報格納部13から取得する。
【0122】
API情報取得手段35は、例えば、インテント決定手段31が決定したインテントに対応する処理動作名を有するAPI情報を、API情報格納部13から取得する。
【0123】
具体的には、API情報格納部13に、例えば、処理動作名“画像情報検索”と3以上のパラメータ特定情報“企業コード,Cope_code”,“車コード,Car_code”,および“情報コード,Info_code”などを有するAPI情報1が格納されており、インテント名「画像情報検索」で特定されるインテントが取得された場合、API情報取得手段35は、当該インテントが有する処理動作名“画像情報検索”を有するAPI情報1を取得する。
【0124】
問合情報構成部36は、パラメータ取得部34が取得した1以上のパラメータと、API情報取得手段35が取得したAPI情報とを用いて、問合情報を構成する。問合情報とは、情報検索するための情報であり、通常、実行可能な情報である。問合情報は、例えば、引数が挿入された関数またはメソッドであるが、完成されたSQL文でもよいし、URLとパラメータの組でもよい。
【0125】
問合情報構成部36は、例えば、API情報取得手段35が取得したAPI情報が有する1以上の各変数の箇所に、各箇所に対応付くパラメータであり、パラメータ取得部34が取得したパラメータを配置することにより、問合情報を構成する。
【0126】
検索結果取得手段37は、問合情報構成部36が構成した問合情報を実行し、パラメータ化手段30により得られたパラメータを用いて格納部1(データベース)を検索することにより検索結果を取得する。また、検索結果取得手段37は、パラメータ化手段30により得られたパラメータを含むAPI情報を生成し、生成したAPI情報に基づいて格納部1(データベース)を検索してもよい。即ち、新たにパラメータを書き込むことにより、あるいは既に書き込まれているパラメータを新たなパラメータに書き換えることによりAPI情報を生成し、パラメータが反映されたAPI情報に基づいてデータベースを検索してもよい。なお、API情報やSQL等の問合のための情報や、検索結果取得手段37の詳しい動作については、具体例や変形例で説明する。
【0127】
出力部49は、各種の情報を出力する。各種の情報とは、例えば、検索した情報媒体の画像である。
【0128】
出力部49は、例えば、受付部29が端末識別子と対に会話文等の情報を受信したことに応じて処理部39が各種の処理を行った結果である検索結果等の情報を、当該端末識別子で識別される端末に送信する。または、例えば、受付部29がタッチパネルやマイクロフォン等の入力デバイスを介して会話文等の情報を受け付けたことに応じて、出力部49は、検索結果等の情報を、ディスプレイやスピーカ等の出力デバイスを介して出力してもよい。
【0129】
ただし、出力部49は、各種の情報を、例えば、プリンタでプリントアウトしたり、記録媒体に蓄積したり、他のプログラムに引き渡したり、外部の装置に送信したりしてもよく、その出力の態様は特に限定されるものではない。
【0130】
検索結果出力手段41は、検索結果取得手段37を介して取得した検索結果を出力する。検索結果出力手段41は、例えば、会話文受付手段21がユーザ端末10から会話文を受信したことに応じて検索結果取得手段37が取得した検索結果としての画像を、当該ユーザ端末10に送信する。または、検索結果出力手段41は、例えば、会話文受付手段21がマイクロフォン等の入力デバイスを介して会話文を受け付けたことに応じて検索結果取得手段37が取得した検索結果としての画像を、ディスプレイ等の出力デバイスを介して表示してもよい。
【0131】
格納部19、テーブル格納部11、インテント格納部12、API情報格納部13、コーパス格納部14、エンティティ格納部15、および日変換情報格納部18は、例えば、ハードディスクやフラッシュメモリといった不揮発性の記録媒体が好適であるが、RAMなど揮発性の記録媒体でも実現可能である。
【0132】
格納部19等に情報が記憶される過程は、特に限定されるものではない。例えば、記録媒体を介して情報が格納部19等で記憶されるようになってもよく、ネットワークや通信回線等を介して送信された情報が格納部1等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部1等で記憶されるようになってもよい。入力デバイスは、例えば、キーボード、マウス、タッチパネル、マイクロフォン等、何でもよい。
【0133】
受付部29、会話文受付手段21、音声受付手段211、および音声認識手段212は、入力デバイスを含むと考えても、含まないと考えてもよい。受付部29等は、入力デバイスのドライバーソフトによって、または入力デバイスとそのドライバーソフトとで実現され得る。また、この受付部29としての機能は、ユーザ端末10内に実装されており、ユーザ端末10において取得した会話文情報が公衆通信網50を介して画像特定システム2に送られるものであってもよい。
【0134】
処理部39、インテント決定手段31、会話文情報決定手段32、エンティティ取得部33、パラメータ取得部34、API情報取得手段35、問合情報構成部36、検索結果取得手段37、判断手段341、日情報取得手段342、エンティティ名取得手段343、翻訳項目名取得手段344、テーブル識別子取得手段345、主キー識別子取得手段346、および変換パラメータ取得手段347は、通常、CPU(Central Processing Unit)あるいはMPUやメモリ等から実現され得る。処理部39等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。ただし、処理手順は、ハードウェア(専用回路)で実現してもよい。
【0135】
出力部49、および検索結果出力手段41は、ディスプレイやスピーカ等の出力デバイスを含むと考えても含まないと考えてもよい。出力部49等は、出力デバイスのドライバーソフトによって、または出力デバイスとそのドライバーソフトとで実現され得る。
【0136】
なお、受付部29等の受信機能は、通常、無線または有線の通信手段(例えば、NIC(Network interface controller)やモデム等の通信モジュール)で実現されるが、放送を受信する手段(例えば、放送受信モジュール)で実現されてもよい。また、出力部49等の送信機能は、通常、無線または有線の通信手段で実現されるが、放送手段(例えば、放送モジュール)で実現されてもよい。
【0137】
次に、本発明を適用したメタデータ抽出システム100の処理動作について
図8に示すフローチャートを参照しながら詳細に説明をする。
【0138】
ステップS11〜S17は、メタデータ抽出装置1により、各情報媒体の画像からメタデータを抽出する処理動作を示している。
【0139】
ステップS11において、画像取得部5は、情報媒体の画像の取得を行う。情報媒体の画像は、ユーザ端末10を介して撮像されて公衆通信網50を介してメタデータ抽出装置1において受信され、或いはメタデータ抽出装置に取り付けられた図示しないカメラを介して直接的に撮像される。
【0140】
ステップS12では、特徴マップ生成部6により、ステップS11において取得された画像について特徴マップを生成する。この特徴マップの生成は、画素単位、又は例えば複数の画素の集合体であるブロック領域単位で、周知の画像解析に基づいて、必要に応じてディープラーニング技術を利用した、解析画像の特徴量を2次元画像上に反映させることで行う。
【0141】
次にステップS13へ移行し、総括推論部7は、特徴マップから対象物の抽出を行う。このステップS13では、テーブル格納部11に格納された総括推論モデルDB1を利用し、特徴マップから画像中の各対象の内容を推論し、メタデータを生成する。
【0142】
かかる場合には、
図3に示すように、総括推論モデルDB1を構成する個別推論モデルDB11〜DB15に特徴マップ、ひいてはこれを構成する特徴量が画素単位又はフロック領域単位で入力が入力される。それぞれ画像中の対象物の内容を判別することを可能とするため、各個別推論モデルDB11〜DB15には、それぞれ対象の内容(「車」、「木」、「柵」等)や色、文字列等の各要素をそれぞれ判別可能とするための学習モデルが予め構築されている。ステップS13においてはこれらの学習モデルを参照し、対象の内容を抽出する。この各個別推論モデルDB11〜DB15からは、例えば、「車:96.99%、木:2.01%」や、「赤 50.01%、緑 37.7%」等が出力されるが、個別推論結果としては、これらの出力された結果の1又は2以上について、予めシステム側又は運営側において決めたルールに基づいて個別推論結果を出力する。この個別推論結果が、特徴ラベルとなる。
【0143】
次にステップS14に移行し、紐づけ部8は、連想モデルセットTB2を参照し、ステップS13において出力された総括推論結果としての特徴ラベルから連想単語を導出する。上述したように、連想モデルセットTB2は、特徴ラベルと連想単語が互いに紐付いた状態で記憶されている。このため、特徴ラベルを入力することにより、これに紐づいている1又は2以上の連想単語を容易に抽出することができる。この連想単語を通じて、画像から抽出することができる対象の内容に加え、そこから想起することができる雰囲気や感覚、イメージや感情を膨らませることができる。例えば、連想モデルセットTB2において特徴ラベル「温泉」には、連想単語として「温かい」、「硫黄」、「アルカリ性」、「湯気」、「保養」等が紐付けられている。このため、総括推論結果として、「温泉」が特徴ラベルとして抽出された場合、これに関係するこれらの連想単語「温かい」、「硫黄」、「アルカリ性」、「湯気」、「保養」等のように、特徴ラベルからイメージを膨らませることが可能となる。なお、このステップS14において、この連想単語を導出する上で、必要に応じてインターネットに掲載されている情報を援用するようにしてもよい。かかる場合には、特徴ラベルを検索用タームとして検索エンジンを通じて検索した結果、出現頻度が高い単語を連想単語として取り込むようにしてもよい。
【0144】
ステップS15では、ステップS11において取得した画像に対するメタデータの生成を行う。このメタデータは、上述した個別推論結果としての特徴ラベルの文字列に加え、ステップS14において導出された連想単語も含まれる。メタデータ抽出装置1は、このような特徴ラベル、連想単語からなるメタデータを画像と紐づけた上で、メタデータ格納部27にこれを格納するようにしてもよいし、この紐付けられた画像を画像データ格納部26に格納するようにしてもよい。このとき、画像がメタデータと紐づけられた画像メタデータ連想ラベルTB5として記憶するようにしてもよい(ステップS16)。
【0145】
図9は、このようなメタデータの抽出から保存までの処理動作を模式的に示したものである。ステップS13において出力された総括推論結果としての特徴ラベルから連想モデルセットに基づき、連想単語を連想することを新たに取得した画像A1、A2、・・毎に行う。そして、特徴ラベルと、これから派生する連想単語とを各画像A1、A2、・・毎に紐付けた画像メタデータ連想ラベルTB5を生成し、これをメタデータ格納部27に格納する。これにより、特徴ラベルや連想単語からなるメタデータに対して各画像A1、A2、・・が紐付けられることで、逆にこのようなメタデータの入力を受け付けた場合に、これに紐付いている画像A1、A2、・・を特定することが可能となる。
【0146】
次にステップS17に移行し、生成されたメタデータ(特徴ラベル、連想単語)からエンティティテーブルTB3、コーパステーブルTB4を作成する。
【0147】
エンティティテーブルは、特徴ラベル及び連想単語から、上述したようにエンティティとエンティティ値とを互いに紐付けたからなるテーブルを作成する。このとき、個々のエンティティ及びエンティティ値の組み合わせに対して、それぞれ対応する画像A1、A2、・・を紐付けておく。これにより、事後的に画像を読み出す場合において、エンティティを介して実現することができ、検索の利便性を高めることができる。
【0148】
また、コーパステーブルTB4を作成する場合には、エンティティテーブルTB3に保存されたエンティティに加え、後述するように画像特定システム2において抽出されたインテントや会話文情報とを紐づけることで、コーパステーブルTB4を生成してもよい。
【0149】
次に、上述したステップS11〜S17を通じて順次作成したエンティティテーブルTB3、コーパステーブルTB4、画像メタデータ連想ラベルTB5に基づいて、会話文情報の内容に対応する画像を特定する方法について、
図8を参照しながら詳細に説明をする。
【0150】
会話文情報の内容に対応する画像の特定は、画像特定システム2によりステップS21〜26を通じて行う。
【0151】
ステップS21において、受付部29は、音声により発せられた会話文を認識する。この会話文の認識は、音声から取得する以外に手入力されたテキストデータに記述された会話文から行うようにしてもよい。
【0152】
次にステップS22に移行し、受付部29は、音声認識を通じて取得した会話文をテキストデータ化する。この音声データをテキストデータ化へ変換する処理動作においては、公知の変換手法を用いるようにしてもよい。
【0153】
次にステップS23へ移行し、テキストデータ化した会話文を形態素解析や構文解析を行う。
【0154】
次にステップS24へ移行し、ステップS23において形態素解析、構文解析されたたテキストデータから1以上の自立語を取得する。次にインテント決定手段31は、取得した1以上の自立語と同一または類似する単語を有するアクション名を有するインテントを決定する。例えば会話文が「ラインナップAの画像はある?」の場合には、形態素解析によって、会話文から2つの自立語「ラインナップA」、「画像」を取得し、各自立語をキーにインテント格納部12におけるコーパステーブルTB4を検索し、「ラインナップA」と部分一致するアクション名として“画像検索”を有するインテントを決定する。
【0155】
また、ステップS24においては、会話文に含まれるエンティティを取得する。ステップS24では、この取得したエンティティを更にパラメータ化するようにしてもよい。例えば会話文が「ラインナップAの画像はある?」の場合には、形態素解析によって、会話文から2つの自立語「ラインナップA」、「画像」を取得し、このうちエンティティは「ラインナップA」となる。
【0156】
次にステップS25に移行し、画像特定処理を行う。この画像特定処理は、ステップS24において決定したインテントや、抽出したエンティティに基づいて行う。
【0157】
エンティティは、上述したエンティティ格納部15に格納されているエンティティテーブルTB3においてエンティティ及びエンティティ値に対してそれぞれに対応する画像が紐付けられた状態とされている。このため、ステップS24において会話文から抽出したエンティティを、このエンティティテーブルTB3におけるエンティティ及びエンティティ値と照らし合わせる。そしてこの照らし合わせたエンティティ及びエンティティ値に対応する画像を特定する。
【0158】
例えば
図10に示すように、「ラインナップA」がエンティティとして抽出されたのであれば、エンティティテーブルTB3におけるエンティティ及びエンティティ値と照らし合わせると、エンティティ値として「ラインナップA」に紐付けられた画像A1を特定することができる。また、エンティティとして「石焼き芋」が抽出されたのであれば、エンティティテーブルTB3におけるエンティティ及びエンティティ値と照らし合わせると、エンティティとして「石焼き芋」に紐付けられた画像A3を特定することができる。このようにエンティティテーブルTB3において引用する文言は、エンティティ又はエンティティ値の何れであってもよい。なお、画像を特定する上では、エンティティテーブルTB3の代替として、画像メタデータ連想ラベルTB5を参照するようにしてもよい。画像メタデータ連想ラベルTB5も同様に特徴ラベル、連想単語に対して、画像が紐付けられて記憶されている。このため、ステップS24において会話文から抽出したエンティティに対応する特徴ラベル、連想単語を抽出し、抽出した特徴ラベル、連想単語に紐付けられた画像を特定することができる。
【0159】
ステップS25における画像の特定は、ステップS24において決定したインテントを更に活用するようにしてもよい。インテントは、コーパス格納部14に格納されたコーパステーブルTB4において、会話文情報、エンティティ、エンティティ値が紐づいている。そして、このエンティティ、エンティティ値は、エンティティテーブルTB3において画像と紐づいている。このため、抽出したインテントに基づき、このコーパステーブルTB4、ひいてはエンティティテーブルTB3を参照することで、より高精度な画像の特定を実現することができる。
【0160】
また、エンティティやエンティティ値に紐付けられる画像をインテント毎に整理してグルーピングし保存しておくことにより、ステップS24において決定したインテントに応じたグループにのみ焦点を当てて検索すればよいため、より迅速に画像を特定することが可能となる。
【0161】
なお、ステップS25において、画像の特定を行う過程では、APIを介して画像を検索するようにしてもよい。かかる場合において、検索結果取得手段37は、抽出したインテントやエンティティや等を含むAPI情報を生成し、生成したAPI情報に基づいて格納部1(データベース)から画像検索してもよい。即ち、パラメータ(インテントやエンティティ)が反映されたAPI情報に基づいて画像検索してもよい。
【0162】
画像を特定した後、ステップS26へ移行し、この特定した画像を表示する。ユーザ端末10のユーザに画像を表示する場合には、画像特定システム2から公衆通信網50を介してユーザ端末10へ画像を送信し、ユーザ端末10を介して画像を表示する。また、画像特定システム2から直接的に画像を表示するようにしてもよく、かかる場合には出力部49を介して画像を表示する。
【0163】
上述した構成からなる本発明によれば、各情報媒体の画像にメタデータを関連付ける作業は非常に煩雑な作業を自動的に行うことが可能となる。写真について人間の視覚による判別や定義づけを経ることなくメタデータ化するができ、労力の負担を軽減できる。
【0164】
また本発明によれば、画像化された情報媒体の種類は多岐に亘る中、これら情報媒体の画像の事後的な検索を行う上で利便性がより高くなるようなメタデータを生成することができ、画像と関連付けすることができる。特に口語調の会話文で「ラインナップAの画像ある?」という文言が音声により取得された場合に、受け付けた会話文に対応する適切な情報媒体の画像を高精度に抽出することができ、またこれが実現できるようなメタデータの生成や関連付けを行うことが可能となる。
【0165】
しかもこのメタデータは、連想単語も含めているため、特徴ラベルのキーワードそのものに加え、そこから連想できる様々な単語が含まれる。このため、画像の特定時において、会話文中にこのような連想単語が含まれている場合においても、そこから画像を特定することもできる。
【0166】
なお本発明は、上述した実施の形態に限定されるものでは無い。
図3に示す総括推論モデルDB1は、
図11に示すように個別推論モデルDB11〜DB15に加え、更に個別推論モデルDB16を加えてもよい。
【0167】
個別推論モデルDB16は、情報媒体の種類を推論するためのデータベースとし、例えば個別推論モデルDB16は、情報媒体の形状を介してその種類を推論する。個別推論モデルDB16は、情報媒体が、例えばパンフレットなのか、カタログなのか、財務諸表なのか、出勤簿なのか、或いはレントゲン写真なのかを判別する。このような情報媒体の種類に関する総括推論結果も同様に特徴ラベル化し、同様にエンティティ、エンティティ値化することで、事後的な検索の利便性を高めることができる。
【解決手段】情報媒体の画像に含まれる情報からメタデータを抽出するメタデータ抽出プログラムにおいて、上記情報媒体の画像から特徴を抽出した特徴マップを生成する特徴マップ生成ステップと、特徴マップと要素毎の特徴ラベルとが互いに関連付けられた1以上の個別推論モデルを参照し、上記特徴マップ生成ステップにおいて生成された特徴マップから上記要素毎の特徴ラベルをメタデータとして抽出する推論ステップとをコンピュータに実行させることを特徴とする。