(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024109471
(43)【公開日】2024-08-14
(54)【発明の名称】人物検索装置及びプログラム
(51)【国際特許分類】
G06F 16/332 20190101AFI20240806BHJP
【FI】
G06F16/332
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2023014281
(22)【出願日】2023-02-01
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100121119
【弁理士】
【氏名又は名称】花村 泰伸
(72)【発明者】
【氏名】石渡 太智
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175HB03
(57)【要約】
【課題】人物情報を収集し、その人物情報から所望の人名を検索する際に、人物情報の収集が一層容易となり、かつユーザにとって使い勝手の良い検索を実現する。
【解決手段】人物検索装置1のテキスト人名抽出手段21は、ドキュメントを入力し、ドキュメントからテキストを抽出し、固有表現抽出技術を用いて人名を抽出し、テキスト特徴抽出手段22は、事前学習済みのBERTモデルを用いて、テキストの特徴量ベクトルC1を抽出し、登録手段23は、人名及び特徴量ベクトルC1を組としてデータベースに登録する。テキスト特徴抽出手段24は、検索クエリーを入力し、事前学習済みBERTモデルを用いて、検索クエリーの特徴量ベクトルC2を抽出する。検索手段25は、データベースの特徴量ベクトルC1と検索クエリーの特徴量ベクトルC2との間のコサイン類似度を算出し、最も高いコサイン類似度に対応する人名を特定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ユーザの操作により検索クエリーを入力し、当該検索クエリーに関連する人名を検索する人物検索装置において、
ドキュメントを入力し、当該ドキュメントからテキストを抽出し、固有表現抽出技術を用いて、当該テキストから人名を抽出するテキスト人名抽出手段と、
前記テキスト人名抽出手段により抽出された前記テキストを複数のトークンに分割し、前記複数のトークンの先頭に先頭トークンを付加し、トークン毎に分散表現ベクトルを生成することで、ベクトル列V1を生成し、
事前学習されたBERTモデルを用いて、前記ベクトル列V1を入力データとしたときのベクトル列V2を出力データとして推定し、
前記ベクトル列V2に基づいて、前記テキストの特徴量ベクトルC1を抽出する第1のテキスト特徴抽出手段と、
前記テキスト人名抽出手段により抽出された前記人名、及び前記第1のテキスト特徴抽出手段により抽出された前記テキストの特徴量ベクトルC1を組として、複数の組のデータをデータベースに登録する登録手段と、
前記ユーザの操作に従い、テキストからなる前記検索クエリーを入力し、前記検索クエリーを複数のトークンに分割し、前記複数のトークンの先頭に先頭トークンを付加し、トークン毎に分散表現ベクトルを生成することで、ベクトル列V3を生成し、
前記BERTモデルを用いて、前記ベクトル列V3を入力データとしたときのベクトル列V4を出力データとして推定し、
前記ベクトル列V4に基づいて、前記検索クエリーの特徴量ベクトルC2を抽出する第2のテキスト特徴抽出手段と、
前記データベースに登録された前記複数の組のデータのそれぞれを読み出し、前記複数の組のデータのそれぞれについて、当該組のデータにおける前記テキストの特徴量ベクトルC1と、前記第2のテキスト特徴抽出手段により抽出された前記検索クエリーの特徴量ベクトルC2との間の類似度を算出し、最も高い前記類似度の前記特徴量ベクトルC1に対応する前記人名を特定する検索手段と、
を備えたことを特徴とする人物検索装置。
【請求項2】
請求項1に記載の人物検索装置において、
前記第2のテキスト特徴抽出手段により前記ユーザの操作に従い入力される前記検索クエリーを、文章のテキストとする、ことを特徴とする人物検索装置。
【請求項3】
ユーザの操作により検索クエリーを入力し、当該検索クエリーに関連する人名を検索する人物検索装置を構成するコンピュータを、
ドキュメントを入力し、当該ドキュメントからテキストを抽出し、固有表現抽出技術を用いて、当該テキストから人名を抽出するテキスト人名抽出手段、
前記テキスト人名抽出手段により抽出された前記テキストを複数のトークンに分割し、前記複数のトークンの先頭に先頭トークンを付加し、トークン毎に分散表現ベクトルを生成することで、ベクトル列V1を生成し、
事前学習されたBERTモデルを用いて、前記ベクトル列V1を入力データとしたときのベクトル列V2を出力データとして推定し、
前記ベクトル列V2に基づいて、前記テキストの特徴量ベクトルC1を抽出する第1のテキスト特徴抽出手段、
前記テキスト人名抽出手段により抽出された前記人名、及び前記第1のテキスト特徴抽出手段により抽出された前記テキストの特徴量ベクトルC1を組として、複数の組のデータをデータベースに登録する登録手段、
前記ユーザの操作に従い、テキストからなる前記検索クエリーを入力し、前記検索クエリーを複数のトークンに分割し、前記複数のトークンの先頭に先頭トークンを付加し、トークン毎に分散表現ベクトルを生成することで、ベクトル列V3を生成し、
前記BERTモデルを用いて、前記ベクトル列V3を入力データとしたときのベクトル列V4を出力データとして推定し、
前記ベクトル列V4に基づいて、前記検索クエリーの特徴量ベクトルC2を抽出する第2のテキスト特徴抽出手段、及び、
前記データベースに登録された前記複数の組のデータのそれぞれを読み出し、前記複数の組のデータのそれぞれについて、当該組のデータにおける前記テキストの特徴量ベクトルC1と、前記第2のテキスト特徴抽出手段により抽出された前記検索クエリーの特徴量ベクトルC2との間の類似度を算出し、最も高い前記類似度の前記特徴量ベクトルC1に対応する前記人名を特定する検索手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、固有表現抽出技術及び学習モデルを用いて人物の名前を検索する人物検索装置に関する。
【背景技術】
【0002】
従来、例えば会社内でプロジェクトを立ち上げるときの人員を選定したり、業務を遂行するときの手助けとなる人員を選定したりするために、人物検索装置が使用されることがある。この人物検索装置は、人物情報を収集し、多様な業務経験、スキル等を有する人物の中から、目的に適した人物を検索する装置である。
【0003】
このような人物検索装置として、情報の機密性の低下を抑制し、人物情報及び文書情報の共有化を促進する装置が提案されている(例えば特許文献1を参照)。この人物検索装置は、人物の名前(人名)、専門分野、所属、連絡先等からなる人物情報が格納された第1記憶部、ユーザの権限及び人物情報の開示範囲の情報が格納された第2記憶部を備え、ユーザ操作に従って文字列を入力すると、第1記憶部から当該文字列に対応する人物情報を読み出し、第2記憶部に格納された情報に基づき、ユーザの権限に応じた表示対象の人物情報の範囲を決定し、その範囲に応じて一部を伏せて人物情報を画面表示するものである。
【0004】
また、この人物検索装置は、文書が格納された第3記憶部を備え、第3記憶部から文書を読み出し、文書から人名を抽出すると共に、技術用語、機器等の名称等の用語を抽出し、用語に重みを付与し、人名、用語及び重みからなる人物情報を生成して第1記憶部に格納する。
【0005】
一方で、例えば文書から人名、用語等を抽出するための固有表現抽出技術が知られている(例えば非特許文献1を参照)。この固有表現抽出技術は、文書から固有表現を抽出し、これを人名、組織名、地名等の固有名詞、日付、時間、数量、金額、パーセンテージ等の予め定義された固有表現分類へと分類する手法である。
【0006】
また、自然言語処理技術の一つとして、BERT(Bidirectional Encoder Representations from Transformers)が知られている。このBERTにはTransformer Encoderの構造が組み込まれており、文章を文頭及び文末の双方向から学習することにより、文脈を反映した文章の特徴量ベクトルを得ることができる(例えば非特許文献2を参照)。
【先行技術文献】
【特許文献】
【0007】
【非特許文献】
【0008】
【非特許文献1】松田寛、外4名、“UD Japanese GSDの再整備と固有表現情報付与”、[online]、2020年3月、言語処理学会、[令和4年12月23日検索]、インターネット<URL:https://anlp.jp/proceedings/annual_meeting/2020/pdf_dir/P1-34.pdf>
【非特許文献2】“cl-tohoku/bert-base-japanese”、[online]、東北大学乾研究室、[令和4年12月23日検索]、インターネット<URL:https://huggingface.co/cl-tohoku/bert-base-japanese>
【発明の概要】
【発明が解決しようとする課題】
【0009】
一般に、人物情報が格納された記憶部から人名を検索するためには、予め人物情報を収集して記憶部に格納しておき、ユーザ操作により入力された検索クエリーに対応する人名を、当該記憶部から抽出する技術が必要となる。
【0010】
前述の特許文献1の人物検索装置では、ユーザ操作により入力されたキーワード(単語、例えば「冬季」「凍結」(特許文献1の
図5~
図7を参照))に対応する人物情報を、記憶部から読み出す処理を行う。しかし、記憶部には、予め人名、専門分野、所属、連絡先等からなる基本的な人物情報を格納しておく必要がある。このような基本的な人物情報の格納作業は、ユーザ操作等によるのが一般的であるため、手間がかかるという問題があった。
【0011】
また、特許文献1の人物検索装置では、文書から人名及び用語を抽出し、人名及び用語等からなる人物情報を生成して記憶部に記憶する。そして、人物検索装置は、前述のとおり、ユーザ操作により入力されたキーワードに対応する人物情報を記憶部から読み出し、ユーザの権限に応じた範囲で、人物情報を画面表示する。
【0012】
しかしながら、検索結果として画面表示される人物情報は、ユーザ操作により入力されたキーワードに対応する情報であり、単にキーワードを用いた検索では不十分であるという問題があった。
【0013】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、人物情報を収集し、その人物情報から所望の人名を検索する際に、人物情報の収集が一層容易となり、かつユーザにとって使い勝手の良い人物検索装置及びプログラムを提供することにある。
【課題を解決するための手段】
【0014】
前記課題を解決するために、請求項1の人物検索装置は、ユーザの操作により検索クエリーを入力し、当該検索クエリーに関連する人名を検索する人物検索装置において、ドキュメントを入力し、当該ドキュメントからテキストを抽出し、固有表現抽出技術を用いて、当該テキストから人名を抽出するテキスト人名抽出手段と、前記テキスト人名抽出手段により抽出された前記テキストを複数のトークンに分割し、前記複数のトークンの先頭に先頭トークンを付加し、トークン毎に分散表現ベクトルを生成することで、ベクトル列V1を生成し、事前学習されたBERTモデルを用いて、前記ベクトル列V1を入力データとしたときのベクトル列V2を出力データとして推定し、前記ベクトル列V2に基づいて、前記テキストの特徴量ベクトルC1を抽出する第1のテキスト特徴抽出手段と、前記テキスト人名抽出手段により抽出された前記人名、及び前記第1のテキスト特徴抽出手段により抽出された前記テキストの特徴量ベクトルC1を組として、複数の組のデータをデータベースに登録する登録手段と、前記ユーザの操作に従い、テキストからなる前記検索クエリーを入力し、前記検索クエリーを複数のトークンに分割し、前記複数のトークンの先頭に先頭トークンを付加し、トークン毎に分散表現ベクトルを生成することで、ベクトル列V3を生成し、前記BERTモデルを用いて、前記ベクトル列V3を入力データとしたときのベクトル列V4を出力データとして推定し、前記ベクトル列V4に基づいて、前記検索クエリーの特徴量ベクトルC2を抽出する第2のテキスト特徴抽出手段と、前記データベースに登録された前記複数の組のデータのそれぞれを読み出し、前記複数の組のデータのそれぞれについて、当該組のデータにおける前記テキストの特徴量ベクトルC1と、前記第2のテキスト特徴抽出手段により抽出された前記検索クエリーの特徴量ベクトルC2との間の類似度を算出し、最も高い前記類似度の前記特徴量ベクトルC1に対応する前記人名を特定する検索手段と、を備えたことを特徴とする。
【0015】
また、請求項2の人物検索装置は、請求項1に記載の人物検索装置において、前記第2のテキスト特徴抽出手段により前記ユーザの操作に従い入力される前記検索クエリーを、文章のテキストとする、ことを特徴とする。
【0016】
さらに、請求項3のプログラムは、ユーザの操作により検索クエリーを入力し、当該検索クエリーに関連する人名を検索する人物検索装置を構成するコンピュータを、ドキュメントを入力し、当該ドキュメントからテキストを抽出し、固有表現抽出技術を用いて、当該テキストから人名を抽出するテキスト人名抽出手段、前記テキスト人名抽出手段により抽出された前記テキストを複数のトークンに分割し、前記複数のトークンの先頭に先頭トークンを付加し、トークン毎に分散表現ベクトルを生成することで、ベクトル列V1を生成し、事前学習されたBERTモデルを用いて、前記ベクトル列V1を入力データとしたときのベクトル列V2を出力データとして推定し、前記ベクトル列V2に基づいて、前記テキストの特徴量ベクトルC1を抽出する第1のテキスト特徴抽出手段、前記テキスト人名抽出手段により抽出された前記人名、及び前記第1のテキスト特徴抽出手段により抽出された前記テキストの特徴量ベクトルC1を組として、複数の組のデータをデータベースに登録する登録手段、前記ユーザの操作に従い、テキストからなる前記検索クエリーを入力し、前記検索クエリーを複数のトークンに分割し、前記複数のトークンの先頭に先頭トークンを付加し、トークン毎に分散表現ベクトルを生成することで、ベクトル列V3を生成し、前記BERTモデルを用いて、前記ベクトル列V3を入力データとしたときのベクトル列V4を出力データとして推定し、前記ベクトル列V4に基づいて、前記検索クエリーの特徴量ベクトルC2を抽出する第2のテキスト特徴抽出手段、及び、前記データベースに登録された前記複数の組のデータのそれぞれを読み出し、前記複数の組のデータのそれぞれについて、当該組のデータにおける前記テキストの特徴量ベクトルC1と、前記第2のテキスト特徴抽出手段により抽出された前記検索クエリーの特徴量ベクトルC2との間の類似度を算出し、最も高い前記類似度の前記特徴量ベクトルC1に対応する前記人名を特定する検索手段として機能させることを特徴とする。
【発明の効果】
【0017】
以上のように、本発明によれば、人物情報を収集し、その人物情報から所望の人名を検索する際に、人物情報の収集が一層容易となり、かつユーザにとって使い勝手の良い検索を実現することができる。
【図面の簡単な説明】
【0018】
【
図1】本発明の実施形態による人物検索装置の構成例を示すブロック図である。
【
図2】人物検索装置の処理例を示すフローチャートである。
【
図5】テキスト特徴抽出手段の処理例を示すフローチャートである。
【
図7】検索手段の処理例を示すフローチャートである。
【
図8】(1)は、検索クエリーとして文字列を入力した場合の画面例を示す図である。(2)は、検索クエリーとしてファイル名を入力した場合の画面例を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。
〔人物検索装置〕
まず、本発明の実施形態による人物検索装置について説明する。
図1は、本発明の実施形態による人物検索装置の構成例を示すブロック図であり、
図2は、人物検索装置の処理例を示すフローチャートであり、
図3は、
図2の処理例を補充する説明図である。
【0020】
この人物検索装置1は、ドキュメントを入力し、固有表現抽出技術を用いてドキュメントから人名を抽出し、事前学習済みのBERTモデルを用いて、ドキュメントに含まれるテキストの特徴量ベクトルを求め、人名及び当該人名に対応するテキストの特徴量ベクトルからなる人物情報を収集する。
【0021】
そして、人物検索装置1は、ユーザ操作に従ってテキストからなる検索クエリーを入力し、事前学習済みのBERTモデルを用いて検索クエリーの特徴量ベクトルを求め、特徴量ベクトルと人物情報に含まれる特徴量ベクトルとの間の類似度を求め、類似度が最大となる人名を検索結果として特定する。これにより、検索クエリーに関連する人名が検索される。
【0022】
この人物検索装置1は、制御部11及び記憶部12を備えている。制御部11は、テキスト人名抽出手段21、テキスト特徴抽出手段22,24、登録手段23及び検索手段25を備えている。記憶部12は、記憶手段31,32を備えている。
【0023】
図2に示すステップS201~S205は、ドキュメントを入力し、ドキュメントから人物情報を求め、人物情報を記憶手段32に格納する一連の処理(人物情報収集処理)を示している。また、ステップS206~S209は、ユーザ操作に従って検索クエリーを入力し、記憶手段32に格納された人物情報を用いて、検索クエリーに対応する人名を検索して出力する一連の処理(人物検索処理)を示している。
【0024】
図1~
図3を参照して、テキスト人名抽出手段21は、PDF、WORD等の形式で作成された報告書等のドキュメントを入力し(ステップS201)、ドキュメントからテキスト及び人名を抽出し(ステップS202)、人名及びこれに対応するテキストからなる組のデータを生成する。そして、テキスト人名抽出手段21は、人名を登録手段23に出力し、当該人名に対応するテキストをテキスト特徴抽出手段22に出力する。
【0025】
具体的には、テキスト人名抽出手段21は、既存技術を用いて、ドキュメントからテキストを抽出する。また、テキスト人名抽出手段21は、既存の固有表現抽出技術を用いて、ドキュメントから当該ドキュメントの作成者の名前及び当該ドキュメントに含まれる人物の名前を人名として抽出する。そして、テキスト人名抽出手段21は、人名とテキストとを対応付ける。
【0026】
尚、ドキュメントからテキストを抽出する処理は既知であるため、ここでは詳細な説明を省略する。また、固有表現抽出技術も、前述の非特許文献1に示すように既知であるため、ここでは詳細な説明を省略する。
【0027】
図3を参照して、例えばテキスト人名抽出手段21は、ステップS202において、ドキュメントから、第1の人名「Aさん」及びこれに対応するテキスト「人工知能や機械学習に・・・」、第2の人名「Bさん」及びこれに対応するテキスト「スポーツ番組のカメラと・・・」、第3の人名「Aさん」及びこれに対応するテキスト「言語処理技術を活用し・・・」等を抽出する。
【0028】
図1~
図3を参照して、テキスト特徴抽出手段22は、テキスト人名抽出手段21からテキストを入力する。そして、テキスト特徴抽出手段22は、記憶手段31に格納された事前学習済みのBERTモデルを用いて、テキストの特徴量ベクトルC1を抽出し(ステップS203)、特徴量ベクトルC1を登録手段23に出力する。テキスト特徴抽出手段22の詳細な処理の説明については後述する。
【0029】
記憶手段31には、予め学習されたBERTモデルが格納されている。BERTモデルとしては、例えばウィキペディア日本語版を用いて事前学習されたモデルが使用される。このようなBERTモデルを用いることにより、文脈を考慮した特徴量ベクトルC1が抽出される。
【0030】
図3を参照して、例えばテキスト特徴抽出手段22は、ステップS203において、記憶手段31に格納された事前学習済みのBERTモデルを用いて、テキスト人名抽出手段21から入力したテキスト「人工知能や機械学習に・・・」、テキスト「スポーツ番組のカメラと・・・」、テキスト「言語処理技術を活用し・・・」等をベクトル化し、それぞれの特徴量ベクトルC1を抽出する。
【0031】
図1~
図3を参照して、登録手段23は、テキスト人名抽出手段21から人名を入力すると共に、テキスト特徴抽出手段22から当該人名に対応するテキストの特徴量ベクトルC1を入力する。
【0032】
登録手段23は、人名をkeyとし、特徴量ベクトルC1をvalueとして、人名及び特徴量ベクトルC1からなる組のデータを記憶手段32のデータベースに登録する(ステップS204)。
【0033】
図4は、記憶手段32のデータ構成例を示す図である。記憶手段32のデータベースは、人名をkey、特徴量ベクトルC1をvalueとして、人名と特徴量ベクトルC1とを組とした複数の組のデータにより構成される。
【0034】
例えば仕様書1.pdfのドキュメントファイルが入力されると、このドキュメントファイルから人名「Aさん」及び特徴量ベクトルC1-1等が抽出され、{key:Aさん,value:特徴量ベクトルC1-1}等が記憶手段32のデータベースに登録される。そして、後述するステップS205(N)により次の仕様書2.pdf、仕様書3.pdf、報告書1.docx、報告書2.docx等のドキュメントファイルが順次入力され、これらのドキュメントファイルから人名及び特徴量ベクトルC1が抽出され、{key,value}が記憶手段32のデータベースに登録される。
【0035】
図1~
図3を参照して、人物検索装置1は、ステップS204から移行して、全てのドキュメントの処理が終了したか否かを判定する(ステップS205)。人物検索装置1は、ステップS205において、全てのドキュメントの処理が終了していないと判定した場合(ステップS205:N)、ステップS201へ移行する。一方、人物検索装置1は、ステップS205において、全てのドキュメントの処理が終了したと判定した場合(ステップS205:Y)、ステップS206へ移行する。
【0036】
これにより、前述の人物情報収集処理にて、処理対象の全てのドキュメントから、人名及び特徴量ベクトルC1を組とした複数の組のデータが自動的に生成され、これらのデータが人物情報として記憶手段32のデータベースに自動的に登録される。このため、ユーザは、人物情報を手入力する必要がなく、ユーザの負荷を低減することができる。
【0037】
図1~
図3を参照して、テキスト特徴抽出手段24は、ステップS205(Y)から移行して、ユーザ操作に従い、テキストからなる検索クエリーを入力する(ステップS206)。そして、テキスト特徴抽出手段24は、テキスト特徴抽出手段22と同様に、記憶手段31に格納された事前学習済みのBERTモデルを用いて、検索クエリーの特徴量ベクトルC2を抽出し(ステップS207)、検索クエリーの特徴量ベクトルC2を検索手段25に出力する。
【0038】
図3を参照して、例えばテキスト特徴抽出手段24は、ステップS206において、検索クエリー「AIとプログラミング」を入力する。そして、テキスト特徴抽出手段24は、ステップS207において、記憶手段31に格納された事前学習済みのBERTモデルを用いて、検索クエリー「AIとプログラミング」をベクトル化し、特徴量ベクトルC2を抽出する。
【0039】
図1~
図3を参照して、検索手段25は、テキスト特徴抽出手段24から検索クエリーの特徴量ベクトルC2を入力する。そして、検索手段25は、検索クエリーの特徴量ベクトルC2と、記憶手段32のデータベースに登録された人名及び特徴量ベクトルC1を組とした複数の組のデータとに基づいて、最大値フィルタ処理を行うことで人名を検索し、検索結果の人名等を出力する(ステップS208)。検索手段25の詳細な処理の説明については後述する。
【0040】
図3を参照して、例えば検索手段25は、ステップS208において、最大値フィルタ処理により人名「Aさん」を検索し、検索結果の人名「Aさん」を出力する。
【0041】
図1~
図3を参照して、人物検索装置1は、ステップS208から移行して、全ての検索クエリーの処理が終了したか否かを判定する(ステップS209)。人物検索装置1は、ステップS209において、全ての検索クエリーの処理が終了していないと判定した場合(ステップS209:N)、ステップS206へ移行する。一方、人物検索装置1は、ステップS209において、全ての検索クエリーの処理が終了したと判定した場合(ステップS209:Y)、当該人物検索装置1の処理を終了する。
【0042】
これにより、前述の人物検索処理にて、ユーザ操作に従い入力した検索クエリーについて、当該検索クエリーに関連する人名等が検索結果として出力される。
【0043】
(テキスト特徴抽出手段22)
次に、
図1に示したテキスト特徴抽出手段22について詳細に説明する。前述のとおり、テキスト特徴抽出手段22は、記憶手段31に格納された事前学習済みのBERTモデルを用いて、テキストの特徴量ベクトルC1を抽出する。
【0044】
図5は、テキスト特徴抽出手段22の処理例を示すフローチャートであり、
図6は、
図5の処理例を具体的に説明する図である。テキスト特徴抽出手段22は、テキスト人名抽出手段21からテキストを入力する(ステップS501)。
【0045】
テキスト特徴抽出手段22は、テキストをトークン(token)毎に分割し(ステップS502)、分割された複数のトークンの先頭に先頭トークンを付加し、トークン列を生成する(ステップS503)。
【0046】
ここで、トークンは、文を構成する最小の構成要素である。テキストをトークン毎に分割するためには、例えば既存技術のBPE(Byte Pair Encoding) tokenizerが用いられる。BPE tokenizerは単語分割手段の1つであり、テキストの文書に含まれる低頻度の単語をさらに分割することにより、低頻度の単語を精度高く扱うことができる。
【0047】
図6を参照して、例えばテキスト特徴抽出手段22は、ステップS501において、テキスト「人工知能に関する研究開発」を入力し、ステップS502において、テキスト「人工知能に関する研究開発」をトークン毎に分割する。これにより、複数のトークン「人工」「知能」「に」「関する」「研究」「開発」が得られる。
【0048】
また、テキスト特徴抽出手段22は、ステップS503において、これらのトークンの先頭に先頭トークンを付加することで、トークン列{「(先頭トークン)」「人工」「知能」「に」「関する」「研究」「開発」}を生成する。
【0049】
図5及び
図6を参照して、テキスト特徴抽出手段22は、トークン列を構成する複数のトークンについて、トークン毎に分散表現ベクトルを生成し、トークン毎の分散表現ベクトルからなるベクトル列V1を生成する(ステップS504)。トークン毎の分散表現ベクトルを生成するためには、例えば既存技術のword piece embeddingが用いられる。これにより、初期化されたトークン毎の分散表現ベクトルからなるベクトル列V1が生成される。
【0050】
図6を参照して、例えばテキスト特徴抽出手段22は、ステップS504において、トークン列「(先頭トークン)」「人工」「知能」「に」「関する」「研究」「開発」のそれぞれについて分散表現ベクトルを生成し、ベクトル列V1を生成する。ここで、ベクトル列V1を構成する先頭トークンの分散表現ベクトルは、トークン列を構成するテキスト全体の意味をBERTモデルによって反映させるための初期化されたベクトルである。また、ベクトル列V1を構成する先頭トークン以外のそれぞれのトークンの分散表現ベクトルは、当該トークンの単なる単語を示す要素により構成された、初期化されたベクトルである。
【0051】
図5及び
図6を参照して、テキスト特徴抽出手段22は、記憶手段31に格納された事前学習済みのBERTモデルを用いて、ベクトル列V1を入力データとしたときのベクトル列V2を出力データとして推定する(ステップS505)。つまり、テキスト特徴抽出手段22は、BERTモデルに対し、ベクトル列V1を入力データとして入力し、ベクトル列V2を出力データとして出力することで、ベクトル列V2を推定する。これにより、文脈を考慮したベクトル列V2が得られる。
【0052】
テキスト特徴抽出手段22は、ベクトル列V2から先頭トークンの分散表現ベクトルを抽出する(ステップS506)。ここで、ベクトル列V2から抽出された先頭トークンの分散表現ベクトルは、トークン列を構成するテキスト全体の意味が反映され、かつテキスト全体の文脈を考慮した特徴量ベクトルである。
【0053】
BERTモデルは、ベクトル列V1を入力し、ベクトル列V1における各トークンの分散表現ベクトル同士の関連性を抽出し、これらの関連性が反映された各トークンの分散表現ベクトルをベクトル列V2として出力する性質を有している。BERTモデルから出力される先頭トークンの分散表現ベクトル、すなわちベクトル列V2から抽出された先頭トークンの分散表現ベクトルは、他の全てのトークンの分散表現ベクトルの特徴との関連性が抽出された、テキスト全体の意味を示すベクトル表現となる。
【0054】
そして、テキスト特徴抽出手段22は、抽出された先頭トークンの分散表現ベクトルをテキストの特徴量ベクトルC1として登録手段23に出力する(ステップS507)。
【0055】
これにより、テキスト特徴抽出手段22が入力したテキストについて、当該テキストの特徴量ベクトルC1が、事前学習済みのBERTモデルを用いて抽出され、登録手段23に出力される。
【0056】
(検索手段25)
次に、
図1に示した検索手段25について詳細に説明する。前述のとおり、検索手段25は、検索クエリーの特徴量ベクトルC2と、記憶手段32のデータベースに登録された人名及び特徴量ベクトルC1を組とした複数の組のデータとに基づいて、人名を検索する。
【0057】
図7は、検索手段25の処理例を示すフローチャートである。検索手段25は、テキスト特徴抽出手段24から検索クエリーの特徴量ベクトルC2を入力する(ステップS701)。
【0058】
検索手段25は、記憶手段32のデータベースから、人名及び特徴量ベクトルC1からなる1組のデータを読み出す(ステップS702)。そして、検索手段25は、データベースの特徴量ベクトルC1と検索クエリーの特徴量ベクトルC2との間のコサイン類似度を算出する(ステップS703)。検索手段25は、当該1組のデータ及びこれに対応するコサイン類似度を、
図1には図示しないメモリに格納する。
【0059】
検索手段25は、記憶手段32のデータベースに登録された全ての組のデータの処理が終了したか否かを判定する(ステップS704)。検索手段25は、ステップS704において、全ての組のデータの処理が終了していないと判定した場合(ステップS704:N)、ステップS702へ移行する。一方、検索手段25は、ステップS704において、全ての組のデータの処理が終了したと判定した場合(ステップS704:Y)、ステップS705へ移行する。
【0060】
これにより、
図1には図示しないメモリには、記憶手段32のデータベースに登録された全ての組のデータのそれぞれについて、コサイン類似度が格納される。
【0061】
検索手段25は、ステップS704(Y)から移行して、
図1には図示しないメモリから、全ての組のデータのそれぞれについてのコサイン類似度を読み出す。そして、検索手段25は、全ての組のデータのそれぞれについてのコサイン類似度のうち、最も高いコサイン類似度を特定する。検索手段25は、当該コサイン類似度の特徴量ベクトルC1に対応する人名を特定し(ステップS705)、検索結果として当該人名及び最も高いコサイン類似度を出力する(ステップS706)。
【0062】
つまり、検索手段25は、全ての組のデータのそれぞれについてのコサイン類似度のうち、最も高いコサイン類似度を特定し、記憶手段32のデータベースから、最も高いコサイン類似度に対応する組のデータに含まれる人名を読み出し、当該人名等を出力する。
【0063】
このように、検索手段25により、検索クエリーの埋め込み表現である特徴量ベクトルC2と、テキスト人名抽出手段21により抽出された複数のテキストのそれぞれについての埋め込み表現である特徴量ベクトルC1との間の類似度が算出される。そして、類似度が最大となるテキストが特定され、当該テキストに対応する人名等が、検索クエリーの検索結果として出力される。
【0064】
〔人物検索装置1のUI(ユーザインターフェース)の例(画面例)〕
次に、
図1に示した人物検索装置1のUIの例として、画面例について説明する。
図8(1)は、検索クエリーとして文字列を入力した場合の画面例を示す図であり、
図8(2)は、検索クエリーとしてファイル名を入力した場合の画面例を示す図である。
図8(1)及び
図8(2)の画面例は、
図2に示したステップS206~S209の人物検索処理により、コサイン類似度の高い順に100件の検索結果が表示される例を示している。
【0065】
図8(1)を参照して、検索クエリーとして文字列「AIとプログラミング」のテキストが入力され(a1)、「検索」のキーが押下されると(a2)、検索結果が表示される(a3)。この検索結果は、「名前」(人名)及び「ファイル名」(人物検索装置1が入力したドキュメントであって、人名が抽出されたドキュメントのファイル名)、並びにこれに対応する類似度(コサイン類似度)からなり、類似度の高い順に並べて表示される。
【0066】
図8(2)を参照して、検索クエリーとしてファイル名「demo.txt」に対応するテキストが入力され(b1)、「検索」のキーが押下されると(b2)、検索結果が表示される(b3)。この検索結果は、「名前」(人名)及び「ファイル名」、並びにこれに対応する類似度からなり、類似度の高い順に並べて表示される。この場合、人物検索装置1は、ユーザにより指定されたファイル名「demo.txt」のテキストファイルに格納されたテキストを入力する。
【0067】
以上のように、本発明の実施形態の人物検索装置1によれば、テキスト人名抽出手段21は、ドキュメントを入力し、ドキュメントからテキストを抽出し、固有表現抽出技術を用いてドキュメントから人名を抽出し、テキストと人名を対応付ける。
【0068】
テキスト特徴抽出手段22は、記憶手段31に格納された事前学習済みのBERTモデルを用いて、テキストの特徴量ベクトルC1を抽出する。そして、登録手段23は、人名及び当該人名に対応するテキストの特徴量ベクトルC1を組として記憶手段32のデータベースに登録する。
【0069】
これにより、処理対象の全てのドキュメントについて前述の処理を繰り返すことで、入力された全てのドキュメントから、人名及び特徴量ベクトルC1を組とした複数の組のデータが自動的に生成され、これらのデータが人物情報としてデータベースに自動的に登録される。このため、ユーザは、人物情報を手入力する必要がなく、ユーザの負荷を低減することができる。
【0070】
また、本発明の実施形態の人物検索装置1によれば、テキスト特徴抽出手段24は、ユーザ操作に従って検索クエリーを入力し、記憶手段31に格納された事前学習済みのBERTモデルを用いて、検索クエリーの特徴量ベクトルC2を抽出する。
【0071】
検索手段25は、記憶手段32のデータベースから、人名及び特徴量ベクトルC1からなる複数の組のデータをそれぞれ読み出し、データベースの特徴量ベクトルC1と検索クエリーの特徴量ベクトルC2との間のコサイン類似度を算出する。そして、検索手段25は、最も高いコサイン類似度に対応する人名を特定し、当該人名等を出力する。
【0072】
これにより、ユーザ操作に従い入力した検索クエリーについて、検索クエリーに関連する人名等が検索結果として出力されることとなる。特に、前述した特許文献1では、検索クエリーとして単語を入力しているが、本発明の実施形態では、事前学習済みのBERTを用いて検索クエリーの特徴量ベクトルC2が抽出されることから、検索クエリーとして、単語等の文字列だけでなく、文章のテキスト、ドキュメント(ファイル自体)を入力することができる。
【0073】
したがって、人物情報を収集し、その人物情報から所望の人名を検索する際に、人物情報の収集が一層容易となり、かつユーザにとって使い勝手の良い検索を実現することができる。
【0074】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。
【0075】
例えば前記実施形態では、テキスト特徴抽出手段22は、事前学習済みのBERTモデルを用いてベクトル列V2を推定し、ベクトル列V2から先頭トークンの分散表現ベクトルを抽出し、これをテキストの特徴量ベクトルC1として扱うようにした。
【0076】
これに対し、テキスト特徴抽出手段22は、ベクトル列V2から先頭トークン以外のトークンの分散表現ベクトルを抽出し、これらの分散表現ベクトルの平均値または最大値を求め、当該平均値または最大値からなる分散表現ベクトルをテキストの特徴量ベクトルC1として扱うようにしてもよい。
【0077】
また、前記実施形態では、検索手段25は、データベースに登録された特徴量ベクトルC1と、ユーザ操作に従って入力された検索クエリーの特徴量ベクトルC2との間のコサイン類似度を算出し、最も高いコサイン類似度に対応する人名を特定するようにした。本発明は、人名を特定するために算出するデータをコサイン類似度に限定するものではない。つまり、検索手段25は、特徴量ベクトルC1,C2間の類似度、すなわち特徴量ベクトルC1に対応するテキストと、特徴量ベクトルC2に対応する検索クエリー(テキスト)との間における類似の程度を示すデータを算出できればよい。
【0078】
また、例えば前記実施形態では、検索手段25は、最も高いコサイン類似度に対応する人名を特定し、人名等を出力するようにした。この場合、検索手段25は、
図8に示したように、類似度の高い順の所定数の人名等について、人名、人物検索装置1が入力したドキュメントであって、当該人名が抽出されたドキュメントのファイル名、及び類似度を出力するようにしてもよい。
【0079】
また、検索手段25がユーザ操作に従って入力する検索クエリーは、単語のテキスト(例えば「AI」、「プログラミング」)であってもよいし、文字列(例えば「AIとプログラミング」)であってもよいし、一定の意味を有する文章のテキスト(例えば「AIを活用したプログラミングにより業務効率化を図る。」)であってもよい。また、検索クエリーは、ドキュメントであってもよいし、テキストファイル(のファイル名)であってもよい。
【0080】
この場合、検索手段25が検索クエリーとして文章のテキストを入力することで、文章から文字列、単語等を抽出するユーザの負荷を低減することができ、ユーザにとって一層使い勝手の良い検索を実現することができる。
【0081】
尚、本発明の実施形態による人物検索装置1のハードウェア構成としては、通常のコンピュータを使用することができる。人物検索装置1は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
【0082】
人物検索装置1に備えた制御部11(テキスト人名抽出手段21、テキスト特徴抽出手段22,24、登録手段23及び検索手段25)及び記憶部12(記憶手段31,32)の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
【0083】
これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【符号の説明】
【0084】
1 人物検索装置
11 制御部
12 記憶部
21 テキスト人名抽出手段
22,24 テキスト特徴抽出手段
23 登録手段
25 検索手段
31,32 記憶手段
C1,C2 特徴量ベクトル
V1,V2 ベクトル列