説明

検索装置および検索方法およびプログラムおよび記録媒体

【課題】シソーラス辞書を用いた検索において、極めて汎用的な上位用語への検索用語の拡張や、抽象的な用語への検索用語の拡張を抑制して、用語の意味を考慮した検索用語の拡張を行い、より条件に合った検索を行うこと。
【解決手段】シソーラス辞書検索手段101がシソーラス辞書DB103を用いて検索用語を拡張し、人材検索手段102が拡張された検索用語を用いて人材DB104を検索する構成を特徴とし、シソーラス辞書DB103は、登録された用語に、汎用的な用語を示すストップマーク、抽象的な用語を示す抽象フラグ等を設定可能なものであり、シソーラス辞書検索手段101は、ストップマークが設定された用語をシソーラス辞書の上位検索の終点とするシソーラス辞書検索終点決定手段1011と、抽象フラグが設定された用語を検索用語の拡張から排除するシソーラス辞書抽象用語排除手段1012とを有する構成を特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索用語をシソーラス辞書を用いて拡張してデータベース検索を行う際の制御に関する。
【背景技術】
【0002】
特許文献1には、検索対象となる用語からシソーラス辞書の最上位語(または最下位語)まで検索することで、検索対象となる用語の類義語拡張を行う検索装置が開示されている。この検索装置は、上記拡張した全ての類義語において類似度の算出を行い、この類似度の閾値により、検索対象となる用語の絞込みを行っている。または、この検索装置は、検索するにあたって、シソーラス辞書の階層範囲を指定し、検索対象となる用語の絞込みを行っている。
【特許文献1】特開2003−345824号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、一般的に、シソーラス辞書は用語によってその類義語の階層にバラツキがある。例えば、ある用語の類義語の階層は細かく、また、ある用語の類義語の階層は大雑把に作成されている。これは、例えば、シソーラス辞書を作る人の専門能力が異なる為に、専門的に詳しい分野では階層の多い辞書が作成されるといったこと等に起因する。
【0004】
このように、シソーラス辞書に登録された用語が用語により類義語の階層に差が生じている場合、上記特許文献1に記載の検索装置のように、類義語を検索するにあたって類似度の閾値や回数でその検索範囲を指定する方法では、拡張する検索用語によって、非常に関連性の高いものしか拡張されない、或いは、あまり関連性のない単語まで拡張してしまうという差がでてしまうといった恐れがある。
【0005】
また、一般的に、シソーラス辞書は、辞書に登録されている類義語の意味を考慮せず管理されている。このため、上記特許文献1の検索装置のように、類似度の閾値や回数でその検索範囲を指定する方法では、この検索範囲の全てが検索対象となる為、検索対象として意味のない類義語にまで検索用語を拡張してしまう恐れがある。
【0006】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、シソーラス辞書を用いた検索において、極めて汎用的な上位用語への検索用語の拡張や、抽象的な用語への検索用語の拡張を抑制して、用語の意味を考慮した検索用語の拡張を行うことができ、より条件に合った検索を行うことができる仕組みを提供することである。
【課題を解決するための手段】
【0007】
本発明は、シソーラス辞書を用いて検索用語の類義語を検索して検索用語を拡張するシソーラス辞書検索手段と、前記シソーラス辞書検索手段により拡張された検索用語を用いてデータベースを検索するデータベース検索手段と、を有するものであり、前記シソーラス辞書は、登録された用語に、汎用的な用語を示すストップマーク、抽象的な用語を示す抽象フラグのいずれか又は双方を設定可能であり、前記シソーラス辞書検索手段は、前記ストップマークが設定された用語をシソーラス辞書の上位検索の終点とするシソーラス辞書検索終点決定手段と、前記抽象フラグが設定された用語を検索用語の拡張から排除するシソーラス辞書抽象用語排除手段とを有する、ことを特徴とする。
【発明の効果】
【0008】
本発明によれば、シソーラス辞書を用いた検索において、極めて汎用的な上位用語への検索用語の拡張や、抽象的な用語への検索用語の拡張を抑制して、用語の意味を考慮した検索用語の拡張を行うことができ、より条件に合った検索を行うことができる等の効果を奏する。
【発明を実施するための最良の形態】
【0009】
以下、図面を参照して本発明の実施形態について説明する。なお、本説明では、本発明による検索装置を人材検索に用いることを想定した場合を例にあげて説明を行う。
【0010】
図1は、本発明に係る検索装置を適用可能な人材検索装置の構成の一例を示すシステム構成図である。
【0011】
図1において、100は人材検索装置であり、シソーラス辞書検索を行うシソーラス辞書検索手段101と、人材検索を行う人材検索手段102と、シソーラス辞書を管理するシソーラス辞書DB103と、人材データを管理する人材DB(人材データベース)104からなる。
【0012】
また、シソーラス辞書検索手段101は、シソーラス辞書の上位検索の終点(極めて汎用的な用語であるため、それ以上上位の検索を行っても意味のない用語)を決定するシソーラス辞書検索終点決定手段1011、シソーラス辞書検索でヒットした用語の中でその用語が抽象的であるために検索用語の拡張から排除するシソーラス辞書抽象用語排除手段1012、シソーラス検索でヒットした用語の有用度を算出するシソーラス辞書検索ヒット用語有用度算出手段1013を有する。
【0013】
人材検索手段102は、人材検索でヒットした人材の経験値を算出する人材検索スコア算出手段1021を有する。
【0014】
これら、シソーラス辞書検索手段101および人材検索手段102はJava(登録商標(以下省略))サーブレットなどの一般的なWebアプリケーション技術によって実現することが可能である。
【0015】
また、クライアント通信手段105は、WebアプリケーションのプラットフォームとなるWebアプリケーションサーバによって提供される機能を利用することができる。例えば、WebアプリケーションサーバTomcatで動作するJavaサーブレットプログラムとしてこれらの機能を実現することができる。
【0016】
111はクライアント装置であり、所定の通信媒体を介して人材検索装置100と通信可能に接続されている。なお、クライアント装置111には、パーソナルコンピュータ等で構成され、例えばWebブラウザ等を用いて人材検索装置100と通信可能である。
【0017】
人材検索装置100は、クライアント装置111から入力される検索条件に基づいて検索処理を行い、検索結果をクライアント装置110に送信する構成を有する。
【0018】
図2は、図1に示した人材検索装置100のハードウェア構成の一例を示すブロック図である。
【0019】
図2に示すように人材検索装置100は、中央処理装置(以下、CPU)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、HDD(Hard Disk Drive)204と、ネットワークインタフェース205からなる。
【0020】
CPU201は、HDD204に格納されたプログラムをRAM203上にロードして実行することにより、後述する各種機能を実現することができる。
【0021】
なお、図1に示したシソーラス辞書検索手段101(シソーラス辞書検索終点決定手段1011,シソーラス辞書抽象用語排除手段1012,シソーラス辞書検索ヒット用語有用度算出手段1013を含む),人材検索手段102(人材検索スコア算出手段1021を含む)は、CPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現される機能に対応する。
【0022】
また、図1に示したシソーラス辞書DB103,人材DB104は、例えばHDD204上等に実現される。
【0023】
まず、図3〜図7を参照して、本実施形態で用いるシソーラス辞書DB103の構成について説明する。
【0024】
図3は、図1に示したシソーラス辞書DB103の一例を模式的に示した模式図である。なお、ここでは「ソフトウェア」を例にしたシソーラス辞書DB103の例を示してある。
【0025】
図中、301に示すように、矢印のついていない線(−)は、上位、下位を示す。
【0026】
また、図中、302に示すように、矢印(→)で繋がっている単語は、関連語を示す。なお、矢印のない単語から見て矢印のある単語が関連する言葉であることを示す(逆は真ではない)。
【0027】
さらに、図中、303に示すように、矢印が両端についている線(←→)は、矢印(←→)で繋がっている単語が相互に関連語であることを示す。
【0028】
また、図中、304,305に示すように、アンダーラインが付されてる単語は、下記の意味を有する。
【0029】
まず、図中、304に示すように、通常の下線が付されている単語は、抽象属性を持つ単語(抽象的であるため検索用語の拡張から排除する用語)であることを示す。
【0030】
また、波線(不図示)が付されている単語は、上位終端属性を持つ単語(極めて汎用的な用語であるためシソーラス辞書の上位検索の終点とする用語)であることを示す。
【0031】
さらに、図中、305に示すように、二重線が付されている単語は、上位終端属性、且つ、抽象属性を持つ単語であることを示す。
【0032】
図4は、図3に示したシソーラス辞書DB103に登録された各単語に付された重みの一例を模式的に示した模式図である。ここでは、「Java1.3」からたどった場合の例を示す。
【0033】
図4中の数値は、各用語間に付された重み(類似度)を示す。例えば、401は「Java1.3」からみた上位語「Java」の重みを示したものであり、ここでは「0.8」の重みとなっている。
【0034】
一方、402は「Java」からみた下位語「Java1.3」の重みを示したものであり、ここでは「1.0」の重みとなっている。
【0035】
図5は、図3,図4に示したシソーラス辞書DB103登録された各単語のデータ構成の一例を示すデータ構成図である。
【0036】
図5において、500はシソーラス辞書DB103登録された単語であり、見出し501、同義語リスト(同義語List)502、上位語503、下位語リスト(下位語List)504、関連語リスト(関連語List)505、抽象フラグ506、ストップマーク(Stopマーク)507から構成される。
【0037】
見出し501には、文字列が格納される。また、同義語リスト502は、同義語のリストである。なお、各同義語には、文字列が格納される。
【0038】
上位語503は、上位語を示す情報(上位語情報)で構成される。下位語リスト504は、下位語を示す情報(下位語情報)のリストである。関連語リスト505は、関連語を示す情報(関連語情報)のリストである。なお、上位語情報、下位語情報(1〜jの個々のもの)、関連語情報(1〜kの個々のもの)のデータ構成は後述する図6に示す。
【0039】
抽象フラグ506は、その単語が極めて抽象的な用語の為、シソーラス辞書DB103を用いて用語を拡張する際に、その単語を検索語として対象外とすることを示すフラグである。この抽象フラグ506が「TRUE」の場合にはその単語を検索用語として対象外とする。即ち、用語を拡張する際のシソーラス辞書検索実行時に抽象フラグに「TRUE」が設定された用語は検索用語の拡張から排除される。
【0040】
ストップマーク507は、その単語が極めて汎用的な用語の為、シソーラス辞書DB103を用いて用語を拡張する際に、その単語以上上位の検索(上位拡張)を行わないことを示すマークである。このストップマーク507が「TRUE」の場合にはその単語以上上位の検索を行わないものとする。即ち、用語を拡張する際のシソーラス辞書検索実行時にストップマークが設定された用語がシソーラス辞書の上位検索の終点となる。
【0041】
図6は、図5に示した上位語情報、下位語情報(1〜jの個々のもの)、関連語情報(1〜kの個々のもの)の詳細構造を示すデータ構成図である。
【0042】
図6に示すように、上位語情報、下位語情報、関連語情報は、相手見出し601、類似度602から構成される。相手見出し601には、上位語、下位語、又は、関連語(即ちシソーラス内の別ノードの単語)の見出し501(図5)に対応する文字列が格納される。また、類似度602には、現在着目している単語から相手見出しの単語の累積重み(数値)が算出され格納される(算出方法は後述する)。
【0043】
図7は、シソーラス辞書DB103内の単語の一例を示す図である。
【0044】
図7において、(a)は、見出しを「Oracle(登録商標(以下省略))」とした場合のシソーラス辞書DB103内の単語の一例を示す。また、(b)は、「Oracle」の上位語の一例を示す。なお、この例は、「Oracle」からみた上位語「RDB」の重みが「0.5」である場合に対応する。
【0045】
以下、フローチャートを参照して本発明の検索装置における検索処理について説明する。
【0046】
図8は、本発明における第1の制御処理手順の一例を示すフローチャートであり、人材検索装置100における検索処理に対応する。なお、このフローチャートの処理は、図2に示したCPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現される機能に対応する。
【0047】
まず、ステップS801では、CPU201は、クライアント装置111からの送信される検索条件の入力を受け付ける。
【0048】
クライアント装置111では、ディスプレイに検索条件入力画面900(図9)を表示し、検索条件入力画面900により検索条件の入力を受け付ける。
【0049】
図9は、本実施形態における検索条件入力画面900の一例を示す図である。なお、検索条件入力画面900は、人材検索装置100から送信されてクライアント装置111のディスプレイに表示される構成であっても、クライアント装置111のハードディスク等から読み出されてディスプレイに表示される構成であってもよい。
【0050】
図9において、901は必須チェックボックスであり、このチェックボックスにチェックされた検索条件は必須の検索条件となる。
【0051】
902は技術/環境条件入力欄、903は工程条件入力欄、904は役割条件入力欄、905は経験時間条件入力欄である。
【0052】
906はキャンセルボタンであり、このボタンがクリック指示(押下)されると、検索条件入力画面900により入力された検索条件は破棄され、検索処理はキャンセルされる。
【0053】
907は検索開始ボタンであり、このボタンがクリック指示(押下)されると、当該検索条件入力画面900により入力された検索条件が、クライアント装置111から人材検索装置100に送信される。
【0054】
人材検索装置100では、クライアント装置111から検索条件を受信すると、人材検索装置100のCPU201は、受信した検索条件を図10〜図13に示すデータ構造でRAM203に格納し、ステップS1302に処理を進める。
【0055】
図10は、人材検索装置100で保持される検索条件のデータ構成の一例を示すデータ構成図である。
【0056】
図10に示すように、検索条件は、複数の検索条件(条件1,条件2,条件3,・・・,条件n)のリスト構造(検索条件リスト1000)で保持される。
【0057】
検索条件リスト1000内の各検索条件には、検索条件入力画面の必須チェックボックス901、技術/環境条件入力欄902、工程条件入力欄903、役割条件入力欄904、経験時間条件入力欄905で入力された一組の検索条件(即ち図10の横一列の入力条件)が格納される。
【0058】
図11は、図10に示した検索条件リスト1000内の各検索条件のデータ構成の一例を示すデータ構成図である。
【0059】
図11に示すように、検索条件は、技術/環境条件1101,工程条件1101,役割条件1103,要求経験レベル1104から構成される。
【0060】
技術/環境条件1101は、条件見出し1105,拡張リスト1106,必須フラグ1107から構成される。
【0061】
技術/環境条件1101の条件見出し1105には、検索条件入力画面900の技術/環境条件入力欄902で入力された条件が格納される。
【0062】
工程条件1102には、検索条件入力画面900の工程条件入力欄903で入力された条件が格納される。役割条件1103の条件見出し1105には、検索条件入力画面900の役割条件入力欄904で入力された条件が格納される。要求経験レベル1104の条件見出し1105には、検索条件入力画面900の経験時間入力欄904で入力された経験時間数値が格納される。
【0063】
また、技術/環境条件1101の必須フラグ1107には、必須チェックボックス901がチェックされている場合には「TRUE」、チェックされていない場合には「FALSE」がそれぞれ格納される。
【0064】
なお、図8のステップS801でスキル条件(検索条件)が入力された時点では、技術/環境条件1101の拡張リスト1106にはデータは格納されず、後述するステップS802において拡張される拡張語の情報が格納される。
【0065】
図12は、図11に示した拡張リスト1106内の各拡張語のデータ構成の一例を示すデータ構成図である。
【0066】
図12に示すように、拡張語は、拡張見出し1201,拡張重み1202,抽象フラグ1203で構成され、後述する図8のステップS802で拡張される拡張語の情報が格納される。
【0067】
拡張見出し1201には、拡張語の拡張語見出し文字が格納される。拡張重み1202には、拡張語の拡張重み(拡張された検索用語の有用度を示すものであり詳細は後述する)が格納される。抽象フラグ1203には、拡張語の抽象フラグの真偽値が格納される。
【0068】
図13は、図10に示した検索条件リストの一例を示す図である。
【0069】
図13に示した例では、検索条件入力画面900の技術/環境条件入力欄902に「Oracle」,「Java1.3」が入力された場合に対応する。
【0070】
以下、図8のフローチャートの説明に戻る。
【0071】
ステップS802では、CPU201(シソーラス辞書検索手段101)は、類義語を利用した検索語拡張処理(キーワードの拡張処理)を実行する。なお、この検索語拡張処理の詳細は図14を用いて後述する。
【0072】
次に、ステップS803では、CPU201(人材検索手段102)は、ステップS802のキーワード拡張処理結果を用いた人材スキルプロファイルDB検索処理を実行する。なお、この人材スキルプロファイルDB検索処理の詳細は図23を用いて後述する。
【0073】
次に、ステップS804では、CPU201(人材検索計検知算出手段1021)は、ステップS803の人材検索結果の一人材ごとに検索条件より近しいかのポイントを付加する処理(検索された人材のスコアリング処理)を実行する。なお、この検索された人材のスコアリングの詳細は図24を用いて後述する。
【0074】
次に、ステップS805では、CPU201は、ステップS803で検索され、ステップS804でスコアリングされた人材検索結果一覧(一例を後述する図25に示す)を、人材検索を依頼したクライアント装置111に送信する。この人材検索結果一覧を受信したクライアント装置111では、この人材検索結果一覧をディスプレイに表示等する。
【0075】
以下、図14のフローチャートを参照して図8のステップS802に示した類義語辞書を利用して検索条件を意味の近い言葉へ拡張する検索語拡張処理について説明する。
【0076】
図14は、本発明における第2の制御処理手順の一例を示すフローチャートであり、図8のステップS802に示した検索語拡張処理に対応する。なお、このフローチャートの処理は、図2に示したCPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現されるシソーラス辞書検索手段101の機能に対応する。
【0077】
まず、ステップS1401では、CPU201は、ステップS801で入力されたRAM203内に保持された検索条件リスト1000内に、未拡張の検索条件(スキル条件)が存在するか判定し、未拡張の検索条件が存在すると判定した間は、ステップS1402〜S1408の処理を実行する。なお、本実施形態では、検索条件内の技術/環境条件1101のみを検索語の拡張を行うものとするが、工程条件1102,役割条件1103も夫々検索語の拡張を行うように構成してもよい。
【0078】
一方、ステップS1401で、未拡張の検索条件が存在しないと判定した場合には、CPU201は、検索語拡張処理を終了する。
【0079】
ステップS1402では、CPU201は、検索条件リスト1000から検索条件(スキル条件)を抜き出す。
【0080】
ステップS1403では、CPU201は、ステップS1402で抜き出した検索条件(スキル条件)からキーワード(条件見出し1105(図11))を抜き出す。
【0081】
ステップS1404では、CPU201は、ステップS1403で抜き出したキーワードをシソーラス辞書DB103を用いて代表語へ統制する同義語統制処理を実行する。なお、この同義語統制処理の詳細は図15を用いて後述する。
【0082】
ステップS1405では、CPU201は、ステップS1404で代表語へ統制したキーワードとシソーラス辞書DB103を用いてキーワードの上位語拡張を行う上位検索処理を実行する。なお、この上位検索処理の詳細は図16を用いて後述する。
【0083】
ステップS1406では、CPU201は、ステップS1405で拡張された上位語とシソーラス辞書DB103を用いてキーワードの下位語拡張を行う下位検索処理を実行する。なお、この下位検索処理の詳細は図17を用いて後述する。
【0084】
ステップS1407では、CPU201は、ステップS1404で代表語へ統制したキーワードとシソーラス辞書DB103を用いてキーワードの関連のある用語への拡張を行う関連語検索処理を実行する。なお、この関連語検索処理の詳細は図18を用いて後述する。
【0085】
次に、ステップS1408では、CPU201(シソーラス辞書抽象用語排除手段1012)は、キーワードの拡張リスト1106から、抽象フラグ1203が「FALSE」の拡張語を削除する抽象後排除処理を実行する。これにより、拡張語の中で極めて抽象的な用語を検索語として対象外として排除することができる。
【0086】
そして、CPU201は、図8のステップS801で入力されたRAM203内に保持された検索条件リスト1000内に未拡張の検索条件(スキル条件)が存在しなくなったら、本フローチャートの処理を終了する。
【0087】
以下、図15のフローチャートを参照して図14のステップS1404に示した同義語統制処理について説明する。
【0088】
図15は、本発明における第3の制御処理手順の一例を示すフローチャートであり、図14のステップS1404に示した同義語統制処理に対応する。なお、このフローチャートの処理は、図2に示したCPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現されるシソーラス辞書検索手段101の機能に対応する。
【0089】
まず、ステップS1501では、CPU201は、図14のステップS1403で抜き出したキーワード(即ち、検索条件(スキル条件)として入力されたキーワード)を代表語へ統制する。例えば、検索条件として入力されたキーワードが「ジャヴァ」や「JAVA(登録商標(以下省略))」であった場合、検索条件を「Java」という文字(代表語)に変換することである。
【0090】
用語管理手段において、代表語と代表語ではないものは、図5に示したシソーラス辞書DB103内各単語の詳細構造から判別することができる。
【0091】
代表語は、図5シソーラス辞書DB103内各単語の詳細構造の同義語リスト502に情報を保持していない。
【0092】
一方、代表語ではないものは、図5のシソーラス辞書DB103内各単語の詳細構造の同義語リスト503にその代表語となる情報を保持している。
【0093】
即ち、ステップS1501では、CPU201は、検索条件として入力されたキーワードを用いて図5のシソーラス辞書DB103内を検索する。そして、該検索された単語の同義語リスト503にその代表語となる情報を保持されている場合には、CPU201は、当該キーワード(即ち、図11の条件見出し1105)をその代表語に書き換える(変換する)。
【0094】
以下、図16のフローチャートを参照して図14のステップS1405に示した上位語検索処理について説明する。
【0095】
図16は、本発明における第4の制御処理手順の一例を示すフローチャートであり、図14のステップS1405に示した上位語検索処理に対応する。なお、このフローチャートの処理は、図2に示したCPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現されるシソーラス辞書検索手段101の機能に対応する。
【0096】
まず、CPU201は、まず、ステップS1601において、図14のステップS1404で代表語へ統制されたキーワード(以下、キーワード)が必須条件に設定されたキーワードか否かを判定する。CPU201は、キーワードを条件見出し1105としたスキル条件内の必須フラグ1107(図11)に「TRUE」であった場合キーワードが必須条件に設定されたと判定する。
【0097】
ステップS1601で、キーワードが必須条件に設定されたと判定した場合には、CPU201は、ステップS1608に処理を進める。
【0098】
ステップS1608では、CPU201は、キーワードを、キーワードを条件見出し1105としたスキル条件内の拡張リスト1106(図11)の先頭要素に設定する。即ち、上記拡張リスト1106の先頭に拡張語を追加し、該追加した拡張語の拡張見出し1201に上記キーワードに対応する文字列を設定する。その後、CPU201は、ステップS1609に処理を進める。
【0099】
次に、ステップS1609では、CPU201は、上記拡張語の拡張重み1202に「1」、抽象フラグ1203に「TRUE」を入力し、本フローチャートの処理を終了する。
【0100】
一方、ステップS1601で、キーワードが必須条件に設定されていないと判定した場合には、CPU201は、ステップS1602に処理を進める。
【0101】
ステップS1602では、CPU201は、キーワードを、キーワードを条件見出し1105としたスキル条件内の拡張リスト1106(図11)の先頭要素に設定する。さらに、CPU201は、キーワードを"着目中の用語"としてRAM203に記憶させ、ステップS1603に処理を進める。
【0102】
次に、ステップS1603では、CPU201は、上記拡張語の拡張重み1202に「1」を入力する。さらに、CPU201は、上記"着目中の用語"でシソーラス辞書DB103を検索し、シソーラス辞書DB103内で上記"着目中の用語"に設定されている抽象フラグ506の真偽値を、上記拡張語の抽象フラグ1203に入力し、ステップS1604に処理を進める。なお、拡張重み1202に「1」を設定したのは上記"着目中の用語"がまだ上位語拡張前であるためである。
【0103】
次にステップS1604では、CPU201は、"着目中の用語"がシソーラス辞書DB103の最上位(上位語503に情報が無い)かどうかを判定する。
【0104】
そして、ステップS1604で、"着目中の用語"がシソーラスの最上位である(上位語503に情報が無い)と判定した場合には、CPU201は、本フローチャートの処理を終了させる。
【0105】
一方、ステップS1604で、"着目中の用語"がシソーラスの最上位でない(上位語503に情報が有る)と判定した場合には、CPU201は、ステップS1605に処理を進める。
【0106】
ステップS1605では、CPU201(シソーラス辞書検索終点決定手段1011)は、"着目中の用語"がストップマークの付いた用語(ストップマーク507の「TRUE」)かどうかを判定する。
【0107】
そして、ステップS1605で、"着目中の用語"がストップマークの付いた用語である(ストップマーク507の「TRUE」)と判定した場合には、CPU201(シソーラス辞書検索終点決定手段1011)は、本フローチャートの処理を終了させる。
【0108】
一方、ステップS1605で、"着目中の用語"がストップマークの付いた用語でない(ストップマーク507の「FALSE」)と判定した場合には、CPU201(シソーラス辞書検索終点決定手段1011)は、ステップS1606に処理を進める。
【0109】
ステップS1606では、CPU201は、シソーラス辞書DB103より"着目中の用語"の上位語503を取得し、上記拡張リスト1106の先頭要素に設定する。さらに、CPU201は、上記取得した上位語を新たな"着目中の用語"に設定する("着目中の用語"としてRAM203内に記憶させる)。図3を用いて説明すると、"着目中の用語"が「Java1.3」であった場合に、上位語として「Java」を取得し、新たな"着目中の用語"に「Java」を設定する。そして、CPU201は、ステップS1607に処理を進める。
【0110】
次に、ステップS1603では、CPU201(シソーラス辞書検索ヒット用語有用度算出手段1013)は、上記拡張語の拡張重み1202に累積の重み(後述)を設定する。さらに、CPU201は、上記拡張語の抽象フラグ1203にシソーラス辞書DB103内に設定されている"着目中の用語"の真偽値を設定し、ステップS1604に処理を戻す。
【0111】
なお、ここでいう"累積の重み"とは、シソーラス辞書DB103に設定されている上記拡張リスト1106で上記新たな"着目中の用語"の次要素と上記新たな"着目中の用語"との間の単語間の重み(類似度602)と上記次要素の累積の重みとを掛け合わせたものであり、拡張された検索用語の有用度を示すものである。図4を用いて説明すると、例えば、上記新たな"着目中の用語"が「オブジェクト指向言語」の場合、拡張リストで次要素となる「Java」と「オブジェクト指向言語」との間の単語間の重み(ここでは「0.7」)と、上記拡張リストで次要素となる「Java」の累積の重み(ここでは「0.8(=0.8×1.0)」)を掛け合わせた「0.56」が上記"累積の重み"として算出される。
【0112】
以下、図17のフローチャートを参照して図14のステップS1406に示した下位語検索処理(上位語拡張フローにて代表語を上位語へ拡張した結果を対象に下位語への拡張を行う処理)について説明する。
【0113】
図17は、本発明における第5の制御処理手順の一例を示すフローチャートであり、図14のステップS1406に示した下位語検索処理に対応する。なお、このフローチャートの処理は、図2に示したCPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現されるシソーラス辞書検索手段101の機能に対応する。
【0114】
まず、ステップS1701では、CPU201は、代表語の拡張結果であるキーワードを条件見出し1105としたスキル条件内の拡張リスト1106(図14のステップS1405(図16)で上位検索処理で追加された拡張リスト)内の全ての拡張語に対して(下位語未検索拡張語がなくなるまで)、ステップS1702〜S1709の処理を繰り返す。
【0115】
ステップS1702では、CPU201は、上記拡張リスト1106から拡張語を一つ選択する。
【0116】
次に、ステップS1703では、CPU201は、ステップS1702で選択した拡張語に下位語情報があるかどうか判定する。この判定は、上記拡張語に基づいてシソーラス辞書DB103を検索して、当該拡張語の下位語リスト504(図5)を取得し、該拡張リスト504に下位語情報があるかどうかで判定する。
【0117】
そして、ステップS1703において、拡張語に下位語情報があると判定した場合には、CPU201は、ステップS1704に処理を進める。
【0118】
ステップS1704では、CPU201は、ステップS1702で選択した拡張語の下位語リスト504内の全ての下位語に対して(未処理の下位語がなくなるまで)、ステップS1705〜S1709の処理を繰り返す。
【0119】
ステップS1705では、CPU201(シソーラス辞書検索ヒット用語有用度算出手段1013)は、ステップS1702で選択した拡張語の下位語リスト504より下位語を一つ選択し、ステップS1702で選択した拡張語と上記下位語間の"累積の重み"を算出する。この"累積の重み"は、拡張語の累積の重み(図12の拡張重み1202)と、下位語の単語間の重み(図6の類似度602)の積で算出される。
【0120】
次に、ステップS1706では、CPU201は、ステップS1705で選択した下位語が拡張リスト1106内に存在するか否かを判定する。
【0121】
そして、ステップS1706において、ステップS1705で選択した下位語が拡張リスト1106内に存在しないと判定した場合には、CPU201はステップS1709の処理を行うように制御する。
【0122】
ステップS1709では、CPU201は、ステップS1705で選択した下位語を拡張リスト1106の最後に追加する。詳細には、CPU201は、拡張リスト1106の最後に拡張語を追加し、追加した拡張語の拡張見出し1201に上記下位語の相手見出し601、拡張重み1202(拡張された検索用語の有用度)にステップS1705で算出した"累積の重み"、抽象フラグ1203にシソーラス辞書DB103内に設定されている上記下位語の真偽値を格納し、ステップS1704に処理を戻す。
【0123】
一方、ステップS1706において、ステップS1705で選択した下位語が拡張リスト1106内に存在すると判定した場合には、CPU201はステップS1707,S1708の処理を行うように制御する。
【0124】
ステップS1707では、CPU201(シソーラス辞書検索ヒット用語有用度算出手段1013)は、既に拡張リスト1106内にある上記下位語の"累積の重み"(拡張重み1202)とステップS1705で算出した"累積の重み"を比較する。
【0125】
そして、ステップS1707において、CPU201は、ステップS1705で算出した"累積の重み"の方が大きい場合(キーワードにより近い場合)は、ステップS1708へ処理を進める。
【0126】
ステップS1708では、CPU201は、既に拡張リスト1106内にある上記下位語の"累積の重み"(拡張重み1202)をステップS1705で算出した"累積の重み"に書き換え、ステップS1704に処理を戻す。
【0127】
一方、ステップS1707において、CPU201は、ステップS1705で算出した"累積の重み"の方が大きくない場合(キーワードにより遠い場合)には、そのままステップS1704に処理を戻す。本実施形態では同一の下位語が複数存在した場合、よりキーワードに近い"累積の重み"(より大きい有用度)を残すようにしている。
【0128】
そして、ステップS1704において、CPU201は、ステップS1702で選択した拡張語の下位語リスト504内の全ての下位語に対して(未処理の下位語がなくなるまで)、ステップS1705〜S1709の処理を実行したと判定した場合には、ステップS1701に処理を戻す。
【0129】
そして、ステップS1701において、CPU201は、代表語の拡張結果であるキーワードの拡張リスト1106内の全ての拡張語に対して(下位語未検索拡張語がなくなるまで)、ステップS1702〜S1708の処理を実行したと判定した場合には、本フローチャートの処理を終了する。
【0130】
以下、図18のフローチャートを参照して図14のステップS1407に示した関連語検索処理(同義語拡張において統制表示した代表語から関連語への拡張処理)について説明する。
【0131】
図18は、本発明における第6の制御処理手順の一例を示すフローチャートであり、図14のステップS1407に示した関連語検索処理に対応する。なお、このフローチャートの処理は、図2に示したCPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現されるシソーラス辞書検索手段101の機能に対応する。
【0132】
まず、ステップS1801では、CPU201は、図14のステップS1404で代表語へ統制されたキーワード(以下、キーワード)に対応するシソーラス辞書DB103内の単語の関連語リスト505(図5)を参照し、関連語リスト505に関連語が一つでも存在するか否かを判定する。例えば、図4のシソーラス図を参考にすると、代表語が「Java」である場合、関連語は「JSP」、「Servlet」、「Swing」となる。
【0133】
そして、ステップS1801において、キーワードの関連語リスト505に関連語が一つの存在しないと判定した場合には、CPU201は、本フローチャートの処理を終了させる。
【0134】
一方、ステップS1801において、キーワードの関連語リスト505に関連語が一つでも存在すると判定した場合には、CPU201は、ステップS1802に処理を進める。
【0135】
ステップS1802では、CPU201は、上記キーワードが持つ関連語リスト505全てに対してステップS1803〜S1806の処理を行う。
【0136】
ステップS1803では、CPU201は、上記キーワードが持つ関連語リスト505より関連後を一つ選択し、該選択した関連語が上記キーワードが持つ拡張リスト1106内に存在するか否かを判定する。
【0137】
そして、ステップS1803において、上記関連語が上記拡張リスト1106内に存在すると判定した場合には、CPU201はステップS1804の処理を行うように制御する。
【0138】
ステップS1804では、CPU201(シソーラス辞書検索ヒット用語有用度算出手段1013)は、上記関連語の"累積の重み"(拡張された検索用語の有用度)を算出する。なお、上記関連語の"累積の重み"は、上記キーワードの"累積の重み"に、上記キーワードと上記関連語との間の重みを掛け合わせて算出する。そして、上記関連語の"累積の重み"と、既に拡張リスト1106内に存在する関連語の"累積の重み"(即ち拡張重み1202)を比較し、より数値の大きい(より代表語と言葉の意味が近い)方を既に拡張リスト1106内に存在する関連語の拡張重み1202(拡張された検索用語の有用度)に登録し、ステップS1802に処理を戻す。
【0139】
一方、ステップS1803において、上記関連語が上記拡張リスト1106内に存在しないと判定した場合には、CPU201はステップS1805の処理を行うように制御する。
【0140】
ステップS1805では、CPU201は、上記関連語を上記拡張リスト1106の最後に追加する。詳細には、CPU201は、拡張リスト1106の最後に拡張語を追加し、追加した拡張語の拡張見出し1201に上記関連語の相手見出し601、抽象フラグ1203に上記関連語のシソーラス辞書DB103内での抽象フラグ506の真偽値を登録する。
【0141】
次に、ステップS1806において、CPU201(シソーラス辞書検索ヒット用語有用度算出手段1013)は、上記関連語の"累積の重み"(拡張された検索用語の有用度)を算出する。なお、上記関連語の"累積の重み"は、上記キーワードの"累積の重み"に、上記キーワードと上記関連語との間の重みを掛け合わせて算出する。そして、CPU201は、上記算出した上記関連語の"累積の重み"を上記追加した拡張語の拡張重み1202に登録し、ステップS1802に処理を戻す。
【0142】
そして、ステップS1802において、上記キーワードが持つ関連語リスト505全てに対してステップS1803〜S1806の処理を実行したと判定した場合には、本フローチャートの処理を終了する。
【0143】
以下、図19〜図22を参照して図14〜図18に詳細に説明した検索語拡張処理結果について例示する。
【0144】
図19は、図13に示した検索条件リスト1000の例の条1における検索後の拡張処理結果の一例を示す図である。
【0145】
ここでの例示は、検索条件の条件見出し1105が「Oracle」、必須フラグ1107が「TRUE」の場合の拡張処理結果に対応する。
【0146】
この場合、必須フラグ1107が「TRUE」のため、上位語には拡張されない。また、図3に示されるようにシソーラス辞書DB103には「Oracle」の下位語が登録されていないため実質的に下位語への拡張もされない。しかし、図3に示されるようにシソーラス辞書DB103には「Oracle」の関連語として「SQL」が登録されているため、拡張リスト1106に関連語「SQL」が登録されている。
【0147】
図20は、図13に示した検索条件リスト1000の例の条2における検索後の拡張処理結果の一例を示す図である。
【0148】
ここでの例示は、検索条件の条件見出し1105が「Java1.3」、必須フラグ1107が「FALSE」の場合の拡張処理結果に対応する。
【0149】
この場合、必須フラグ1107が「FALSE」のため、まず「Java1.3」は上位語として「Java」,「オブジェクト指向言語」が順次拡張リスト1106の先頭に登録される。次に、下位語として「Java1.4」,「C++」,「SmallTalk」が順次拡張リスト1106の最後に登録される。なお、図3に示されるようにシソーラス辞書DB103には「Java1.3」の関連語が登録されていないため関連語への拡張はされない。
【0150】
図21は、図20に示した拡張リスト内の拡張語「Java1.3」を例示する図である。
【0151】
図22は、図20に示した拡張リスト内の拡張語「Java」を例示する図である。
【0152】
以下、図23のフローチャートを参照して図8のステップS803に示した人材プロファイルDB検索処理(検索条件として入力され拡張されたキーワードに該当する人材を人材DB104から検索する処理)について説明する。
【0153】
図23は、本発明における第7の制御処理手順の一例を示すフローチャートであり、図8のステップS803に示した人材プロファイルDB検索処理に対応する。なお、このフローチャートの処理は、図2に示したCPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現される人材検索手段102の機能に対応する。
【0154】
まず、ステップS2301では、CPU201は、初期化した検索式(即ち、検索条件無し)をRAM203内に記憶させ、ステップS2301に処理を進める。
【0155】
次に、ステップS2302では、CPU201は、検索条件リスト1000の検索条件全てに対して、人材DB104を検索する為の検索式を作成する処理(ステップS2303〜S2307)を実行する。
【0156】
まず、ステップS2303では、CPU201は、検索条件リスト1000からまだ検索式を作成していない検索条件を一つを選択する。
【0157】
ステップS2304では、CPU201は、ステップS2303で選択した検索条件の検索要素間複数(即ち、拡張リスト1106内の拡張語)全てをORで繋げて"条件式"を作成する。
【0158】
次に、ステップS2305では、CPU201は、ステップS2303で選択した検索条件が必須条件か否かを判定する。
【0159】
そしてステップS2305において、ステップS2303で選択した検索条件が必須条件であると判定した場合には、CPU201は、ステップS2306へ処理を進める。
【0160】
ステップS2306では、CPU201は、検索式を作成(更新)する。詳細には、必須条件の検索式を作成する場合、CPU201は、RAM203に記憶される検索式に対して、ステップS2304で作成した条件式を「AND」で繋げ、検索式を作成(更新)する。例えば「"検索式" = "検索式" AND "条件式"」のように作成する。そして、CPU201はステップS2302に処理を戻す。
【0161】
一方、ステップS2305において、ステップS2303で選択した検索条件が必須条件でないと判定した場合には、CPU201は、ステップS2307へ処理を進める。
【0162】
ステップS2307では、CPU201は、検索式を作成(更新)する。詳細には、非必須条件の検索式を作成する場合、CPU201は、RAM203に記憶される検索式に対して、ステップS2304で作成した条件式を「OR」で繋げ、検索式を作成(更新)する。例えば「"検索式" = "検索式" OR "条件式"」のように作成する。そして、CPU201はステップS2302に処理を戻す。
【0163】
そして、ステップS2302において、全ての検索条件からDB検索の為の検索式を作成し終えたと判定した場合には、CPU201は、ステップS2308へ処理を進める。
【0164】
ステップS2308では、CPU201は、ステップS2306またはステップS2307で作成した検索式を用いて、人材DB104(例えば、後述する図24)を検索する。
【0165】
ステップS2309では、CPU201は、ステップS2308で行った検索結果を一覧(例えば、後述する図25)として作成し、本フローチャートの処理を終了する。
【0166】
図24は、図1に示した人材DB104の一例を示す図である。
【0167】
図25は、図23のステップS2309で作成される人材検索結果の一覧の一例を示す図である。
【0168】
図25において、2501は検索された人材を示す。2503は、検索に用いられた各スキル条件(検索条件)を示す。
【0169】
2502はトータルポイントを示す。
【0170】
図25では全てのスコアリングが終了した人材検索結果が示されているが、図23に示した人材プロファイルDB検索処理が終了した時点では、トータルポイント2502は、未だ算出されていない。このトータルポイント2502は、以下に示す人材のスコアリング処理により算出される。
【0171】
以下、図26のフローチャートを参照して図8のステップS804に示した検索された人材のスコアリング処理について説明する。
【0172】
図26は、本発明における第8の制御処理手順の一例を示すフローチャートであり、図8のステップS804に示した検索された人材のスコアリング処理(人材スキルプロファイルDB検索処理の検索結果に対して各人材が持つスキルのスコアリングを行う処理)に対応する。なお、このフローチャートの処理は、図2に示したCPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現される人材検索スコア算出手段1021の機能に対応する。
【0173】
まず、ステップS2601では、CPU201は、図23に示した人材スキルプロファイルDB検索処理の検索結果一覧(例えば図25)に含まれる全ての人材に対してスコアリング処理(ステップS2602〜S2606)を行う。
【0174】
まず、ステップS2602では、CPU201は、図23に示した人材スキルプロファイルDB検索処理の検索結果から1人材を選択して着目中の人材に設定し、RAM203に記憶される着目中の人材のスコアとなる値(トータルスコア)を0で初期化する。
【0175】
次に、ステップS2603では、CPU201は、着目中の人材が持つスキル全てに対してスコアリング(ステップS2604〜S2606)を行う。
【0176】
まず、ステップS2604では、CPU201は、着目中の人材が持つスキルから1スキルを選択し、着目中のスキルに設定し、着目中のスキルの経験時間と着目中のスキルの拡張重み(検索条件内に保持されている着目中のスキルに対応する拡張語の拡張重み(有用度)1202(図25ではスキル条件2503内のスコアに相当))を掛け合わせることで経験時間を再算出する。
【0177】
次に、ステップS2605では、CPU201は、上記選択したスキルに対して、ステップS2604で再算出した経験時間を利用して経験値の減衰処理を行って想定経験月数を求める。なお、減衰処理の詳細は図27を用いて後述する。
【0178】
次に、ステップS2606では、CPU201は、ステップS2605で減衰処理を行ったスキルに対するスコアを以下の式(1)を用いて算出し、ステップS2602で初期化したトータルスコアに加算し、ステップS2603に処理を戻す。
【0179】

【0180】
※式(1)は、便宜上100点満点とする。
※absは絶対値を表す。
【0181】
ステップS2603において、着目中の人材が持つスキル全てに対してスコアリングが終了したと判定した場合には、CPU201は、ステップS2607へ処理を進める。
【0182】
ステップS2607では、CPU201は、着目中の人材の全スキルからボーナスポイント付加処理を実行する。なお、ボーナスポイント付加処理は図29を用いて後述する。
【0183】
次に、ステップS2608では、CPU201は、ステップS2607で算出されたボーナスポイントをトータルスコアに加算して、着目中の人材のトータルポイント2501(図25)としてRAM203内に保存し、ステップS2601に処理を戻す。
【0184】
ステップS2601において、CPU201が、図23に示した人材スキルプロファイルDB検索処理の検索結果一覧に含まれる全ての人材に対してスコアリング処理(ステップS2602〜S2606)を終了したと判定した場合には、本フローチャートの処理を終了する。
【0185】
以下、図27のフローチャートを参照して図26のステップS2605に示した減衰処理について説明する。
【0186】
図27は、本発明における第9の制御処理手順の一例を示すフローチャートであり、図26のステップS2605に示した減衰処理に対応する。なお、このフローチャートの処理は、図2に示したCPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現される人材検索スコア算出手段1021の機能に対応する。
【0187】
まず、ステップS2701では、CPU201は、経験値の減衰を算出する対象の人材(以下、着目中の人材)が所持するスキルのうち経験値の減衰を算出する対象のスキル(以下、着目中のスキル)が確定した時(日付)を表すレイティング日(即ち、図24に示す終了年月日2401)を人材DB104より取得する。そして、取得したレイティング日(終了年月日2401)と各スキルの減衰した経験値を算出する日付を表す変換日(システム管理者もしくは利用者により予め入力されてRAM203に記憶されている)を用いて以下の式(2)よりブランク月数(即ち、検索された人材のスキルが確定した時点からの経過期間)を算出し、ステップS2702に処理を進める。
【0188】
「ブランク月数=(変換日の年−レイティング日の年)×12+変換日の月−レイティング日の月」・・・(2)
次に、ステップS2702では、CPU201は、システム管理者もしくは利用者により予め設定されてHDD204に記憶されている着目中のスキルの減衰開始期間(図28の2801)と減衰終了期間(図28の2802)を取得する。そして、CPU201は、取得した減衰開始期間と減衰終了期間から減衰期間(図28の2803)を以下の式(3)より算出し、ステップS2703に処理を進める。
【0189】
「減衰期間=減衰終了期間−減衰開始期間」・・・(3)
図28は、ブランク月数による減衰率を説明するための図である。
【0190】
次に、ステップS2703では、CPU201は、ステップS2501で算出されたブランク月数と着目中のスキルの減衰開始期間を比較する。そして、比較した結果、ブランク月数が減衰開始期間より小さかったと判定した場合には、CPU201は、ステップS2706に処理を進める。
【0191】
ステップS2706では、CPU201は、ブランク月数が減衰開始期間より短い、つまり減衰が始まっていないので、着目中のスキルの減衰率に「1」(減衰無し)を設定し、ステップS2510に処理を進める。
【0192】
一方、ステップS2703において、ブランク月数が減衰開始期間以上であったと判定した場合には、CPU201は、ステップS2704に処理を進める。
【0193】
ステップS2704では、CPU201は、ステップS2701で算出されたブランク月数と着目中のスキルの減衰終了期間を比較する。そして、比較した結果、ブランク月数が減衰終了期間より大きいと判定した場合には、CPU201は、ステップS2707に処理を進める。
【0194】
ステップS2707では、CPU201は、ブランク月数が減衰終了期間を経過しているため、減衰率に着目中のスキルの最大減衰率(図28の2804;システム管理者もしくは利用者により予め設定されHDD204に記憶されている)を設定し、ステップS2510に処理を進める。
【0195】
一方、ステップS2704において、ブランク月数が減衰終了期間以下と判定した場合には、CPU201は、ステップS2705に処理を進める。
【0196】
ステップS2705では、CPU201は、着目中のスキルの減衰開始期間と減衰終了期間を比較する。そして、比較した結果、減衰開始期間と減衰終了期間が等しい(即ち、減衰期間が「0」)と判定した場合には、CPU201は、ステップS2707に処理を進める。
【0197】
一方、ステップS2704において、減衰開始期間と減衰終了期間が等しくない(即ち、減衰期間が「0」でない)と判定した場合には、CPU201は、ステップS2708に処理を進める。
【0198】
ステップS2708では、CPU201は、ステップS2702で算出した減衰開間と最大減衰率から減衰傾きを以下の式(4)より算出し、ブランク月数と着目中のスキルの減衰開始期間から減衰ブランク月数(図28の2805)を以下の式(5)より算出し、ステップS2709に処理を進める。
【0199】
「減衰傾き=(1−最大減衰率)/減衰期間」・・・(4)
「減衰ブランク月数=ブランク月数−減衰開始期間」・・・(5)
ステップS2709では、ステップS2708で算出した減衰傾きと減衰ブランク月数から減衰率を以下の式(6)より算出し、ステップS2510に処理を進める。
【0200】
「減衰率=1−減衰傾き×減衰ブランク月数」・・・(6)
ステップS2710では、CPU201は、着目中のスキルの経験月数(図26のステップS2604で算出した経験時間)と着目中のスキルの最大経験月数(システム管理者もしくは利用者により予め設定されHDD204に記憶されている)を比較する。
【0201】
そして、ステップS2710において、着目中のスキルの経験月数が最大経験月数以下と判定した場合には、CPU201は、ステップS2711に処理を進める。
【0202】
ステップS2511では、CPU201は、着目中のスキルの経験月数を最大経験月数に置き換え、ステップS2512に処理を進める。
【0203】
一方、ステップS2710において、着目中のスキルの経験月数が最大経験月数より大きいと判定した場合には、CPU201は、そのままステップS2712に処理を進める。
【0204】
ステップS2512では、CPU201は、算出した着目中のスキルの減衰率と経験月数から以下の式(7)により想定経験月数を計算し、経験値減衰フローの処理を終了する。
【0205】
「想定経験月数=減衰率×経験月数」・・・(6)
以下、図29のフローチャートを参照して図26のステップS2607に示したボーナスポイント処理(人材スキルプロファイルDB検索処理結果である人材検索結果に対してボーナスポイントを付加する処理)について説明する。
【0206】
図29は、本発明における第10の制御処理手順の一例を示すフローチャートであり、図26のステップS2607に示したボーナスポイント処理に対応する。なお、このフローチャートの処理は、図2に示したCPU201がHDD204に格納されるプログラムをRAM203にロードして実行することにより実現される人材検索スコア算出手段1021の機能に対応する。
【0207】
まず、ステップS2901では、CPU201は、人材スキルプロファイルDB検索処理結果である人材検索結果(図25)にある全ての人材に対して、ボーナスポイントの算出(ステップS2902〜S2907の処理)を行う。
【0208】
ステップS2902では、CPU201は、人材検索結果から1人材を選択して着目中の人材に設定し、着目中の人材が持つ「スキル」と「検索条件の条件見出し1105」が完全に一致した数(以下、カウント数)と、着目中の人材が持つ「スキル」と「検索条件の同義語」いずれかが一致した数(以下、Pチェックカウント数)をカウントする。
【0209】
例えば、Aさんは「Java1.3」、「C言語」、「SQL」のスキルを保持し、Bさんは「C++」、「Windows(登録商標(以下省略)) XP」のスキルを保持しているとする。なお、「C++」は「C言語」の同義語とする。
【0210】
この時、検索条件を「Java1.3」、「C言語」とした場合、Aさんの代表語カウント数は「2」、拡張語カウント数は「2」となり、Bさんの代表語カウント数は「0」、拡張語カウント数は「1」となる。
【0211】
次に、ステップS2903では、CPU201は、RAM203に記憶される着目中の人材のボーナスポイントを0で初期化する。
【0212】
次にステップS2904では、CPU201は、上記カウント数による判定を行う。上記カウント数が「0」又は「1」でないと判定した場合には、CPU201は、ステップS2905に処理を進める。
【0213】
ステップS2905では、CPU201は、上記カウンタ数と基準点(システム管理者もしくは利用者により予め設定されHDD204に記憶されている)から人材に対するボーナスポイントを式「(カウント数−1)×基準点=ボーナスポイント」により算出し、ステップS2906に処理を進める。
【0214】
図30は、検索条件とのマッチング数によるボーナスポイントを説明する図であり、検索条件数を10個とした例に対応する。
【0215】
図30の3001に示すように、カウント数(マッチング数)に応じてボーナスポイントが与えられる。
【0216】
即ち、人材検索スコア算出手段1021は、検索された人材が有する、検索用語のいずれかに完全一致するスキルの個数に応じたボーナスポイントを、該検索された人材データのトータルスコアに対して加算する。
【0217】
以下、図29のフローチャートの説明に戻る。
【0218】
一方、ステップS2904において、上記カウント数が「0」又は「1」と判定した場合には、CPU201は、そのままステップS2906へ処理を進める。
【0219】
次にステップS2906では、CPU201は、上記Pカウント数による判定を行う。上記Pカウント数が検索件数と一致すると判定した場合には、CPU201は、ステップS2907に処理を進める。
【0220】
ステップS2907では、CPU201は、図30に示すように、ステップS2905で算出したボーナスポイント3001にパーフェクトボーナスポイント3002(システム管理者もしくは利用者により予め設定されHDD204に記憶されている)を付加してボーナスポイント(最終結果値)を算出する。即ち、「ボーナスポイント+パーフェクトボーナスポイント=ボーナスポイント(最終結果値)」を計算する。
【0221】
例えば、先に例示したAさんBさんを用いて説明すると、検索条件は「Java1.3」、「C言語」であるので、検索条件数は「2」となる。そして、AさんはPカウント数が「2」である為、パーフェクトボーナスポイントが付加される。BさんはPカウント数が「1」である為、パーフェクトボーナスポイントは付加されない。
【0222】
即ち、人材検索スコア算出手段1021は、検索された人材データの有するスキルが、検索用語及び前記検索用語から拡張された拡張語の全てに一致する場合に、該人材のトータルスコアに対して、パーフェクトボーナスポイントを加算する。
【0223】
そして、ステップS2907の処理が終了すると、CPU201は、ステップS2901に処理を戻す。
【0224】
一方、ステップS2906において、上記Pカウント数が検索件数と一致すると判定した場合には、CPU201は、そのままステップS2901に処理を戻す。
【0225】
そして、ステップS2901において、人材検索結果にある全ての人材に対して、ボーナスポイントの算出(ステップS2902〜S2907の処理)を終えたと判定した場合には、CPU201は、本フローチャートの処理を終了する。
【0226】
以下のスキル条件と図24の人材DB104にある「山田太郎」の場合について、スコアリングの流れを具体的に説明する。
【0227】
検索スキル条件(変換日:2007年4月)を、スキル条件1(スキル「Java1.4」、工程「実装」、役割「TM」経験時間「54」ヶ月)、スキル条件2(スキル「RDB」、工程「実装」、役割「TM」経験時間「24」ヶ月)、スキル条件3(スキル「UML2.0」、工程「設計」、役割「TM」経験時間「24」ヶ月)とする。
【0228】
なお、検索スキル条件1の「Java1.4」は、「Java1.3」等に拡張され、該拡張語「Java1.3」の拡張重みは「0.8」とする。また、検索スキル条件2の「RDB」は、「Oracle10.g」等に拡張され、該拡張語「Java1.3」の拡張重みは「1」とする。さらに、検索スキル条件3の「UML2.0」は、「UML1.5」と「UML2.0」等に拡張され、該拡張語「UML1.5」と「UML2.0」の拡張重みはそれぞれ「0.9」とする。なお、いずれの拡張重みについても、構築されたシステムのシソーラス辞書によって異なる場合もあり、また、適宜拡張重みの見直しも可能である。
【0229】
図24の人材DB104より、人材「山田太郎」の場合、「Java1.3」は「60」ヶ月、「Oracle10.g」は「24」ヶ月、「UML1.5」は「32」ヶ月の経験時間を保有している。
【0230】
各検索条件の拡張重みと経験時間の積を取り、経験時間を再算出すると、人材「山田太郎」の場合、「Java1.3」は「48」ヶ月、「Oracle10.g」は「24」ヶ月、「UML1.5」は「28.8」ヶ月の経験時間となる。
【0231】
なお、「山田太郎」のスキル「Java1.3」、「Oracle10.g」、「UML1.5」は、終了年月が「2007/04」とあるので、ブランク月数が「0」となり、減衰処理での経験値減衰は発生しない。
【0232】
上記再算出した経験時間から式(1)を用いて、各スキルのスコアを算出すると、「Java1.3」は「88」、「Oracle10.g」は「100」、「UML1.5」は「80」となる。
【0233】
よって、山田太郎さんの保有スキルのみによるトータルスコアは「268」となる。
【0234】
なお、「山田太郎」は検索条件「Java」,「RDB」,「UML」に一致した数(カウント数)が「0」であるため、ボーナスポイントは加算されない。
【0235】
しかし、山田太郎さんは検索条件の同義語にの全てにマッチしている為、トータルスコアにパーフェクトボーナスポイント(ここでは「150」とする)が加算される。このパーフェクトボーナスポイントについては、構築されたシステムによって変更することができ、また、適宜ボーナスポイントの見直しも可能である。
【0236】
以上から、山田太郎さんのトータルスコア(最終結果値)は、トータルスコア「268」+パーフェクトボーナスポイント「150」=「418」となる。
【0237】
以上、説明したように、本実施形態の人材検索装置は、シソーラス(上位・下位語、類義語、関連語)を柔軟に利用し、検索語の拡張を行って検索を行うものであり、シソーラスの上位語で、極めて汎用的な用語まで拡張した場合に、それ以上上位の検索を行わない事を表す「ストップマーク」と、シソーラスで極めて抽象的な用語の為、検索語として対象外であることを示す「抽象フラグ」を利用し、用語の意味を考慮した検索語の拡張を行うものである。
【0238】
そして、上記ストップマークや抽象フラグを用いることにより、閾値や回数で単純に用語を拡張させるのではなく、用語の意味を考慮した用語の絞込みを行うことができ、より条件に合った人材の検索を行うことができる。
【0239】
なお、上記実施形態では、本発明による検索装置を人材検索に用いることを想定した場合を例にあげて説明を行ったが、本発明は、人材検索装置に限られるものではなく、人材DB以外の一般のデータベースを検索する検索装置にも適用可能である。
【0240】
このように、本発明を一般的なデータベースの検索に用いる場合、データベースの構成によっては、人材DB104の経験時間2402(即ち、人材のスキル毎の経験値)に相当するような数値データが検索結果に含まれていない場合がある。このような場合、上記経験時間2402に相当する数値データを全てデフォルトの数値(例えば「1」)として、図26〜図30に示したスコアリング処理を実行するように構成する。
【0241】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0242】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0243】
以上示したように、本発明の検索装置は、シソーラス(上位語、下位語、関連語等の類義語)を柔軟に利用し、検索語の拡張を行うシステムであって、シソーラスの上位語で、極めて汎用的な用語まで拡張した場合にそれ以上上位の検索を行わない事を表す「ストップマーク」と、シソーラスで極めて抽象的な用語の為に検索語として対象外であることを示す「抽象フラグ」を利用し、用語の意味を考慮した検索語の拡張を行うことにより、シソーラス辞書を用いた検索において、極めて汎用的な上位用語への検索用語の拡張や、抽象的な用語への検索用語の拡張を抑制して、用語の意味を考慮した検索用語の拡張を行うことができ、より条件に合った検索を行うことができる等の効果を奏する。
【0244】
よって、従来のように、類義語を検索するにあたって類似度の閾値や回数でその検索範囲を指定する方法とは異なり、拡張する検索用語によって、非常に関連性の高いものしか拡張されない、或いは、あまり関連性のない単語まで拡張してしまうという差がでてしまうといった事態や、検索対象として意味のない類義語にまで検索用語を拡張してしまうといった事態の発生を抑えて、適切な条件で検索を行うことができる。
【0245】
以下、図31に示すメモリマップを参照して本発明に係る人材検索装置100で読み取り可能なデータ処理プログラムの構成について説明する。
【0246】
図31は、本発明に係る人材検索装置100で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【0247】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0248】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0249】
本実施形態における図8,図14,図15,図16,図17,図18,図23,図26,図27,図29に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0250】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0251】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0252】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0253】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0254】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0255】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0256】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0257】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【産業上の利用可能性】
【0258】
人材DB104の代わりに他のDBを設け、該DBの検索条件を、検索条件として入力することにより、人材以外の検索用途にも適用できる。
【図面の簡単な説明】
【0259】
【図1】本発明に係る検索装置を適用可能なシステムの構成の一例を示すシステム構成図である。
【図2】図1に示した人材検索装置100のハードウェア構成の一例を示すブロック図である。
【図3】図1に示したシソーラス辞書DB103の一例を模式的に示した模式図である。
【図4】図3に示したシソーラス辞書DB103に登録された各単語に付された重みの一例を模式的に示した模式図である。
【図5】図3,図4に示したシソーラス辞書DB103登録された各単語のデータ構成の一例を示すデータ構成図である。
【図6】図5に示した上位語情報、下位語情報(1〜jの個々のもの)、関連語情報(1〜kの個々のもの)の詳細構造を示すデータ構成図である。
【図7】シソーラス辞書DB103内の単語の一例を示す図である。
【図8】本発明における第1の制御処理手順の一例を示すフローチャートである。
【図9】本実施形態における検索条件入力画面900の一例を示す図である。
【図10】人材検索装置100で保持される検索条件のデータ構成の一例を示すデータ構成図である。
【図11】図10に示した検索条件リスト1000内の各検索条件のデータ構成の一例を示すデータ構成図である。
【図12】図11に示した拡張リスト1106内の各拡張語のデータ構成の一例を示すデータ構成図である。
【図13】図10に示した検索条件リストの一例を示す図である。
【図14】本発明における第2の制御処理手順の一例を示すフローチャートである。
【図15】本発明における第3の制御処理手順の一例を示すフローチャートである。
【図16】本発明における第4の制御処理手順の一例を示すフローチャートである。
【図17】本発明における第5の制御処理手順の一例を示すフローチャートである。
【図18】本発明における第6の制御処理手順の一例を示すフローチャートである。
【図19】図13に示した検索条件リスト1000の例の条1における検索後の拡張処理結果の一例を示す図である。
【図20】図13に示した検索条件リスト1000の例の条2における検索後の拡張処理結果の一例を示す図である。
【図21】図20に示した拡張リスト内の拡張語「Java1.3」を例示する図である。
【図22】図20に示した拡張リスト内の拡張語「Java」を例示する図である。
【図23】本発明における第7の制御処理手順の一例を示すフローチャートである。
【図24】図1に示した人材DB104の一例を示す図である。
【図25】図23のステップS2309で作成される人材検索結果の一覧の一例を示す図である。
【図26】本発明における第8の制御処理手順の一例を示すフローチャートである。
【図27】本発明における第9の制御処理手順の一例を示すフローチャートである。
【図28】ブランク月数による減衰率を説明するための図である。
【図29】本発明における第10の制御処理手順の一例を示すフローチャートである。
【図30】検索条件とのマッチング数によるボーナスポイントを説明する図である。
【図31】本発明に係る人材検索装置100で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
【0260】
100 人材検索装置
101 シソーラス辞書検索手段
1011 シソーラス辞書検索終点決定手段
1012 シソーラス辞書抽象用語排除手段
1013 シソーラス辞書検索ヒット用語有用度算出手段
102 人材検索手段
1021 人材検索計検知算出手段
103 シソーラス辞書DB
104 人材DB
105 クライアント通信手段
201 中央処理装置(CPU)
202 ROM
203 RAM
204 HDD
205 ネットワークインタフェース

【特許請求の範囲】
【請求項1】
シソーラス辞書を用いて検索用語の類義語を検索して検索用語を拡張するシソーラス辞書検索手段と、
前記シソーラス辞書検索手段により拡張された検索用語を用いてデータベースを検索するデータベース検索手段と、を有するものであり、
前記シソーラス辞書は、登録された用語に、汎用的な用語を示すストップマーク、抽象的な用語を示す抽象フラグのいずれか又は双方を設定可能であり、
前記シソーラス辞書検索手段は、前記ストップマークが設定された用語をシソーラス辞書の上位検索の終点とするシソーラス辞書検索終点決定手段と、前記抽象フラグが設定された用語を検索用語の拡張から排除するシソーラス辞書抽象用語排除手段とを有する、ことを特徴とする検索装置。
【請求項2】
前記シソーラス辞書は、登録された用語間の類似度が設定されたものであり、
前記シソーラス辞書検索手段は、前記シソーラス辞書検索により拡張された検索用語の有用度を、前記シソーラス辞書の用語間に設定された類似度から算出するシソーラス辞書検索ヒット用語有用度算出手段を有するものであり、
前記データベース検索手段により検索された各データに対して、前記シソーラス辞書検索ヒット用語有用度算出手段によって算出された検索用語の有用度に基づいたスコアを算出する検索スコア算出手段を有することを特徴とする請求項1に記載の検索装置。
【請求項3】
前記シソーラス辞書検索手段は、前記検索用語が必須条件に設定されている場合、該検索用語の上位語への拡張を行わない、ことを特徴とする請求項1又は2に記載の検索装置。
【請求項4】
前記データベースは、該データベースに登録されているデータが確定した時点を示す情報を含むものであり、
前記検索スコア算出手段は、前記検索手段により前記データベースから検索されたデータが確定した時点からの経過期間に応じて減衰率を算出し、該減衰率に応じて前記算出したスコアを減衰させる、ことを特徴とする請求項2又は3に記載の人材検索装置。
【請求項5】
前記検索スコア算出手段は、前記検索手段により前記データベースから検索されたデータのうち前記検索用語のいずれかに完全一致するデータのスコアに対して所定のポイントを加算する、こと特徴とする請求項2乃至4のいずれか1項に記載の検索装置。
【請求項6】
前記検索スコア算出手段は、前記検索手段により前記データベースから検索されたデータのうち前記検索用語及び前記検索用語から拡張された拡張語の全てに一致するデータのスコアに対して所定のポイントを加算する、ことを特徴とする請求項2乃至5のいずれか1項に記載の検索装置。
【請求項7】
データベースは、人材のスキル毎の経験値と、該人材のスキル毎の経験値が確定した時点を示す情報を登録した人材データベースであり、
前記検索スコア算出手段は、前記データベース検索手段により検索された各人材に対して、該人材のスキル毎の経験値と、前記シソーラス辞書検索ヒット用語有用度算出手段によって算出された検索用語の有用度とに基づいたスコアを算出する、ことを特徴とする請求項2乃至6のいずれか1項に記載の検索装置。
【請求項8】
シソーラス辞書検索手段が、シソーラス辞書を用いて検索用語の類義語を検索して検索用語を拡張するシソーラス辞書検索ステップと、
データベース検索手段が、前記シソーラス辞書検索手段により拡張された検索用語を用いてデータベースを検索するデータベース検索ステップと、を有するものであり、
前記シソーラス辞書は、登録された用語に、汎用的な用語を示すストップマーク、抽象的な用語を示す抽象フラグのいずれか又は双方を設定可能であり、
前記シソーラス辞書検索ステップは、前記ストップマークが設定された用語をシソーラス辞書の上位検索の終点とするシソーラス辞書検索終点決定ステップと、前記抽象フラグが設定された用語を検索用語の拡張から排除するシソーラス辞書抽象用語排除ステップとを有する、ことを特徴とする検索方法。
【請求項9】
コンピュータを、
シソーラス辞書を用いて検索用語の類義語を検索して検索用語を拡張するシソーラス辞書検索手段と、
前記シソーラス辞書検索手段により拡張された検索用語を用いてデータベースを検索するデータベース検索手段として機能させるためのプログラムであり、
前記シソーラス辞書は、登録された用語に、汎用的な用語を示すストップマーク、抽象的な用語を示す抽象フラグのいずれか又は双方を設定可能であり、
前記シソーラス辞書検索手段は、前記ストップマークが設定された用語をシソーラス辞書の上位検索の終点とするシソーラス辞書検索終点決定手段と、前記抽象フラグが設定された用語を検索用語の拡張から排除するシソーラス辞書抽象用語排除手段とを有する、ことを特徴とするプログラム。
【請求項10】
コンピュータを、
シソーラス辞書を用いて検索用語の類義語を検索して検索用語を拡張するシソーラス辞書検索手段と、
前記シソーラス辞書検索手段により拡張された検索用語を用いてデータベースを検索するデータベース検索手段として機能させるためのプログラムであり、
前記シソーラス辞書は、登録された用語に、汎用的な用語を示すストップマーク、抽象的な用語を示す抽象フラグのいずれか又は双方を設定可能であり、
前記シソーラス辞書検索手段は、前記ストップマークが設定された用語をシソーラス辞書の上位検索の終点とするシソーラス辞書検索終点決定手段と、前記抽象フラグが設定された用語を検索用語の拡張から排除するシソーラス辞書抽象用語排除手段とを有するプログラムを、記録したコンピュータで読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate


【公開番号】特開2009−80675(P2009−80675A)
【公開日】平成21年4月16日(2009.4.16)
【国際特許分類】
【出願番号】特願2007−249837(P2007−249837)
【出願日】平成19年9月26日(2007.9.26)
【出願人】(301015956)キヤノンソフトウェア株式会社 (364)
【Fターム(参考)】