【文献】
石川 将吾,マイクロブログにおける投稿パターンを考慮したコミュニケーションスキルの分析,第79回(平成29年)全国大会講演論文集(1) コンピュータシステム ソフトウェア科学・工学 データとウェブ,2017年 3月16日,1-513〜1-514ページ
(58)【調査した分野】(Int.Cl.,DB名)
前記非構造化データは、前記人物のメールデータ、前記人物のスケジュールデータ、前記人物によって生成されたドキュメントデータ、及び前記人物によって入力されたアンケートデータの少なくともいずれかを含む、請求項1から7のいずれか一項に記載の情報処理装置。
【発明を実施するための形態】
【0016】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0017】
図1は、管理システム10の一例を概略的に示す。本実施形態に係る管理システム10は、組織に所属する人物を管理する。ここでは、管理システム10が、会社に所属する社員40を管理する場合を主に例に挙げて説明する。管理システム10は、人物データ管理装置100、学習実行装置200、及びスキル推定装置300を備える。学習実行装置200は、情報処理装置の一例であってよい。スキル推定装置300は、情報処理装置の一例であってよい。
【0018】
人物データ管理装置100は、人物に関連するデータ(人物データと記載する場合がある。)を管理する。本例では、人物データ管理装置100は、社員40に関連するデータ(社員データと記載する場合がある。)を管理する。
【0019】
社員データは、例えば、社員40に関連する構造化データを含む。社員40に関連する構造化データは、例えば、社員40の属性情報を含む。社員40の属性情報の例として、社員40が所属する組織の情報、社員40が担当している業務の情報、社員40が担当している案件の情報、社員40が担当しているシステムの情報、社員40が担当している顧客の情報、及び社員40が保有している資格の情報等が挙げられる。
【0020】
また、社員データは、例えば、社員40に関連する非構造化データを含む。社員40に関連する非構造化データは、例えば、社員40の行動履歴を含む。社員40の行動履歴とは、社員40が行動した結果、生成されるデータであってよい。社員40の行動履歴の例として、社員40のメールデータ、社員40のスケジュールデータ、社員40によって生成されたドキュメントデータ、社員40によって登録されたフリーコメント、社員40によって入力されたアンケートデータ、社員40のPC(Personal Computer)のログ、社員40の電話のログ、社員40が所有するスマートフォン及びタブレット端末等の携帯通信端末400の使用ログ、及び社員40の勤怠データ等が挙げられる。
【0021】
人物データ管理装置100は、例えば、メールシステムから、社員40のメールデータを取得する。人物データ管理装置100は、例えば、スケジュール管理システムから、社員40のスケジュールデータを取得する。人物データ管理装置100は、例えば、ドキュメント管理システムから、社員40によって生成されたドキュメントデータを取得する。人物データ管理装置100は、例えば、社員40に対するアンケートを実施するアンケートシステムから、社員40によって入力されたアンケートデータを取得する。人物データ管理装置100は、例えば、社員40のPCからログを取得する。人物データ管理装置100は、例えば、電話管理システムから、社員40の電話のログを取得する。人物データ管理装置100は、例えば、社員40の携帯通信端末400から使用ログを取得する。人物データ管理装置100は、例えば、勤怠管理システムから社員40の勤怠データを取得する。
【0022】
人物データ管理装置100は、各システム、社員40のPC、及び社員40の携帯通信端末400等と、ネットワーク20を介して通信する。ネットワーク20は、社内ネットワークを含む。ネットワーク20は、WiFi(登録商標)通信システムを含んでよい。ネットワーク20は、3G(3rd Generation)通信システム、LTE(Long Term Evolution)通信システム、4G(4th Generation)通信システム、及び5G(5th Generation)通信システム以降の通信システム等の移動体通信ネットワークを含んでもよい。ネットワーク20は、インターネットを含んでもよい。
【0023】
社員40の行動履歴は、社員40が訪れた場所のログを含んでもよい。人物データ管理装置100は、例えば、社員40の携帯通信端末400から、社員40が訪れた場所のログを取得する。また、人物データ管理装置100は、例えば、社内の各所に設置されているIoT(Internet of Thing)デバイスから、社員40が訪れた場所のログを取得する。例えば、社内の各部署に設置されているIoTデバイスが、社員40の携帯通信端末400と通信することによって、IoTデバイスが設置されている部署に当該社員40が訪れたことが特定される。
【0024】
学習実行装置200は、人物データ管理装置100によって管理されている人物データを用いた学習を実行する。学習実行装置200は、人物データとスキルとの関係を学習することによって、人物データから人物が有するスキルを推定するための学習モデルを生成する。人物データ管理装置100と学習実行装置200とは、ネットワーク20を介して通信してよい。
【0025】
学習実行装置200は、例えば、まず、社員40の社員データを解析することによって、社員40の社員データ(構造化データ及び非構造化データ)とスキルの関係を示した学習データを生成する。次に学習実行装置200は、当該学習データを用いて学習を行い、社員データ(構造化データ及び非構造化データ)とスキルの関係を学習した学習モデルを生成する。そして、学習実行装置200は、学習した学習モデルに、社員40の社員データを入力する。学習モデルからは、推定されたスキルが出力され、学習実行装置200は、社員40の携帯通信端末400に対して、推定されたスキルを送信する。
【0026】
携帯通信端末400は、学習実行装置200から受信した、推定されたスキルを社員40に提示する。社員40は、推定されたスキルが正しいか否かを携帯通信端末400に入力する。社員40は、例えば、自らが有すると推定されているスキルについて、有すると考える場合には、推定されたスキルが正しいとし、有していないと考える場合には、推定されたスキルを誤りとする。また、社員40は、例えば、自らが有していないと推定されているスキルについて、有していないと考える場合には、推定されたスキルを正しいとし、有していると考える場合には、推定されたスキルを誤りとする。携帯通信端末400は、社員40によって入力された入力結果をフィードバックとして学習実行装置200に送信する。学習実行装置200は、携帯通信端末400から受信したフィードバックを利用した再帰学習を実行して、スキル推定装置300に提供する学習モデルを生成する。学習内容の詳細については後述する。
【0027】
スキル推定装置300は、人物データ管理装置100によって管理されている人物データに基づいて、人物が有するスキルを推定する。スキル推定装置300は、学習実行装置200によって生成された学習モデルを用いて、社員40の社員データから当該社員40のスキルを推定してよい。スキル推定装置300と、人物データ管理装置100とは、ネットワーク20を介して通信してよい。スキル推定装置300と学習実行装置200とは、ネットワーク20を介して通信してよい。
【0028】
スキル推定装置300は、推定した社員40のスキルを、社員40を識別する社員識別情報に対応付けて格納してよい。また、スキル推定装置300は、スキルによる社員40の検索を可能とする検索機能を有してよい。例えば、スキル推定装置300は、社員40によって携帯通信端末400に入力されたスキルを示すキーワードを、携帯通信端末400から受信し、キーワードが示すスキルが対応付けられている社員40の社員識別情報を特定して、携帯通信端末400に表示させる。
【0029】
従来の社員管理システムでは、例えば、社員に自らが保有する資格情報を登録させることによって、社員のスキルを管理していた。しかし、資格制度が追い付いていない技術だったり、資格を取得しても資格が登録されなかったりすることによって、社員1人1人のスキルを正確に把握しにくい状況にあった。このため、例えば、新たな技術に関するプロジェクトのチームメンバーを選定する場合に、その技術に関する経験を有する社員、その技術の業界に精通している社員、その技術に関するスキルを有する社員等を見つけることが難しく、選定に苦労していた。このような問題は、社員数が多い会社においてより顕著になる。
【0030】
また、従来から、社員の構造化データから社員のスキルを推定する技術が検討されているが、構造化データに含まれる資格情報から、資格に対応するスキルを有していると推定するにとどまっている。資格の種類によっては、資格を有していることによってスキル(実務能力)を有していることが担保されるものもあるが、資格を有していることとスキル(実務能力)を有していることとは、必ずしも一致しない。本質的には、社員が実際に有しているスキル(実務能力)を推定することが望ましいが、そのような技術は実現されていない。
【0031】
それに対して、本実施形態に係る管理システム10では、社員の非構造化データに着目する。社員の非構造化データは、上述したように、社員のメールデータ、スケジュールデータ、ドキュメントデータ、フリーコメント、アンケートデータ、PCのログ、電話のログ、携帯通信端末400の使用ログ、及び勤怠データ等、社員が行動した結果生成されるデータであり、社員が有するスキル(実務能力)を抽出できる可能性がある。例えば、メールデータ中に、ロボットに関連するワードが数多く登場する社員は、日頃からロボットに関する業務を行ったり、ロボットについて調査したりしている可能性が高く、ロボットに関するスキル(実務能力)を有している可能性が高いといえる。
【0032】
本実施形態に係る管理システム10は、社員の非構造化データを主に学習データとして学習を実行し、学習モデルを生成するので、高い精度で、社員が有するスキル(実務能力)を推定することができる。これにより、例えば、ロボットに関するプロジェクトのチームメンバーを選択する場合に、ロボットに関するスキル(実務能力)を有する社員40を容易に特定可能にできる。
【0033】
なお、
図1では、人物データ管理装置100、学習実行装置200、及びスキル推定装置300を別の装置として示したが、これに限らない。人物データ管理装置100、学習実行装置200、及びスキル推定装置300のうち全部又は一部が一体であってもよい。例えば、スキル推定装置300は、学習実行装置200の機能を有してもよく、スキル推定装置300と学習実行装置200とは一体であってもよい。また、例えば、スキル推定装置300は、人物データ管理装置100の機能を有してもよく、スキル推定装置300と人物データ管理装置100とは一体であってもよい。また、例えば、スキル推定装置300は、人物データ管理装置100及び学習実行装置200の機能を有してもよく、スキル推定装置300、人物データ管理装置100、及び学習実行装置200は一体であってもよい。
【0034】
また、
図1では、管理システム10が、会社に所属する社員40を管理する場合を主に例に挙げて説明したが、管理システム10は、任意の人物を管理してよい。例えば、管理システム10は、会社以外の民間組織に所属する人物を管理してもよい。また、管理システム10は、公的組織に所属する人物を管理してもよい。
【0035】
図2は、ラベル240が対応付けられた学習データ230の一例を概略的に示す。ここでは、社員IDがA00001である社員40の、Java(登録商標)、AI、SQL、対話処理、及び画像処理というスキルに対する学習データ230及びラベル240を例示する。
【0036】
学習実行装置200は、社員40の構造化データ及び非構造化データを解析することによって、学習データ230を生成する。学習実行装置200は、例えば、非構造化データに、スキルに関連する関連用語が含まれている場合に、スキルの値を「1」とし、含まれていない場合に、スキルの値を「0」とする。
【0037】
学習実行装置200は、複数のスキルのそれぞれに対して、スキルに関連する関連用語が対応付けられている辞書データを格納しておいてよい。下記表1は、スキル「AI」に関連する関連用語の一例を示す。表1では、AIに対して、LSTM(Long Short Term Memory)、CNN(Convolution Neural Network)、教師ラベル、及び学習データが対応付けられている。
【0039】
学習実行装置200は、例えば、社員40のメールデータに、表1に登録されている関連用語が1つでも含まれる場合に、メールとAIに対応する値を「1」とし、1つも含まれない場合、「0」とする。学習実行装置200は、社員40のメールデータに、表1に登録されている関連用語が予め設定された数よりも多く含まれる場合に、メールとAIに対応する値を「1」とし、メールデータに含まれる関連用語の数が予め設定された数よりも少ない場合、メールとAIに対応する値を「0」としてもよい。また、学習実行装置200は、社員40のメールデータにおける、表1に登録されている関連用語の出現頻度が予め定められた閾値より高い場合に、メールとAIに対応する値を「1」とし、閾値より低い場合に「0」としてもよい。
【0040】
なお、学習実行装置200は、Word2VecやDoc2Vec等を活用して意味ベクトルを導出し、複数のスキル毎に、メールデータ等を分類してもよい。例えば、学習実行装置200は、メールデータに対してWord2VecやDoc2Vecを適用した結果、AIとJavaについて、予め定められた閾値を超えた場合、メールデータとAIに対応する値と、メールデータとJavaに対応する値とを「1」としてよい。
【0041】
また、学習実行装置200は、例えば、構造化データに、スキルに関連する関連用語が含まれている場合に、スキルの値を「1」とし、含まれていない場合に、スキルの値を「0」とする。例えば、学習実行装置200は、社員40が所属する組織の名称にAIが含まれている場合に、組織とAIに対応する値を「1」とする。
【0042】
学習実行装置200は、学習データ230に基づいて、ラベル240を決定し、学習モデルに入力するラベル付き学習データを生成する。学習実行装置200は、例えば、複数のスキルのそれぞれについて、構造化データに対応する値と非構造化データに対応する値との合計が予め定められた閾値以上である場合に、ラベル240を「1」とし、閾値より低い場合に、ラベル240を「0」とする。
【0043】
学習実行装置200は、ラベル付き学習データを用いて学習する。ラベル240は損失関数を扱うためのデータとして用いることで学習を行う。学習実行装置200は、例えば構造化データと非構造化データとから生成した学習データ230を学習モデルに入力した際に、ラベルが示す特徴を再現できるように、学習モデルが有するノード間の接続係数(すなわち、ノード間の値を伝達する際の重み)をバックプロパゲーション等の手法によって修正する。
【0044】
例えば、ラベル240の値が「1」に対応する学習データを学習モデルに入力すると、学習データに対応するスキルを有する確度の値が閾値π以上となるように中間層が有する接続係数の再計算を行う。また出力層では上述したラベル240を損失関数として扱う。尚、閾値πの値は任意に設定可能である。
【0045】
学習実行装置200はラベル付き学習データを用いて学習した学習モデルに、社員40の社員データを入力し、学習モデルによって出力された、推定されたスキルを携帯通信端末400に送信して、社員40に確認させる。学習実行装置200は、複数のスキルのそれぞれについて、社員40がスキルを有していると推定されたか、有していないと推定されたかを示す推定結果を携帯通信端末400に送信して、社員40に確認させてよい。例えば、学習実行装置200は、Javaのスキル有り、AIのスキル有り、SQLのスキル有り、対話処理のスキル有り、及び画像処理のスキル無しという推定結果を携帯通信端末400に送信する。携帯通信端末400は、推定されたスキルが正しいか否かの社員40による入力を受け付けて、入力内容をフィードバックとして学習実行装置200に送信する。
【0046】
学習実行装置200は、携帯通信端末400から受信したフィードバックを参照して、社員40によって確認されたスキルの有無を示すラベル240を学習データ230に対応付けた新たなラベル付き学習データを生成する。そして、学習実行装置200は、新たに生成したラベル付き学習データを学習モデルに入力して、上述と同様の学習を実行することによって、学習モデルを更新することにより、学習モデルを生成してよい。
【0047】
最初にラベル付き学習データを用いて学習した学習モデルによって推定されたスキルは、推定精度が低いので、上述したように、社員40に推定結果を確認させることによって、ラベル240を付し直し、より精度の高いラベル240を付した学習データ230を生成する。これにより、学習モデルによるスキルの推定の推定精度を高めることができる。
【0048】
学習実行装置200は、例えば、まず、複数の社員40の社員データのうちの一部の社員データから学習データを生成し、当該学習データを用いて、上述した流れに従って学習モデルを生成する。次に、学習実行装置200は、複数の社員データのうちの残りの社員データを学習モデルに入力して、学習モデルから出力された推定結果を、当該残りの社員データに対応する社員40の携帯通信端末400に対して送信し、フィードバックを取得する。そして、学習実行装置200は、フィードバックを利用して学習モデルを更新する。また、学習実行装置200は、新たな社員データを取得した場合に、同様の処理を実行することによって、学習モデルを更新してよい。このような処理を繰り返すことによって、学習モデルによるスキルの推定の推定精度を高めていくことができる。
【0049】
スキル推定装置300は、学習実行装置200によって生成された学習モデルを用いて、社員40のスキルを推定してよい。例えば、スキル推定装置300は、まず、スキルを推定する対象の社員40の構造化データ及び非構造化データから、学習データと同様のデータを生成する。次に、スキル推定装置300は、生成したデータに対して学習モデルを適用することによって、当該社員40のスキルを推定する。
【0050】
図3は、学習実行装置200の機能構成の一例を概略的に示す。学習実行装置200は、辞書データ生成部202、辞書データ格納部204、人物データ取得部210、学習データ生成部212、学習実行部214、フィードバック取得部216、学習モデル格納部220、及び学習モデル送信部222を備える。なお、学習実行装置200がこれらの全ての構成を備えることは必須とは限らない。
【0051】
辞書データ生成部202は、スキルの辞書データを生成する。スキルの辞書データは、複数のスキルのそれぞれに対して、スキルに関連する関連用語が登録されたデータであってよい。辞書データ生成部202は、例えば、あるスキルをキーワードとしてWeb検索を実行し、検索結果のWebページに、より多く含まれるワードを、当該スキルに関連する関連用語としてスキルの辞書データに登録する。辞書データ格納部204は、辞書データ生成部202によって生成された辞書データを格納する。辞書データ格納部204は、学習実行装置200のオペレータ等によって生成された辞書データを格納してもよい。
【0052】
人物データ取得部210は、人物データを取得する。人物データ取得部210は、人物データ管理装置100によって管理されている人物データを人物データ管理装置100から受信してよい。
【0053】
学習データ生成部212は、人物データ取得部210によって取得された人物データと、辞書データ格納部204に格納されている辞書データとを用いて、学習データを生成する。
【0054】
学習データ生成部212は、人物データに含まれる非構造化データを解析することによって、非構造化データに対応する学習データを生成してよい。学習データ生成部212は、複数種類の非構造化データのそれぞれと、複数のスキルのそれぞれとに対応する値を決定していく。
【0055】
学習データ生成部212は、例えば、第1の種類の非構造化データに、第1のスキルに関連する関連用語が含まれている場合に、第1の種類の非構造化データと第1のスキルとに対応する値を予め定められた第1の値とし、含まれていない場合に、第1の種類の非構造化データと第1のスキルとに対応する値を予め定められた第2の値とする。ここでは、第1の値が「1」であり、第2の値が「0」である場合を例に挙げて説明する。
【0056】
第1の種類の非構造化データと第1のスキルとに対応する値を「1」とするか「0」とするかの判断基準は、第1の種類の非構造化データに、第1のスキルに関連する関連用語が含まれているか否かに限らない。例えば、第1の種類の非構造化データにおける第1のスキルに関連する関連用語の出現回数が予め定められた回数よりも多いか否か、第1の種類の非構造化データにおける第1のスキルに関連する関連用語の出現頻度が予め定められた頻度よりも多いか否か等、任意の判断基準が用いられてよい。
【0057】
また、例えば、学習データ生成部212は、第1の種類の非構造化データに対してWord2Vec又はDoc2Vec適用した結果に基づいて、第1の種類の非構造化データと第1のスキルとに対応する値を「1」とするか「0」とするかを判定してもよい。例えば、学習データ生成部212は、第1の種類の非構造化データに対してWord2Vec又はDoc2Vec適用した結果、第1のスキルについて、予め定められた閾値以上である場合に、第1の種類の非構造化データと第1のスキルとに対応する値を「1」とし、閾値より低い場合に、「0」とする。
【0058】
学習データ生成部212は、人物データに含まれる構造化データを解析することによって、構造化データに対応する学習データを生成してよい。学習データ生成部212は、複数種類の構造化データのそれぞれと、複数のスキルのそれぞれとに対応する値を決定していく。学習データ生成部212は、例えば、第1の種類の構造化データに、第1のスキルに関連する関連用語が含まれている場合に、第1の種類の構造化データと第1のスキルとに対応する値を「1」とし、含まれていない場合に、「0」とする。
【0059】
第1の種類の構造化データと第1のスキルとに対応する値を「1」とするか「0」とするかの判断基準は、第1の種類の構造化データに、第1のスキルに関連する関連用語が含まれているか否かに限らない。例えば、第1の種類の構造化データにおける第1のスキルに関連する関連用語の出現回数が予め定められた回数よりも多いか否か、第1の種類の構造化データにおける第1のスキルに関連する関連用語の出現頻度が予め定められた頻度よりも多いか否か等、任意の判断基準が用いられてよい。
【0060】
学習実行部214は、学習データ生成部212によって生成された学習データに基づいてラベルを決定し、学習モデルに入力するラベル付き学習データを生成する。学習実行部214は、複数のスキルのそれぞれについて、社員40がスキルを有するか否かを示すラベルを決定してよい。
【0061】
学習実行部214は、例えば、非構造化データに対応する値と構造化データに対応する値の合計が予め定められた閾値以上である場合に、ラベルを、スキルを有することを示す値とし、閾値より低い場合に、スキルを有さないことを示す値とする。ここでは、スキルを有することを示す値が「1」であり、スキルを有さないことを示す値が「0」である場合を例に挙げて説明する。
【0062】
学習実行部214は、ラベル付き学習データを用いて学習する。ラベル240は損失関数を扱うためのデータとして用いることで学習を行う。学習実行部214は、例えば、学習データ生成部212によって生成された学習データを学習モデルに入力した際に、ラベルが示す特徴を再現できるように、学習モデルが有するノード間の接続係数(すなわち、ノード間の値を伝達する際の重み)をバックプロパゲーション等の手法によって修正する。
【0063】
例えば、ラベルの値が「1」に対応する学習データを学習モデルに入力すると、学習データに対応するスキルを有する確度の値が閾値π以上となるように中間層が有する接続係数の再計算を行う。また出力層では上述したラベルを損失関数として扱う。尚、閾値πの値は任意に設定可能である。
【0064】
学習実行部214は、ラベル付き学習データを用いて学習した学習モデルに、人物データを入力し、学習モデルによって出力された、推定されたスキルを取得する。
【0065】
フィードバック取得部216は、学習モデルによって出力された、推定されたスキルに対するフィードバックを取得する。フィードバック取得部216は、例えば、推定されたスキルを、社員40の携帯通信端末400に送信する。フィードバック取得部216は、複数のスキルのそれぞれについて、社員40がスキルを有していると推定されたか、有していないと推定されたかを示す推定結果を携帯通信端末400に送信してよい。そして、フィードバック取得部216は、携帯通信端末400からフィードバックを受信する。
【0066】
学習実行部214は、フィードバック取得部216が取得したフィードバックを参照して、新たなラベル付き学習データを生成する。学習実行部214は、社員40による確認が完了したスキルの有無を示すラベルを学習データに対応付けた、新たなラベル付学習データを生成してよい。そして、学習実行部214は、当該ラベル付き学習データを学習モデルに入力して、上述と同様の学習を実行することにより、学習モデルを更新する。
【0067】
なお、学習実行部214は、人物データから学習モデルを生成してもよい。学習実行部214は、例えば、複数のスキルのそれぞれについて、スキルを有する1又は複数の人物の人物データを解析することによって導出したベクトルデータと、スキルとの対応付けデータを生成する。解析対象の人物データは、例えば、人物の非構造化データである。解析対象の人物データは、人物の行動履歴であってよい。そして、学習実行部214は、複数のスキルの対応付けデータを含む学習モデルを生成する。
【0068】
当該学習モデルによれば、例えば、ある人物の非構造化データから導出されたベクトルデータと、学習モデルに含まれるベクトルデータとを比較することによって、当該人物のスキルを推定することができる。具体例として、ある人物の人物データから導出されたベクトルデータと、学習モデルに含まれる複数のベクトルデータとの一致度を導出した結果、Javaに対応するベクトルデータとの一致度が予め定められた閾値より高かった場合、当該人物がJavaのスキルを有すると推定することができる。
【0069】
学習モデル格納部220は、学習実行部214によって生成された学習モデルを格納する。学習モデル送信部222は、学習モデル格納部220に格納されている学習された学習モデルを送信する。学習モデル送信部222は、学習モデル格納部220に格納されている学習された学習モデルをスキル推定装置300に送信してよい。
【0070】
図4は、スキル推定装置300の機能構成の一例を概略的に示す。スキル推定装置300は、学習モデル格納部302、人物データ取得部304、スキル推定部306、スキル格納部308、スキル検索部310、表示制御部312、及び人物情報提供部314を備える。なお、スキル推定装置300がこれらの全ての構成を備えることは必須とは限らない。
【0071】
学習モデル格納部302は、学習モデルを格納する。学習モデル格納部302は、学習実行装置200によって生成された、学習された学習モデルを受信して格納してよい。
【0072】
人物データ取得部304は、人物データを取得する。人物データ取得部304は、人物データ管理装置100によって管理されている人物データを人物データ管理装置100から取得してよい。
【0073】
スキル推定部306は、人物データ取得部304が取得した人物データに基づいて、人物のスキルを推定する。スキル推定部306は、学習モデル格納部302に格納されている学習された学習モデルを用いて、人物データ取得部304が取得した人物データから、人物のスキルを推定してよい。
【0074】
スキル推定部306は、例えば、人物の構造化データ及び非構造化データに基づいて、人物のスキルを推定する。スキル推定部306は、例えば、スキルを推定する対象の人物の人物データを人物データ取得部304から取得し、当該人物データに含まれる構造化データ及び非構造化データから、学習データと同様のデータを生成する。そして、スキル推定部306は、生成したデータを、学習モデルに入力して、学習モデルから出力された結果を、当該人物のスキルの推定結果とする。
【0075】
スキル格納部308は、スキル推定部306によって推定された人物のスキルと、人物を識別する人物識別情報とを対応付けて格納する。人物識別情報は、人物を識別することができればどのような情報であってもよい。例えば、人物が社員である場合、人物識別情報は社員を識別する社員IDであってよい。
【0076】
スキル検索部310は、指定されたスキルを有する人物を検索する。スキル検索部310は、人物検索部の一例であってよい。スキル検索部310は、例えば、スキル格納部308を参照して、指定されたスキルを有する人物を検索する。スキル検索部310は、例えば、携帯通信端末400に対して社員40によって入力されたスキルを表すワードを携帯通信端末400から受信し、当該ワードによってスキル格納部308に対する検索を実行することによって、当該スキルを有する人物を特定する。なお、スキル格納部308に対する検索として、既存のあらゆる検索手法が採用され得る。例えば、スキル格納部308に対する検索は、完全一致の検索であってよく、部分一致の検索であってよく、シソーラスを考慮した検索であってよく、概念検索であってもよい。
【0077】
スキル検索部310は、人物データ取得部304を参照して、指定されたスキルを有する可能性がある人物を検索してもよい。例えば、スキル検索部310は、スキルを表すワードを取得し、人物データに当該ワードが含まれる人物を検索結果としてもよい。スキル検索部310は、例えば、取得したワードが構造化データに含まれる人物を検索結果とする。また、スキル検索部310は、例えば、取得したワードが非構造化データに含まれる人物を検索結果とする。また、スキル検索部310は、例えば、取得したワードが非構造化データ及び構造化データの少なくともいずれかに含まれる人物を検索結果とする。
【0078】
表示制御部312は、スキル推定部306が学習データを用いて人物の人物データから推定した当該人物のスキルを、当該人物に対応する携帯通信端末400に送信して表示させる。表示制御部312は、表示させたスキルを当該人物が有するか否かを、当該人物によって入力可能な形式で、推定した当該人物のスキルを携帯通信端末400に表示させてよい。また、表示制御部312は、表示させたスキル以外に当該人物が有するスキルと、当該スキルに対するコメントとをさらに入力可能な形式で、推定した当該人物のスキルを携帯通信端末400に表示させてもよい。
【0079】
人物情報提供部314は、指定された人物の情報を提供する。人物情報提供部314は、例えば、携帯通信端末400から人物識別情報を受信して、人物識別情報によって識別された人物の情報を携帯通信端末400に提供する。人物情報提供部314が提供する人物の情報は、人物の構造化データを含んでよい。人物情報提供部314が提供する人物の情報は、人物のスキルを含んでよい。
【0080】
図5は、人物情報提供部314によって提供される人物情報600の一例を概略的に示す。ここでは、A00001によって識別される社員の人物情報600を例示している。
【0081】
人物情報600は、氏名602、社員ID604、所属606、及び選択メニュー608を含んでよい。選択メニュー608には、任意のメニューが配置される。
図5では、選択メニュー608に、人物が有するスキルを表示するメニューが配置されており、当該メニューが選択されている状態を例示している。当該メニューの選択によって、スキル一覧610が表示される。
【0082】
人物情報提供部314が、
図5に示すような人物情報を提供することによって、複数の人物のそれぞれが有するスキルを容易に確認可能にできる。
【0083】
上記実施形態では、人物データに含まれる構造化データ及び非構造化データの両方を用いて、学習モデルを生成し、人物のスキルを推定する例を主に挙げて説明したが、これに限らない。学習実行装置200は、構造化データを用いずに、非構造化データを用いて学習モデルを生成してよく、スキル推定装置300は、構造化データを用いずに、非構造化データを用いて、人物のスキルを推定してよい。
【0084】
図6は、学習実行装置200又はスキル推定装置300として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
【0085】
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ1226、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブ1226は、DVD−ROMドライブ及びDVD−RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
【0086】
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
【0087】
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブ1226は、プログラム又はデータをDVD−ROM1227等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
【0088】
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
【0089】
プログラムは、DVD−ROM1227又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【0090】
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD−ROM1227、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【0091】
また、CPU1212は、記憶装置1224、DVDドライブ1226(DVD−ROM1227)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【0092】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0093】
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
【0094】
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
【0095】
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD−ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0096】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
【0097】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0098】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0099】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。