(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-22
(45)【発行日】2022-10-03
(54)【発明の名称】辞書作成方法、辞書作成装置及び記憶媒体
(51)【国際特許分類】
G06F 16/35 20190101AFI20220926BHJP
G06F 40/242 20200101ALI20220926BHJP
G06F 40/279 20200101ALI20220926BHJP
G06N 20/00 20190101ALI20220926BHJP
【FI】
G06F16/35
G06F40/242
G06F40/279
G06N20/00 130
(21)【出願番号】P 2019090075
(22)【出願日】2019-05-10
【審査請求日】2021-11-08
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】森下 皓文
(72)【発明者】
【氏名】尾崎 太亮
(72)【発明者】
【氏名】森本 康嗣
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開2019-012457(JP,A)
【文献】国際公開第2011/118723(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/20-40/58
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
プロセッサとメモリを有する計算機で、単語をクラスに分類する辞書作成方法であって、
前記プロセッサが、辞書を作成する前記単語の分散表現をベクトル情報で取得して単語ベクトル情報に格納する分散表現取得ステップと、
前記プロセッサが、前記単語を分類するためのクラスと、前記クラスに所属する初期単語を受け付けて、前記初期単語に正例のラベルを付与する初期ラベル付与ステップと、
前記プロセッサが、前記初期単語のベクトル情報を前記単語ベクトル情報から取得して、分散表現空間内で前記ベクトル情報を含む領域を設定する初期領域設定ステップと、
前記プロセッサが、前記分散表現空間内の前記領域の外周から所定の範囲を縁として設定する縁設定ステップと、
前記プロセッサが、前記縁内に含まれる未確定の単語について正例又は負例のいずれかのラベルを付与するラベリングステップと、
を含むことを特徴とする辞書作成方法。
【請求項2】
請求項1に記載の辞書作成方法であって、
前記プロセッサが、前記縁に含まれる正例と負例の比率に応じて、前記領域の大きさを拡大又は縮小して再設定する領域再構築ステップを、さらに含むことを特徴とする辞書作成方法。
【請求項3】
請求項2に記載の辞書作成方法であって、
前記プロセッサが、所定の終了条件が成立するまで、前記領域再構築ステップと、縁設定ステップと、前記ラベリングステップとを繰り返すことを特徴とする辞書作成方法。
【請求項4】
請求項1に記載の辞書作成方法であって、
前記初期領域設定ステップでは、
前記正例の初期単語のベクトル情報を含む前記分散表現空間内の閉領域を初期の領域として設定することを特徴とする辞書作成方法。
【請求項5】
請求項2に記載の辞書作成方法であって、
前記領域再構築ステップでは、
前記拡大又は縮小する倍率を正例と負例の比率に応じて離散的に設定することを特徴とする辞書作成方法。
【請求項6】
請求項2に記載の辞書作成方法であって、
前記縁設定ステップでは、
前記再設定された領域の外周から所定の範囲で前記縁を再設定することを特徴とする辞書作成方法。
【請求項7】
請求項2に記載の辞書作成方法であって、
前記領域再構築ステップでは、
前記縁内に含まれる正例の単語のベクトル情報から領域の新たな中心を再設定することを特徴とする辞書作成方法。
【請求項8】
請求項3に記載の辞書作成方法であって、
前記終了条件は、
前記ラベルを付与した単語の数又は拡大縮小の回数が所定の数に達したときに終了条件が成立したと判定することを特徴とする辞書作成方法。
【請求項9】
請求項2に記載の辞書作成方法であって、
前記領域再構築ステップでは、
前記縁内に含まれる正例と負例の比率を算出し、正例の比率が所定の閾値を超えたときには、アクティブラーニングへ移行して単語のクラスを分類させることを特徴とする辞書作成方法。
【請求項10】
プロセッサとメモリを有して、単語をクラスに分類する辞書作成装置であって、
辞書を作成する前記単語の分散表現をベクトル情報で取得して単語ベクトル情報に格納する分散表現取得部と、
前記単語を分類するためのクラスと、前記クラスに所属する初期単語を受け付けて、前記初期単語に正例のラベルを付与する初期ラベル付与部と、
前記初期単語のベクトル情報を前記単語ベクトル情報から取得して、分散表現空間内で前記ベクトル情報を含む領域を設定する初期領域設定部と、
前記分散表現空間内の前記領域の外周から所定の範囲を縁として設定する縁設定部と、
前記縁内に含まれる未確定の単語について正例又は負例のいずれかのラベルを付与するラベリング部と、
を有することを特徴とする辞書作成装置。
【請求項11】
プロセッサとメモリを有する計算機で、単語をクラスに分類させるためのプログラムを格納した記憶媒体であって、
辞書を作成する前記単語の分散表現をベクトル情報で取得して単語ベクトル情報に格納する分散表現取得ステップと、
前記単語を分類するためのクラスと、前記クラスに所属する初期単語を受け付けて、前記初期単語に正例のラベルを付与する初期ラベル付与ステップと、
前記初期単語のベクトル情報を前記単語ベクトル情報から取得して、分散表現空間内で前記ベクトル情報を含む領域を設定する初期領域設定ステップと、
前記分散表現空間内の前記領域の外周から所定の範囲を縁として設定する縁設定ステップと、
前記縁内に含まれる未確定の単語について正例又は負例のいずれかのラベルを付与するラベリングステップと、
を前記計算機に実行させるためのプログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、言語の辞書を作成する辞書作成装置に関する。
【背景技術】
【0002】
テキストデータから特定の単語クラスに属する単語を集めて辞書を生成する技術として、特許文献1が知られている。特許文献1には、カテゴリ辞書を用いてテキストデータから未カテゴリ語を抽出して、登録候補を探索する技術が開示されている。
【0003】
また、近年では類似する単語が、分散表現空間内で近い距離に集まる性質を有する単語の分散表現を用いて単語を分類する技術も知られている(例えば、非特許文献1)。非特許文献1では、ラベルを付与した少量の正例と、負例を用いて機械学習を実施して、分散表現空間内に境界を設定する。そして、非特許文献1では、境界の近傍のサンプルに対して優先的にラベルを付与することにより、効率的に機械学習の精度を上げている。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】D. D. Lewis and J. Catlett 著、“Heterogeneous uncertainty sampling for supervised learning”、in Proceedings of the eleventh international conference on machine learning、1994年
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記非特許文献1では、少量の正例と負例を用いた機械学習によって、分散表現空間内で境界の大まかな位置が推定可能であることが前提となっている。このため、上記非特許文献1では、大量の負例の中に、少量の正例が存在するという状況では、分散表現空間内で境界の大まかな位置を推定することが困難であった。
【0007】
そこで本発明は、上記問題点に鑑みてなされたもので、少量の正例から辞書の作成を開始して、効率的に辞書を作成する辞書作成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、プロセッサとメモリを有する計算機で、単語をクラスに分類する辞書作成方法であって、前記プロセッサが、辞書を作成する前記単語の分散表現をベクトル情報で取得して単語ベクトル情報に格納する分散表現取得ステップと、前記プロセッサが、前記単語を分類するためのクラスと、前記クラスに所属する初期単語を受け付けて、前記初期単語に正例のラベルを付与する初期ラベル付与ステップと、前記プロセッサが、前記初期単語のベクトル情報を前記単語ベクトル情報から取得して、分散表現空間内で前記ベクトル情報を含む領域を設定する初期領域設定ステップと、 前記プロセッサが、前記分散表現空間内の前記領域の外周から所定の範囲を縁として設定する縁設定ステップと、前記プロセッサが、前記縁内に含まれる未確定の単語について正例又は負例のいずれかのラベルを付与するラベリングステップと、を含む。
【発明の効果】
【0009】
したがって、本発明は、領域の縁に含まれる単語についてラベリングを行えばよいので、辞書を作成する際のラベリングに要する労力を大幅に低減して、効率的に辞書を作成することができる。
【0010】
本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施例1を示し、辞書作成装置の一例を示すブロック図である。
【
図2】本発明の実施例1を示し、辞書作成装置で行われる処理の一例を示す図である。
【
図3】本発明の実施例1を示し、辞書作成装置で行われる処理の一例を示すフローチャートである。
【
図4】本発明の実施例1を示し、単語ベクトルテーブルの一例を示す図である。
【
図5】本発明の実施例1を示し、ラベルテーブルの一例を示す図である。
【
図6】本発明の実施例1を示し、領域の一例を示す図である。
【
図7】本発明の実施例1を示し、縁の一例を示す図である。
【
図8】本発明の実施例1を示し、縁に含まれる単語のラベル付与画面の一例を示す図である。
【
図9】本発明の実施例1を示し、再構築を行った領域及び縁の一例を示す図である。
【
図10】本発明の実施例2を示し、辞書作成装置の一例を示すブロック図である。
【
図11】本発明の実施例2を示し、辞書作成装置で行われる処理の一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態を添付図面に基づいて説明する。
【実施例1】
【0013】
図1は、本発明の実施例1を示し、辞書作成装置の一例を示すブロック図である。辞書作成装置1は、プロセッサ20と、メモリ30と、ストレージ装置40と、入力装置50と、出力装置60を含む計算機で構成される。
【0014】
メモリ30には、単語ベクトル学習プログラム2と、初期ラベル付与プログラム4と、初期領域構築プログラム6と、縁構築プログラム8と、ラベル付与プログラム10と、領域再構築プログラム11がロードされてプロセッサ20によって実行される。
【0015】
ストレージ装置40は、不揮発性の記憶媒体で構成され、上記各プログラムで利用されるデータを格納する。ストレージ装置40に格納されるデータとしては、予め収集された単語を格納するテキストコーパス70と、単語の分散表現による単語ベクトルを格納する単語ベクトルテーブル3と、単語に付与したラベルを格納するラベルテーブル5と、分散表現空間内に設定された領域を格納する領域情報7と、分散表現空間内に設定された領域の境界(縁)を格納する縁情報9が含まれる。
【0016】
入力装置50は、マウスやキーボードやタッチパネルなどで構成される。出力装置60は、ディスプレイやプロジェクタなどで構成される。
【0017】
プロセッサ20は、各機能部のプログラムに従って処理を実行することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ20は、単語ベクトル学習プログラム2に従って処理を実行することで単語ベクトル学習部として機能する。他のプログラムについても同様である。さらに、プロセッサ20は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【0018】
<概要>
図2は、辞書作成装置1で行われる処理の一例を示す図である。この処理は、辞書作成装置1のユーザ等が入力装置50から所定の指令を入力することで実行される。
【0019】
まず、単語ベクトル学習プログラム2は、テキストコーパス70から単語を読み込んで、分散表現のベクトルを算出し、単語ベクトルテーブル3に単語毎の分散表現のベクトルを格納する。分散表現のベクトルは、高次元(n次元)の実数ベクトルで構成され、周知又は公知の手法で算出することができる。
【0020】
単語ベクトル学習プログラム2は、テキストコーパス70の単語のうち処理対象のデータについてベクトルの演算が完了すると、初期ラベル付与プログラム4を起動する。なお、処理対象のデータは、テキストコーパス70の全ての単語としてもよいし、指定された範囲の単語であってもよい。
【0021】
初期ラベル付与プログラム4は、単語を分類するためのクラス(属性)と、当該クラスに所属する少数の単語を受け付けて、ラベルの付与(ラベリング)を実施する。なお、単語クラスと単語は、辞書作成装置1のユーザ等が入力装置50から受け付ける。また、クラスに所属する単語は、単語ベクトルテーブル3に含まれる単語である。
【0022】
初期ラベル付与プログラム4が受け付ける少数の単語は、1以上であればよく、好ましくは、数個の単語が入力されればよい。初期ラベル付与プログラム4は、入力された単語が当該単語クラスに該当する単語(初期単語)として「正」のラベルを付与した正例として扱ってラベルテーブル5へ格納する。
【0023】
なお、後述する処理では、指定された単語クラスに該当しない単語は、「負」のラベルを付与した負例として扱われる。
【0024】
初期ラベル付与プログラム4が受け付けた単語は、分散表現空間内での開始位置を特定する初期単語となる。初期ラベル付与プログラム4で、初期単語の受け付けが完了すると初期領域構築プログラム6が開始される。
【0025】
初期領域構築プログラム6は、ラベルテーブル5から初期単語を読み込んで、初期単語のベクトルデータを単語ベクトルテーブル3から取得し、分散表現空間内に初期領域を設定する。
【0026】
初期領域構築プログラム6は、初期単語のベクトルデータ間の距離に基づいて分散表現空間内に中心を設定し、正例を含む閉領域を初期領域として設定して領域情報7に格納する。なお、閉領域は正例のみを含む例を示すが、これに限定されるものではない。例えば、初期領域構築プログラム6が正例と負例の比率を算出して正例の比率が所定の閾値(正例比率)以上の閉領域を初期領域としてもよい。
【0027】
また、初期単語が1つの場合は、初期単語のベクトルを閉領域の中心とする球を設定すればよい。また、閉領域の大きさは、当該閉領域の外側で、中心から最も近い未確定の単語又は負例の手前までの半径又は距離とすればよい。
【0028】
初期領域71は、例えば、n次元空間の超球面で構成することができる。あるいは、閉領域が確率分布の場合は、パラメータを推定したものでもよい。確率分布がガウス分布の場合は、パラメータとして共分散行列を推定すればよい。
【0029】
図6は、初期領域構築プログラム6が設定する初期領域71の一例を示す図である。
図6は、分散表現空間(n次元空間)の写像で3つの初期単語のベクトルが同じ単語クラスに含まれる例を示す。この例では、初期領域71が球で構成される例を示す。
【0030】
初期領域構築プログラム6は、各初期単語のベクトル(座標)から等距離Lの点を中心Cとして設定する。初期領域構築プログラム6は、中心Cから半径Rの領域を設定する。半径Rは、初期領域71が各初期単語のベクトル(座標)を内包する距離よりも外側であればよい。
【0031】
例えば、中心Cから各初期単語のベクトルを通過して、次の未確定の単語のベクトルの手前までの距離を半径Rとして設定すればよい。なお、未確定の単語とは、ラベルが付与されていない単語を示す。
【0032】
なお、初期領域71は、上述のように正例のみを含む閉領域に限定されるものではなく、初期領域構築プログラム6が正例と負例の比率を算出して、正例の比率が所定の閾値(正例比率)以上の閉領域であってもよい。
【0033】
初期領域構築プログラム6は、初期領域71の設定が完了すると、
図2の縁構築プログラム8を起動させる。縁構築プログラム8は、初期領域71の外周から内側へ所定の距離(又は各次元における周縁からの幅)の領域として縁を設定する。
図7は、縁構築プログラム8が設定する縁81の一例を示す図である。
図7は、分散表現空間(n次元空間)の写像である。
【0034】
縁81は、単語を探索する領域として設定される。縁81の幅は、初期領域71が球の場合、例えば、半径Rの80%の位置が縁81の内周として設定する。そして、縁構築プログラム8は設定された縁の情報を縁情報9へ格納する。
【0035】
なお、上記では、初期領域71の外周から内側に縁81を設定する例を示したが、これに限定されるものでなはく、初期領域71の外周から外側へ縁81を所定の幅で設定してもよい。
【0036】
また、縁81の幅は、多次元空間内の距離に限定されるものではない。例えば、縁81に含まれるラベルが不確定の単語の数が所定値(縁用閾値)以上となる幅で設定してもよい。又は、初期領域71が確率分布で構成される場合には、確率値の閾値で縁81の幅を決定することができる。
【0037】
縁構築プログラム8は、縁81の設定が完了すると、
図2のラベル付与プログラム10を起動させる。ラベル付与プログラム10は、縁81に含まれるラベルが不確定の単語を抽出して、ラベルを付与してラベルテーブル5へ格納する。
【0038】
なお、初回の処理では、初期領域71内の初期単語は、初期ラベル付与プログラム4で全ての単語にラベルが付与されているため、ラベル付与プログラム10による処理はスキップする。
【0039】
ラベル付与プログラム10は、
図8に示すラベル付与画面100を出力装置60に表示して、未確定の単語へ付与するラベルを問い合わせる。
図8は、ラベル付与画面100の一例を示す図である。
【0040】
ラベル付与画面100は、初期領域71を拡大又は縮小した後の領域72の写像と、領域72内の縁81に含まれる未確定の単語を表示する領域110と、単語にラベルを付与する領域120を含む。
【0041】
領域110には、未確定の単語が表示され、確定済みの単語は黒丸印として表示される。領域120には、未確定の単語に対する質問文111と、「正」又は「負」のラベルを付与するボタン112が表示される。
【0042】
ユーザ等が入力装置50を操作してボタン112から「YES」又は「NO」を入力する。ラベル付与プログラム10は、「YES」を受け付けると単語のラベルに「正」(正例)を付与し、「NO」を受け付けると単語のラベルに「負」(負例)を付与してラベルテーブル5に格納する。
【0043】
ラベル付与プログラム10は、縁81内の全ての未確定の単語についてラベルの付与処理が完了すると、
図2の領域再構築プログラム11を起動させる。領域再構築プログラム11は、所定の終了条件を満たしたか否かを判定して、終了条件を満たしていなければ、初期領域71又は領域72の拡大又は縮小を実行した後に、縁構築プログラム8を起動させて上記処理を繰り返す。なお、領域72は、初期領域71を拡大した領域、又は、前回の領域72を拡大又は縮小した領域である。
【0044】
所定の終了条件は、ラベルを付与した単語の数が予め設定された閾値(ラベル付与数)を超えていれば、領域再構築プログラム11は、辞書の作成処理が完了したと判定して処理を終了する。閾値としてのラベル付与数は、例えば、100回などに設定することができる。
【0045】
一方、ラベルを付与した単語の数が閾値(ラベル付与数)以下の場合には、領域再構築プログラム11は、縁81内の単語のラベルに基づいて、中心Cの再設定を実施してから領域72の大きさを変更する。
【0046】
領域再構築プログラム11は、縁81内で「正」のラベルを付与した正例の単語のベクトルを取得し、正例のベクトルの加重平均を新たな領域72の中心C2として設定する。なお、領域再構築プログラム11は、現在の領域72内の正例の単語を抽出し、これらの単語のベクトルの加重平均から新たな中心C2を算出してもよい。
【0047】
領域再構築プログラム11は、縁81内で正例と負例の比率をS=正例の数/負例の数として算出する。次に、領域再構築プログラム11は、比率Sの値と予め設定された3つの閾値Th1、Th2、Th3を比較して、変更する領域72の大きさを決定する。ただし、閾値の大きさは、
【0048】
Th1>Th2>Th3
【0049】
である。例えば、Th1=0.9、Th2=0.7、Th3=0.5のように設定することができる。
【0050】
(1)S>Th1の場合
縁81内の単語は大多数が正例であるので、現在の領域72の外周は、正例と負例を分ける境界から離れていると判定できる。領域再構築プログラム11は、新たな領域72を大きく拡大させるため、新たな半径R2を現在の半径R×1.4等に設定する。そして、領域再構築プログラム11は、新たな中心C2で半径R2の球を新たな領域として、上記処理を繰り返す。なお、新たな半径R2の倍率は、1.4に限定されるものではなく、テキストコーパス70の単語数などに応じて適宜変更することができる。
【0051】
また、領域再構築プログラム11は、現在の縁81内の単語は大多数が正例であるので、ラベルの付与を省略し、縁81内の全ての単語を正例として扱う。そして、領域再構築プログラム11は、新たな中心C2と拡大された半径R2の球を新たな領域として、上記処理を繰り返す。
【0052】
(2)Th1≧S>Th2の場合
【0053】
縁81内の単語は正例が負例よりもやや多い状態であるので、現在の領域72の外周は、正例と負例を分ける境界に近付いたと判定できる。領域再構築プログラム11は、新たな領域72を徐々に拡大させるため、新たな半径R2を現在の半径R×1.2等に設定する。なお、新たな半径R2の倍率は、1.2に限定されるものではなく、テキストコーパス70の単語数などに応じて適宜変更することができる。
【0054】
また、領域再構築プログラム11は、現在の縁81内の単語についてラベルの付与を実施して、ラベルテーブル5へ格納する。そして、領域再構築プログラム11は、新たな中心C2と若干拡大された半径R2の球を新たな領域72として、上記処理を繰り返す。
【0055】
(3)Th2≧S>Th3の場合
【0056】
縁81内の単語は正例と負例の数が、ほぼ同数となる閾値Th3(0.5)へ近付いているため、現在の領域72の外周は、正例と負例を分ける境界にあると判定できる。領域再構築プログラム11は、領域72の外周が正例と負例を分ける境界に達したので、終了条件を満たしたと判定して処理を終了する。
【0057】
なお、閾値Th3の値は、正例と負例を分ける境界を識別するため0.5が好ましい。
【0058】
(4)Th3≧Sの場合
【0059】
縁81内の単語は負例が正例よりも多い状態であるので、現在の領域72の外周は、正例と負例を分ける境界を超えて負例側に入ったと判定できる。領域再構築プログラム11は、新たな領域72を縮小させるため、新たな半径R2を現在の半径R×0.8等に設定する。なお、新たな半径R2の倍率は、0.8に限定されるものではなく、テキストコーパス70の単語数などに応じて適宜変更することができる。
【0060】
また、領域再構築プログラム11は、現在の縁81内の単語は負例が多いためラベルの付与を省略する。そして、領域再構築プログラム11は、前回の中心Cと縮小した半径R2の球を新たな領域として、上記処理を繰り返す。
【0061】
図9は、再構築を行った領域及び縁の一例を示す図である。
図9は、分散表現空間(n次元空間)の写像で、前回の領域72’から拡大された領域72が再構築された例を示す。
【0062】
前回の領域72’は、中心Cと半径Rの球で構成される。領域再構築プログラム11は、前回の縁81内の正例の単語のベクトルの加重平均から新たな中心C2を算出し、上述の閾値Th1~Th3と比率Sの比較結果から新たな半径R2を算出する。
【0063】
領域再構築プログラム11は、新たな中心C2と新たな半径R2の領域72を再構築する。その後、縁構築プログラム8によって縁81が設定され、ラベル付与プログラム10によって、縁81内の単語にラベルが設定される。
【0064】
このように、辞書作成装置1は、初期単語から初期領域71を設定した後、縁81内の単語にラベルを付与してから、新たな中心C2の算出と、正例と負例の比率Sに基づく領域の拡大縮小を繰り返す。
【0065】
辞書作成装置1は、所定の終了条件に達した時点の領域72内の単語を、与えられた単語クラスに所属する単語として出力する。あるいは、当該領域72内の単語に「正」のラベルを付与してラベルテーブル5へ格納してもよい。
【0066】
これにより、領域の中心は、正例となった単語のベクトルに基づいて更新され、縁81内の比率Sによって領域72の大きさは離散的に変化する。従って、辞書作成装置1では、全ての単語についてラベルを付与することなく、縁81内の単語について正例と負例を判定すればよく、辞書作成の際のラベリングに要する労力を大幅に低減して、辞書の作成を短時間で行うことが可能となる。
【0067】
また、比率S>閾値Th1の場合や、閾値Th3≧比率Sの場合に縁81内の単語のラベルの付与を省略することで、辞書の作成を高速に行い、かつ、ユーザの労力を大幅に低減することが可能となる。
【0068】
なお、上記所定の終了条件は、上述のラベルを付与した単語の数に限定されるものではない。例えば、領域72の大きさを変更した回数(例えば、10回)が、予め設定された閾値(変更回数)を超えた場合に領域再構築プログラム11が終了を判定してもよい。
【0069】
あるいは、縁81内の精度が所定の閾値(精度閾値)を超えたら領域再構築プログラム11が終了を判定してもよい。この場合、精度は負例/正例で表され、例えば、精度閾値を50%とすると、縁81内の負例が半数を超えると領域72の外周は、正例の比率が低下するので、現在の領域72の外周は正例と負例を分離する境界にあると判定して処理を終了し、現在の領域72内を正例の単語として扱う。なお、本実施例では、領域72を高次元の球とした例を示したが、これに限定されるものでなはく、多面体などの任意の立体空間で構成することができる。
【0070】
<テーブル>
図4は、単語ベクトルテーブル3の一例を示す図である。単語ベクトルテーブル3は、単語の識別子を格納する単語id31と、単語を格納する語32と、単語ベクトル学習プログラム2が演算した分散表現を格納するベクトル33をひとつのエントリに含む。
【0071】
単語id31は、辞書作成装置1内でユニークな値であればよい。本実施例では、単語ベクトル学習プログラム2が付与した識別子を用いる。ベクトル33は、n次元で表現される。
【0072】
図5は、ラベルテーブル5の一例を示す図である。ラベルテーブル5は、単語の属性(クラス名)を格納する単語クラス51と、単語の識別子を格納する単語id52と、単語を格納する語53と、初期ラベル付与プログラム4又はラベル付与プログラム10によって付与されたラベル54をひとつのエントリに含む。
【0073】
単語クラス51には、初期ラベル付与プログラム4が入力装置50から受け付けたデータが格納される。単語id52は、辞書作成装置1内でユニークな単語の識別子が格納される。単語id52は、単語ベクトルテーブル3の単語id31と共通の値を用いることができる。ラベル54は、「正」又は「負」の値を格納する。
【0074】
<処理>
図3は、辞書作成装置1で行われる処理の一例を示すフローチャートである。この処理は、単語ベクトル学習プログラム2による単語ベクトルテーブル3の生成が完了している状態で、ユーザ等が入力装置50から所定の指令を入力することで開始される。
【0075】
まず、ステップS1では、初期ラベル付与プログラム4が、単語クラスと初期単語を入力装置50等から受け付けて、ラベルの付与を実施する。初期ラベル付与プログラム4が、受け付ける初期単語の数は上述のように少数でよい。初期ラベル付与プログラム4は、受け付けた初期単語に「正」のラベルを付与して、ラベルテーブル5へ格納する。
【0076】
ステップS2では、初期領域構築プログラム6が、ラベルテーブル5から初期単語を読み込んで、初期単語のベクトルデータを単語ベクトルテーブル3から取得し、分散表現空間内に初期領域を設定する。
【0077】
初期領域構築プログラム6は、上述のように初期単語のベクトルデータ間の距離に基づいて分散表現空間内に中心を設定し、正例を含む閉領域を初期領域71として設定して領域情報7に格納する。
【0078】
次に、ステップS3では、縁構築プログラム8は、領域情報7から初期領域71を読み込んで、上述のように初期領域71の外周から所定の幅の縁81を設定する。なお、縁構築プログラム8が領域情報7から読み込むデータは、初回が初期領域71で、次回のループ以降では領域72となる。
【0079】
次に、ステップS4では、ラベル付与プログラム10が、ラベルの付与を実行するか否かを判定する。初期領域71であれば、初期単語にはラベルが付与済みであるのでステップS6へ進む。また、上記領域再構築プログラム11の判定で、(1)S>Th1の場合と、(4)Th3≧Sの場合は、ラベルの付与を省略するのでステップS6へ進む。その他の場合は、ステップS5へ進む。
【0080】
次に、ステップS5では、ラベル付与プログラム10が、縁81内の未確定の単語を取得して、
図8に示したラベル付与画面100を生成して出力装置60へ表示し、ラベルを問い合わせる。
【0081】
すなわち、ラベル付与プログラム10は、単語ベクトルテーブル3を参照してベクトル33が、縁81に含まれる単語の単語id31を取得する。ラベル付与プログラム10は、上記ステップS1で受け付けた単語クラスと縁81内の単語id31で、ラベルテーブル5を参照し、単語クラス51と単語id52が一致するエントリで、ラベル54が未確定の単語を取得する。
【0082】
ラベル付与プログラム10は、未確定の単語を含む質問文111と領域72を生成して出力装置60へ表示する。ラベル付与プログラム10は、領域120の質問文111に対するラベルを受け付けて、ラベルテーブル5へ格納する。ラベル付与プログラム10は、領域120の全ての質問文111についてラベルを受け付けると、ステップS6へ進む。
【0083】
ステップS6では、領域再構築プログラム11が、上述のように正例と負例の比率Sを算出して閾値Th1~Th3と比較を行い、終了条件を満足したか否かを判定する。終了条件としては、上述したように、ラベルを付与した単語の数が所定の閾値(ラベル付与数)を超えた場合と、上記(3)のTh2≧S>Th3の場合である。
【0084】
ラベルを付与した単語の数が閾値を超えるか、比率Sが閾値Th2以下かつ閾値Th3より大であれば、領域再構築プログラム11は、終了条件を満足したと判定して処理を終了する。
【0085】
辞書作成装置1は、処理を終了した時点の領域72内の単語を、単語クラスに含まれる単語として出力することができる。あるいは、処理を終了した時点の領域72内の単語から負例を除いた結果を単語クラスに含まれる単語として出力することもできる。
【0086】
一方、ラベルを付与した単語の数が閾値以下、又は、比率Sが閾値Th2を超え、あるいは、比率Sが閾値Th3以下の場合には、領域再構築プログラム11が、領域72の再設定を行う。領域再構築プログラム11は、縁81内の単語のベクトル33から新たな中心C2を算出し、半径Rを拡大又は縮小する比率を上記(1)、(2)、(4)のいずれかで決定し、新たな領域72を設定して領域情報7へ格納する。その後、ステップS3へ戻って上記処理を終了条件に達するまで繰り返す。
【0087】
以上の処理によって、辞書作成装置1は、分散表現空間内で少数の初期単語によって初期領域71を設定し、領域に設定した縁81内の正例と負例の比率に応じて、領域72を拡大又は縮小する比率を離散的に変更し、また、領域72内の単語間の距離から領域72の中心を再設定する。
【0088】
分散表現空間内では意味的に近い単語間の距離は小さくなることから、少数の単語によって設定された初期領域71から領域72の拡大と縮小を行って、中心Cを更新していくことで、最終的に領域72の外周は正例と負例の境界に近付いていく。
【0089】
本実施例の辞書作成装置1は、領域72のうち縁81内の未確定単語についてラベルの付与を行い、領域72の拡大縮小の比率を離散的とすることで、ラベルを付与する単語の数を低減しながらも、離散的な変形比率の更新によって迅速に領域72の外周を境界へ近づけることが可能となる。これによって、少量の正例から辞書の作成を開始して、効率的に辞書を作成することが可能となる。
【実施例2】
【0090】
図10は、本発明の実施例2を示し、辞書作成装置の一例を示すブロック図である。本実施例では、前記実施例1の構成にアクティブラーニングプログラム13を加えて、領域再構築プログラム11で比率Sの判定結果が所定の閾値Thsを超えたら、アクティブラーニングプログラム13によって単語の分類を実行する例を示す。その他の構成は、前記実施例1と同様であるので、重複する説明は省略する。
【0091】
アクティブラーニングプログラム13としては、前記非特許文献1の“uncertainty sampling”や“Active Learning with Support Vector Machines”(Andreas Vlachos著、School of Informatics University of Edinburgh、2004)等の従来の技術を適用することができる。
【0092】
図11は、本発明の実施例2を示し、辞書作成装置1で行われる処理の一例を示す図である。初期ラベル付与プログラム4~領域再構築プログラム11までの処理は、前記実施例1と同様である。
【0093】
条件分岐12では、領域再構築プログラム11が比率Sを算出して、比率Sが所定の閾値Thsを超えていればアクティブラーニングプログラム13を起動し、領域72の分類処理を引き継がせる。
【0094】
非特許文献1では、少量の教師データのみから処理を開始して、分類器の性能向上に最も効果的な単語を選んで、新たにラベルを付与する。新たなラベルを付与済みの単語を用いて分類器を学習し直す。非特許文献1の“Uncertainty Sampling”では、ラベルを付与していない単語のうち、分類器によるラベル付与の不確実性が高い単語から、ラベルを付与することができる。
【0095】
上記処理により、正例の比率がある程度大きくなるとラベリングの処理をアクティブラーニングプログラム13へ引き継がせることにより、ユーザによるラベリングの労力を低減して、効率よく辞書の作成を行うことが可能となる。
【0096】
<結び>
以上のように、上記実施例1、2の辞書作成装置は、以下の構成とすることができる。 (1)プロセッサ(20)とメモリ(30)を有する計算機(辞書作成装置1)で、単語をクラスに分類する辞書作成方法であって、前記プロセッサ(20)が、辞書を作成する前記単語の分散表現をベクトル情報(33)で取得して単語ベクトル情報(単語ベクトルテーブル3)に格納する分散表現取得ステップと、前記プロセッサ(20)が、前記単語を分類するためのクラス(単語クラス51)と、前記クラス(51)に所属する初期単語を受け付けて、前記初期単語に正例のラベル(54)を付与する初期ラベル付与ステップ(S1)と、前記プロセッサ(20)が、前記初期単語のベクトル情報を前記単語ベクトル情報(3)から取得して、分散表現空間内で前記ベクトル情報(33)を含む領域(初期領域71)を設定する初期領域設定ステップ(S2)と、前記プロセッサ(20)が、前記分散表現空間内の前記領域(71、72)の外周から所定の範囲を縁(81)として設定する縁設定ステップ(S3)と、前記プロセッサ(20)が、前記縁(81)内に含まれる未確定の単語について正例又は負例のいずれかのラベル(54)を付与するラベリングステップ(S5)と、を含む。
【0097】
上記構成により、辞書作成装置1では、領域72の縁81に含まれる単語についてラベリングを行えばよいので、辞書を作成する際のラベリングに要する労力を大幅に低減して、効率的に辞書を作成することができる。
【0098】
(2)上記(1)に記載の辞書作成方法であって、前記プロセッサ(20)が、前記縁(81)に含まれる正例と負例の比率に応じて、前記領域の大きさを拡大又は縮小する領域再構築ステップ(S6)を、さらに含む。
【0099】
上記構成により、辞書作成装置1では、分散表現空間内では意味的に近い単語間の距離は小さくなることから、少数の単語によって設定された初期領域71から領域72の拡大又は縮小を行って、中心Cを更新していくことで、最終的に領域72の外周は正例と負例の境界に近付いていくことになり、単語クラスに所属する正例の境界を迅速に算出することができる。
【0100】
(3)上記(2)に記載の辞書作成方法であって、前記プロセッサ(20)が、所定の終了条件が成立するまで、前記領域再構築ステップ(S6)と、縁設定ステップ(S3)と、前記ラベリングステップ(S5)とを繰り返すことを特徴とする辞書作成方法。
【0101】
上記構成により、辞書作成装置1では、領域72の縁81に含まれる単語についてラベリングを行えばよいので、辞書を作成する際のラベリングに要する労力を大幅に低減して、効率的に辞書を作成することができる。
【0102】
(4)上記(1)に記載の辞書作成方法であって、前記初期領域設定ステップ(S2)では、前記正例の初期単語のベクトル情報(33)を含む前記分散表現空間内の閉領域を初期の領域(71)として設定する。
【0103】
上記構成により、辞書作成装置1は、少数の初期単語を受け付けて、単語クラスに所属する正例の境界を探索するため、正例のみを含む初期領域71を設定することができる。
【0104】
(5)上記(2)に記載の辞書作成方法であって、前記領域再構築ステップ(S6)では、前記拡大又は縮小する倍率を正例と負例の比率(S)に応じて離散的に設定する。
【0105】
上記構成により、辞書作成装置1では、領域72のうち縁81内の未確定単語についてラベルの付与を行い、領域72の拡大縮小の比率を離散的とすることで、ラベルを付与する単語の数を低減しながらも、離散的な変形比率の更新によって迅速に領域72の外周を境界へ近づけることが可能となる。これによって、少量の正例から辞書の作成を開始して、効率的に辞書を作成することが可能となる。
【0106】
(6)上記(2)に記載の辞書作成方法であって、前記縁設定ステップ(S3)では、前記再設定された領域の外周から所定の範囲で縁を再設定する。
【0107】
上記構成により、辞書作成装置1では、再設定された領域72で縁81を再設定することで、前回とは異なる単語を縁81内に含むことができ、単語クラスに所属する正例と負例の境界を迅速に算出することができる。
【0108】
(7)上記(2)に記載の辞書作成方法であって、前記領域再構築ステップ(S6)では、前記縁(81)内に含まれる正例の単語のベクトル情報(33)から領域の新たな中心(C2)を再設定する。
【0109】
上記構成により、辞書作成装置1では、再設定された領域72の縁81に含まれる正例のベクトル33から中心を再設定することで、単語クラスに所属する正例と負例の境界を迅速に算出することができる。
【0110】
(8)上記(3)に記載の辞書作成方法であって、前記終了条件は、前記ラベル(54)を付与した単語の数(ラベル付与数)又は拡大縮小の回数が所定の数に達したときに終了条件が成立したと判定する。
【0111】
上記構成により、辞書作成装置1では、少量の正例から辞書の作成を開始して、効率的に辞書を作成することが可能となる。
【0112】
(9)上記(2)に記載の辞書作成方法であって、前記領域再構築ステップ(S6)では、前記縁(81)内に含まれる正例と負例の比率(S)を算出し、正例の比率(S)が所定の閾値(Ths)を超えたときには、アクティブラーニング(13)へ移行して単語のクラスを分類させる。
【0113】
上記構成により、辞書作成装置1では、正例の比率がある程度大きくなるとラベリングの処理をアクティブラーニングプログラム13へ引き継がせることにより、ユーザによるラベリングの労力を低減して、効率よく辞書の作成を行うことが可能となる。
【0114】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【0115】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0116】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0117】
1 辞書作成装置
2 単語ベクトル学習プログラム
3 単語ベクトルテーブル
4 初期ラベル付与プログラム
5 ラベルテーブル
6 初期領域構築プログラム
7 領域情報7
8 縁構築プログラム
9 縁情報
10 ラベル付与プログラム
11 領域再構築プログラム
13 アクティブラーニングプログラム