IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立公共システムの特許一覧

<>
  • 特開-情報処理装置および情報処理方法 図1
  • 特開-情報処理装置および情報処理方法 図2
  • 特開-情報処理装置および情報処理方法 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023091216
(43)【公開日】2023-06-30
(54)【発明の名称】情報処理装置および情報処理方法
(51)【国際特許分類】
   G06Q 10/06 20230101AFI20230623BHJP
【FI】
G06Q10/06
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2021205845
(22)【出願日】2021-12-20
(71)【出願人】
【識別番号】596127554
【氏名又は名称】株式会社日立社会情報サービス
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】山下 敦司
(72)【発明者】
【氏名】木下 嘉洋
(72)【発明者】
【氏名】中屋 文江
(72)【発明者】
【氏名】田中 公司
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA09
(57)【要約】
【課題】広域監視にて、プロジェクトの悪化予兆を早期に検知するとともに、重点監視の対象にするか否かの判断の人的コストを低減する。
【解決手段】本発明の情報処理装置100は、終了した第1プロジェクトの監視情報で訓練した予測モデルを生成する生成部1と、仕掛かりの第2プロジェクトの説明変数を予測モデルに入力し、第2プロジェクトの見積原価推定超過の予測値、および、予測値の根拠となる説明変数を出力する予測部2と、第1プロジェクトの第1テキストデータ、および第2プロジェクトの第2テキストデータに対してテキストマイニングを行うテキストマイニング部5と、を備える。テキストマイニング部5は、テキストマイニングにより生成されたクラスタごとに、第2プロジェクトのトピック割合を算出し、算出したトピック割合を第2プロジェクトの説明変数とする。
【選択図】図1
【特許請求の範囲】
【請求項1】
終了した第1プロジェクトの監視情報で訓練した予測モデルを生成する生成部と、
仕掛かりの第2プロジェクトの説明変数を前記予測モデルに入力し、前記第2プロジェクトの見積原価推定超過の予測値、および、前記予測値の根拠となる説明変数を出力する予測部と、
前記第1プロジェクトの第1テキストデータ、および前記第2プロジェクトの第2テキストデータに対してテキストマイニングを行うテキストマイニング部と、を備え、
前記テキストマイニング部は、
前記第1テキストデータおよび前記第2テキストデータの形態素解析をし、前記形態素解析の結果に基づいて、前記第1テキストデータおよび前記第2テキストデータの係り受け解析をし、前記係り受け解析によって特定された係り受け構造に基づくグラフを作成し、前記作成されたグラフのクラスタリングを行い、前記クラスタリングによって生成されたクラスタから、所定値以上の出現回数で出現する特徴語を抽出し、前記抽出した特徴語を用いて、前記クラスタごとに、前記第2プロジェクトのトピック割合を算出し、
前記算出したトピック割合を前記第2プロジェクトの説明変数とする情報処理装置。
【請求項2】
前記予測モデルは、前記見積原価推定超過があるか否かを出力する第1予測モデルと、前記第1予測モデルで前記見積原価推定超過があった前記第2プロジェクトの説明変数を入力し、前記見積原価推定超過が所定値以上であるか否かを出力する第2予測モデルとの組み合わせである請求項1に記載の情報処理装置。
【請求項3】
前記予測モデルの訓練に用いる前記第1プロジェクトの監視情報は、所定の進捗率での前記第1プロジェクトの監視情報である請求項1または請求項2に記載の情報処理装置。
【請求項4】
情報処理装置が、
終了した第1プロジェクトの監視情報で訓練した予測モデルを生成するステップと、
仕掛かりの第2プロジェクトの説明変数を前記予測モデルに入力し、前記第2プロジェクトの見積原価推定超過の予測値、および、前記予測値の根拠となる説明変数を出力するステップと、
前記第1プロジェクトの第1テキストデータ、および前記第2プロジェクトの第2テキストデータに対してテキストマイニングを行うステップと、を実行し、
前記テキストマイニングを行うステップで、
前記第1テキストデータおよび前記第2テキストデータの形態素解析をし、前記形態素解析の結果に基づいて、前記第1テキストデータおよび前記第2テキストデータの係り受け解析をし、前記係り受け解析によって特定された係り受け構造に基づくグラフを作成し、前記作成されたグラフのクラスタリングを行い、前記クラスタリングによって生成されたクラスタから、所定値以上の出現回数で出現する特徴語を抽出し、前記抽出した特徴語を用いて、前記クラスタごとに、前記第2プロジェクトのトピック割合を算出し、
前記算出したトピック割合を前記第2プロジェクトの説明変数とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
近年、デジタルトランスフォーメーション(DX:Digital Transformation)推進の技術開発が盛んであり、その一環として、ソフトウェア開発等のプロジェクトの状態監視が重要視されている。状態監視は、重点監視と広域監視の2つに分けることができる。重点監視は、管理部署によるプロジェクトの監視である。広域監視は、全プロジェクトを対象にし、所定のツールを利用した監視である。状態監視では、まず、ツールに入力された原価などのデータに基づく広域監視で失敗の可能性や失敗時の影響が大きいと判断されたプロジェクトを重点監視の対象とする。次に、管理部署による支援により、重点監視の対象となるプロジェクトの悪化防止や改善を図る。
【0003】
従来の広域監視は、原価が見積を超えるなどの問題が顕在化してから該当のプロジェクトを抽出するものであった。プロジェクトを成功に導くという目的に照らし合わせれば、問題が顕在化していない早期の段階でプロジェクトの悪化予兆を検知することが好ましい。しかし、従来の広域監視では、問題が顕在化していない早期の段階でプロジェクトの悪化予兆を検知することが困難であるという問題があった。
【0004】
また、従来の広域監視では、懸念されるプロジェクトを本当に重点監視の対象とするか否かの判断のための調査が行われる。調査は、例えば、プロジェクトの規模や見積原価超過額などの調査である。しかし、このような調査は多大な人的コストがかかっていた。このため、受注金額が大きいプロジェクトなど、状況が悪化した場合の影響が大きいプロジェクトが優先的に対応され、小規模なプロジェクトを含むすべてのプロジェクトを対象とした監視は行われないのが現状である。つまり、従来の広域監視では、重点監視の対象とすべきプロジェクトの判断に人的コストが大きいという問題があった。
【0005】
また、従来の広域監視では、各種原価やコード番号などの数値データが活用されるのみであり、プロジェクトの議事録などのテキストデータは活用できなかった。このため、プロジェクトの悪化予兆を理解するためには、監視対象すべてのプロジェクトについてすべてのテキストデータを確認する必要があった。つまり、従来の広域監視では、重点監視の対象とすべきプロジェクトの判断の人的コストを低減することに限界があった。
【0006】
なお、特許文献1には、ソフトウェア開発のリスクに繋がる要因の特定を可能にする発明が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2019-148874号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、このような事情に鑑みて、広域監視にて、プロジェクトの悪化予兆を早期に検知するとともに、重点監視の対象にするか否かの判断の人的コストを低減することを課題とする。
【課題を解決するための手段】
【0009】
前記課題を解決する本発明は、
終了した第1プロジェクトの監視情報で訓練した予測モデルを生成する生成部と、
仕掛かりの第2プロジェクトの説明変数を前記予測モデルに入力し、前記第2プロジェクトの見積原価推定超過の予測値、および、前記予測値の根拠となる説明変数を出力する予測部と、
前記第1プロジェクトの第1テキストデータ、および前記第2プロジェクトの第2テキストデータに対してテキストマイニングを行うテキストマイニング部と、を備え、
前記テキストマイニング部は、
前記第1テキストデータおよび前記第2テキストデータの形態素解析をし、前記形態素解析の結果に基づいて、前記第1テキストデータおよび前記第2テキストデータの係り受け解析をし、前記係り受け解析によって特定された係り受け構造に基づくグラフを作成し、前記作成されたグラフのクラスタリングを行い、前記クラスタリングによって生成されたクラスタから、所定値以上の出現回数で出現する特徴語を抽出し、前記抽出した特徴語を用いて、前記クラスタごとに、前記第2プロジェクトのトピック割合を算出し、
前記算出したトピック割合を前記第2プロジェクトの説明変数とする情報処理装置である。
【0010】
また、本発明は、
情報処理装置が、
終了した第1プロジェクトの監視情報で訓練した予測モデルを生成するステップと、
仕掛かりの第2プロジェクトの説明変数を前記予測モデルに入力し、前記第2プロジェクトの見積原価推定超過の予測値、および、前記予測値の根拠となる説明変数を出力するステップと、
前記第1プロジェクトの第1テキストデータ、および前記第2プロジェクトの第2テキストデータに対してテキストマイニングを行うステップと、を実行し、
前記テキストマイニングを行うステップで、
前記第1テキストデータおよび前記第2テキストデータの形態素解析をし、前記形態素解析の結果に基づいて、前記第1テキストデータおよび前記第2テキストデータの係り受け解析をし、前記係り受け解析によって特定された係り受け構造に基づくグラフを作成し、前記作成されたグラフのクラスタリングを行い、前記クラスタリングによって生成されたクラスタから、所定値以上の出現回数で出現する特徴語を抽出し、前記抽出した特徴語を用いて、前記クラスタごとに、前記第2プロジェクトのトピック割合を算出し、
前記算出したトピック割合を前記第2プロジェクトの説明変数とする情報処理方法である。
【発明の効果】
【0011】
本発明によれば、広域監視にて、プロジェクトの悪化予兆を早期に検知するとともに、重点監視の対象にするか否かの判断の人的コストを低減することができる。
【図面の簡単な説明】
【0012】
図1】本実施形態における情報処理装置の機能構成図の例である。
図2】予測部の出力情報の画面例である。
図3】本実施形態の処理を示すフローチャートの例である。
【発明を実施するための形態】
【0013】
≪第1実施形態≫
[構成]
図1に示す情報処理装置100は、広域監視により仕掛かりのプロジェクトの悪化予兆を検知するコンピュータである。情報処理装置100は、入力部、出力部、制御部、および、記憶部といったハードウェアを備える。例えば、制御部がCPU(Central Processing Unit)から構成される場合、その制御部を含むコンピュータによる情報処理は、CPUによるプログラム実行処理で実現される。また、そのコンピュータに含まれる記憶部は、CPUの指令により、そのコンピュータの機能を実現するためのさまざまなプログラムを記憶する。これによりソフトウェアとハードウェアの協働が実現される。前記プログラムは、記録媒体に記録したり、ネットワークを経由したりすることで提供可能となる。出力部は、画面表示をする表示部の機能を含めてもよい。
【0014】
プロジェクトとは、所定の目的を達成するための業務をいう。プロジェクトは、終了済の過去のプロジェクトと、仕掛かりのプロジェクトに分類できる。本実施形態では、過去のプロジェクトを「第1プロジェクト」と呼び、仕掛かりのプロジェクトを「第2プロジェクト」と呼ぶ。また、過去のプロジェクトと仕掛かりのプロジェクトを区別しない場合は、単に、「プロジェクト」と呼ぶ。
【0015】
図1に示すように、情報処理装置100は、生成部1と、予測部2と、テキストマイニング部5を備えている。また、情報処理装置100は、第1プロジェクトDB3と、第2プロジェクトDB4と、第1議事録DB6と、第2議事録DB7を記憶している。
【0016】
生成部1は、機械学習で第2プロジェクトの実推原価を予測するための予測モデルを生成する。実推原価は、第2プロジェクト終了時までに発生する原価の推定値である。なお、原価には、製造原価や売上原価など複数種類存在するが、本実施形態では、原価とは、特定の目的を達成するために消費される経済的資源を貨幣で測定したものとし、製造原価や売上原価などを含む語として説明する。
予測部2は、生成部1が生成した予測モデルを用いて、対象の第2プロジェクトの実推原価を予測する。
テキストマイニング部5は、所定のテキストデータに対してテキストマイニングを行う。テキストマイニング部5のテキストマイニングは、特開2019-117484号公報(以下、「参考文献1」という)に開示されており、周知であるため、詳細な説明は省略する。
第1プロジェクトDB3は、第1プロジェクトの監視情報を第1プロジェクトごとに記憶するデータベースである。
第2プロジェクトDB4は、第2プロジェクトの監視情報を第2プロジェクトごとに記憶するデータベースである。
第1議事録DB6は、第1プロジェクトの議事録である第1議事録を第1プロジェクトごとに記憶するデータベースである。議事録は、プロジェクトの進捗の記録であり、主にテキストデータで構成されているが、数値データや図形データを含んでもよい。第1議事録は、特許請求の範囲の「第1テキストデータ」の具体例である。
第2議事録DB7は、第2プロジェクトの議事録である第2議事録を第2プロジェクトごとに記憶するデータベースである。第2議事録は、特許請求の範囲の「第2テキストデータ」の具体例である。
テキストマイニング部5は、第1議事録および第2議事録に対してテキストマイニングを行うことができる。
【0017】
<プロジェクトの監視情報>
プロジェクトの監視情報は、プロジェクトの状況を監視するための情報である。第1プロジェクトの監視情報は、例えば、作番情報と、説明変数と、目的変数とから構成できる。
【0018】
作番情報は、第1プロジェクトを識別する情報である。例えば、作番情報は、作番と、進捗率(%)と、作番名を含むが、これらに限定されない。
作番は、第1プロジェクトの識別子であり、例えば、文字数字列で表現できる。
進捗率は、第1プロジェクトの進捗を定量的に示すパラメータである。
作番名は、第1プロジェクトの名称であり、例えば、観念可能な言葉で表現できる。
【0019】
説明変数は、第1プロジェクトの状態を表現する変数である。説明変数は複数種類存在する。説明変数は、例えば、作業開始時期、作業終了時期、実績原価、見通し原価、見積原価、担当者、作業時間、実績工数、トピック割合を含むがこれらに限定されない。例えば、Borutaを用いて説明変数候補を抽出し、その中から最適な説明変数を選択することができるが、説明変数の選択方法はこれに限定されない。
作業開始時期は、第1プロジェクトの開始時期(年月日)である。
作業終了時期は、第1プロジェクトの終了時期(年月日)である。
実績原価は、作業開始時期から所定時期までの間に発生した原価である。
見通し原価は、所定時期から作業終了時期までに発生することが見込まれる原価である。
見積原価は、作業開始時期から作業終了時期までに発生することが見込まれる原価である。
担当者は、第1プロジェクトを担当した者(複数可)である。
作業時間は、作業開始時期から所定時期までの間に、各担当者が第1プロジェクトの作業に費やした時間である。
実績工数は、第1プロジェクトを構成する全工数のうち、作業開始時期から所定時期までの間に完了した工数である。
なお、所定時期は、作業開始時期と作業終了時期までの間の任意の時期である。
トピック割合は、すべての第1議事録に対するテキストマイニングによって複数種類のクラスタが生成された場合、対象の第1プロジェクトの第1議事録に出現する特徴語の出現回数と、各クラスタに属する同じ特徴語の出現回数との比である。よって、対象の第1議事録のトピック割合は、クラスタごとに算出される。第1議事録に対するテキストマイニングの詳細については後記する。
【0020】
目的変数は、説明変数に依存する変数である。目的変数は、例えば、第1プロジェクト終了時での実績原価となる、最終実績原価とすることができるが、これに限定されない。
【0021】
(進捗率のこと)
進捗率は、例えば、時期的基準で算出できる。例えば、プロジェクトの作業開始時期から作業終了時期までの期間が30日間であり、対象時期が作業開始時期から15日目であった場合、進捗率は50%となる。第1プロジェクトは終了した過去のプロジェクトであるため、現時点での進捗率は100%である。ここで、第1プロジェクトの説明変数は、進捗率に応じて変化する値とすることができる。第1プロジェクトの監視情報は、進捗率ごとの説明変数の集合として構成できる。
【0022】
例えば、説明変数としての実績原価は、進捗率0%~100%のあらゆる値での実績原価の集合となる。進捗率X%の実績原価は、作業開始時期から進捗率X%相当の時期までの間に発生した原価となる。また、説明変数としての見通し原価は、進捗率0%~100%のあらゆる値での見通し原価の集合となる。進捗率X%の見通し原価は、進捗率X%相当の時期から作業終了時期までの間に発生することが見込まれる原価となる。なお、作業開始時期や作業終了時期などのように、進捗率に応じて変化しない説明変数も存在するが、そのような説明変数は、進捗率に応じて同じ値をとる定数として扱うことが好ましい。
【0023】
なお、第1議事録が進捗率に応じて変化する(第1プロジェクトの進捗の記録が蓄積される)ため、トピック割合も進捗率に応じて変化する。
【0024】
一方、第2プロジェクトの監視情報は、例えば、作番情報と、説明変数とから構成できる。
【0025】
作番情報は、第2プロジェクトを識別する情報である。例えば、作番情報は、作番と、進捗率(%)と、作番名を含むが、これらに限定されない。
作番は、第2プロジェクトの識別子であり、例えば、文字数字列で表現できる。
進捗率は、第2プロジェクトの進捗を定量的に示すパラメータである。
作番名は、第2プロジェクトの名称であり、例えば、観念可能な言葉で表現できる。
【0026】
説明変数は、第2プロジェクトの状態を表現する変数である。説明変数は複数種類存在する。説明変数は、例えば、作業開始時期、作業終了時期、実績原価、見通し原価、見積原価、担当者、作業時間、実績工数、トピック割合を含むがこれらに限定されない。例えば、Borutaを用いて説明変数候補を抽出し、その中から最適な説明変数を選択することができるが、説明変数の選択方法はこれに限定されない。
作業開始時期は、第2プロジェクトの開始時期(年月日)である。
作業終了時期は、第2プロジェクトの終了時期(年月日)である。
実績原価は、作業開始時期から所定時期までの間に発生した原価である。
見通し原価は、所定時期から作業終了時期までに発生することが見込まれる原価である。
見積原価は、作業開始時期から作業終了時期までに発生することが見込まれる原価である。
担当者は、第2プロジェクトを担当している者(複数可)である。
作業時間は、作業開始時期から所定時期までの間に、各担当者が第2プロジェクトの作業に費やした時間である。
実績工数は、第2プロジェクトを構成する全工数のうち、作業開始時期から所定時期までの間に完了した工数である。
なお、所定時期は、作業開始時期と作業終了時期までの間の現在である。
また、すでに説明した、第2プロジェクトの実推原価は、第2プロジェクトの実績原価と見通し原価との和である。
トピック割合は、すべての第1議事録および対象の第2議事録に対するテキストマイニングによって複数種類のクラスタが生成された場合、対象の第2プロジェクトの第2議事録に出現する特徴語の出現回数と、各クラスタ内で出現する同じ特徴語の出現回数との比である。よって、対象の第2議事録のトピック割合は、クラスタごとに算出される。第2議事録に対するテキストマイニングの詳細については後記する。
【0027】
第2プロジェクトの進捗率は、作業開始時期から作業終了時期までの期間と、作業開始時期から現在までの期間の比として算出できる。現在に相当する進捗率X%の実績原価は、作業開始時期から現在までの間に発生した原価となる。また、現在に相当する進捗率X%の見通し原価は、現在から作業終了時期までの間に発生することが見込まれる原価となる。なお、作業開始時期や作業終了時期などのように、進捗率に応じて変化しない説明変数も存在するが、そのような説明変数は、進捗率に応じて同じ値をとる定数として扱うことが好ましい。
【0028】
なお、第2議事録が進捗率に応じて変化する(第2プロジェクトの進捗の記録が蓄積される)ため、トピック割合も進捗率に応じて変化する。
【0029】
<予測モデル>
(訓練)
生成部1は、例えば、ランダムフォレストに用いる複数の決定木を組み合わせて予測モデルを生成できる。ランダムフォレストは、機械学習アルゴリズムであり、複数の決定木を利用し、多数決をとって予測するアンサンブル学習アルゴリズムである。決定木は、例えば、説明変数を用いた判定条件を組み合わせたツリー状のロジックとして構成できる。判定条件は、適宜設計でき、例えば、担当者の1日の作業時間の平均が5時間以上か否か、などとすることができる。
【0030】
生成部1は、第1プロジェクトの監視情報を訓練データとして用いて、予測モデルを訓練できる。例えば、第1プロジェクトごとに、第1プロジェクトの監視情報のうち進捗率50%相当の時期での説明変数を予測モデルの入力とすることができる。また、第1プロジェクトの監視情報の目的変数に基づく値を予測モデルの出力とすることができる。例えば、第1プロジェクトの最終実績原価から見積原価を引いた見積原価超過の値を予測モデルの出力とすることができる。生成部1は、所定数の第1プロジェクトの監視情報を用いて予測モデルを訓練する。
【0031】
ここで、生成部1は、予測モデルを複数用意し、予測モデルの出力を複数段階の出力とすることができる。例えば、生成部1は、第1予測モデルと第2予測モデルを用意する。第1予測モデルの入力は、すべての第1プロジェクトの監視情報を対象にし、当該監視情報のうち進捗率50%相当の時期での説明変数とすることができる。また、第1予測モデルの出力は、第1プロジェクトの最終実績原価から見積原価を引いた見積原価超過があった(0M(0円)より大きい)か否かとすることができる。次に、第2予測モデルの入力は、第1予測モデルの出力で見積原価超過があった第1プロジェクトの監視情報を対象にし、当該監視情報のうち進捗率50%相当の時期での説明変数とすることができる。また、第2予測モデルの出力は、見積原価超過が1M(100万円)以上であるか否かとすることができる。結果的に、予測モデルの出力を、見積原価超過が0M以下、0Mより大きいかつ1M未満、1M以上、の3値に分類できる。
【0032】
テキストマイニング部5は、第1プロジェクトごとに、進捗率50%相当の時期での第1議事録を第1議事録DB6から取得して読み込む。また、テキストマイニング部5は、参考文献1の発明を用いて、読み込んだすべての第1議事録に対してテキストマイニングを行う。具体的には、テキストマイニング部5は、第1議事録の各々の形態素解析を行う。また、テキストマイニング部5は、形態素解析の結果に基づいて、第1議事録の各々の係り受け解析を行う。また、テキストマイニング部5は、係り受け解析によって特定された係り受け構造に基づくグラフを第1議事録ごとに作成する。また、テキストマイニング部5は、第1議事録ごとに作成したグラフをマージして、1つのグラフを作成する。また、テキストマイニング部5は、マージしたグラフのクラスタリングを行う。その結果、マージしたグラフに関する1または複数のクラスタが生成される。また、テキストマイニング部5は、生成された各クラスタから、1または複数の特徴語を抽出する。特徴語は、所定値以上の出現回数(TF:Term Frequency)で出現する語である。所定値は、例えば、クラスタごとに決定してもよいし、どのクラスタに対しても一律に同じ値として決定してもよい。
【0033】
テキストマイニング部5は、生成された各クラスタを象徴するトピック(話題)を設定する。クラスタごとのトピックは、クラスタの象徴する役割を果たすものであり、情報処理装置100のオペレータが設定できる。オペレータは、例えば、各クラスタに含まれる特徴語から推測して設定してもよいし、各クラスタに含まれる特徴語以外の語から推測して設定してもよいし、各クラスタに含まれる語以外の語から推測して設定してもよい。
【0034】
テキストマイニング部5は、生成されたクラスタごとに、かつ、第1プロジェクトごとにトピック割合を算出する。具体的には、テキストマイニング部5は、対象の第1プロジェクトの第1議事録に出現する特徴語(以下、「第1特徴語」という場合がある)の出現回数(C1)をカウントする。第1特徴語が複数種類出現した場合、各種第1特徴語の出現回数の合計(C1に相当)をカウントする。また、テキストマイニング部5は、対象のクラスタに属する特徴語のうち、第1特徴語の出現回数(c1)をカウントする。テキストマイニング部5は、トピック割合を(c1/C1)として算出する。
【0035】
例えば、テキストマイニング部5が読み込んだすべての第1議事録に対してテキストマイニングを行うことで、3つのクラスタ[1]~[3]が生成したとする。また、第1プロジェクトとしてのAプロジェクトについて、Aプロジェクトの第1議事録に出現する第1特徴語の出現回数が100回であり、クラスタ[1]~[3]の各々に属する第1特徴語の出現回数がそれぞれ70回,20回,10回であったとする。このとき、Aプロジェクトにつて、クラスタ[1]~[3]の各々のトピック割合はそれぞれ、70%(=70回/100回)、20%(=20回/100回)、10%(=10回/100回)と算出される。
【0036】
生成部1は、テキストマイニング部5が算出したトピック割合を説明変数として予測モデルに入力する。予測モデルが第1予測モデルと第2予測モデルのように複数用意された場合も同様である。
【0037】
(予測)
予測部2は、訓練済みの予測モデルを用いて、予測対象の第2プロジェクトの実推原価を予測する。例えば、予測部2は、第2プロジェクトの監視情報のうち、現在、つまり所定の進捗率(50%以上が好ましいが、50%未満でもよい)相当の時期での説明変数を予測モデルに入力する。すると、予測部2は、実推原価に基づく値を予測モデルの出力として取得できる。例えば、予測部2は、実推原価から見積原価を引いた見積原価推定超過の値を取得できる。
【0038】
予測モデルが、上記した第1予測モデル、第2予測モデルである場合、予測部2は、予測対象の第2プロジェクトの監視情報のうち、現在での説明変数を第1予測モデルに入力する。すると、予測部2は、第1予測モデルの出力として、見積原価推定超過があった(0M(0円)より大きい)か否かを示す値を取得できる。見積原価推定超過があった場合、予測部2は、当該第2プロジェクトの監視情報のうち、現在での説明変数を第2予測モデルに入力する。すると、予測部2は、第2予測モデルの出力として、見積原価推定超過が1M(100万円)以上であるか否かを示す値を取得できる。結果的に、見積原価推定超過を0M以下、0Mより大きいかつ1M未満、1M以上、の3値に分類できる。
なお、1Mは例示であり、1Mより大きい値でもよいし、1Mより小さい値でもよい。
【0039】
テキストマイニング部5は、所定の進捗率(50%以上が好ましいが、50%未満でもよい)相当の時期での第2議事録を第2議事録DB7から取得して読み込む。また、テキストマイニング部5は、参考文献1の発明を用いて、読み込んだすべての第1議事録、および読み込んだ第2議事録に対してテキストマイニングを行う。具体的には、テキストマイニング部5は、すべての第1の議事録については訓練時に作成したグラフ(第1議事録ごとに作成したグラフをマージしたグラフ)を用いる。また、テキストマイニング部5は、予測対象の第2議事録の形態素解析を行う。また、テキストマイニング部5は、形態素解析の結果に基づいて、第2議事録の係り受け解析を行う。また、テキストマイニング部5は、係り受け解析によって特定された係り受け構造に基づくグラフを「第2議事録向けグラフ」として作成する。また、テキストマイニング部5は、訓練時に作成したグラフと第2議事録向けグラフとをマージして、1つのグラフを「全体グラフ」として作成する。
【0040】
また、テキストマイニング部5は、マージした全体グラフのクラスタリングを行う。ここで、すべての第1プロジェクトが特定の事業(例:ソフトウェア開発)に関するプロジェクトであり、予測対象の第2プロジェクトも同じ特定の事業に関するプロジェクトであるという条件下では、すべての第1議事録の語彙と、予測対象の第2議事録の語彙は大きく類似する傾向にある。このため、第2議事録に記載されている語(特徴語を含む)は、訓練時にすべての第1議事録を対象にして生成した複数のクラスタのいずれかに属するといってよい。つまり、全体グラフのクラスタリングにより生成した複数のクラスタは、訓練時に生成した複数のクラスタと同じになるといってよい。
【0041】
テキストマイニング部5は、全体グラフのクラスタリングにより生成した複数のクラスタから、1または複数の特徴語を抽出する。また、テキストマイニング部5は、生成された各クラスタを象徴するトピック(話題)を設定する。前記条件下では、訓練時と予測時との間で複数のクラスタは同じになるので、クラスタに設定するトピックも同じにしてよい。
【0042】
テキストマイニング部5は、生成されたクラスタごとに、予測対象の第2プロジェクトのトピック割合を算出する。具体的には、テキストマイニング部5は、予測対象の第2プロジェクトの第2議事録に出現する特徴語(以下、「第2特徴語」という場合がある)の出現回数(C2)をカウントする。第2特徴語が複数種類出現した場合、各種第2特徴語の出現回数の合計(C2に相当)をカウントする。また、テキストマイニング部5は、対象のクラスタに属する特徴語のうち、第2特徴語の出現回数(c2)をカウントする。テキストマイニング部5は、トピック割合を(c2/C2)として算出する。
【0043】
予測部2は、テキストマイニング部5が算出したトピック割合を説明変数として予測モデルに入力する。予測モデルが第1予測モデルと第2予測モデルのように複数用意された場合も同様である。
【0044】
予測部2は、予測モデルの出力を含む情報を出力できる。例えば、情報処理装置100の表示部は、図2に示すような予測部2の出力情報を画面表示できる。図2に示すように、予測部2の出力情報は、「予測結果」と、「作番情報」と、「予測結果の説明変数と特徴」と、「トピック内容」を列とし、第2プロジェクトを行とする表形式とすることができる。
【0045】
「予測結果」は、予測モデルの出力内容を示す。「予測結果」は、「項番」と、「予測値」と、「確信度」から構成される。
「項番」は、第2プロジェクトごとに付される行番号である。
「予測値」は、予測モデルがすでに説明した第1予測モデルと第2予測モデルの組み合わせであるときの、見積原価推定超過の3値分類に従う結果である。「1:100万円以上超過」は、1M以上に対応する。「2:100万円未満超過」は、0Mより大きいかつ1M未満に対応する。「3:問題なし」は、0M以下に対応する。
「確信度」は、予測の信頼度であり0%~100%で示される。例えば、確信度は、バギングを用いて求めることができるが、これに限定されない。
【0046】
「作番情報」は、第2プロジェクトの監視情報の作番情報と同じである。
「予測結果の説明変数と特徴」は、「予測結果」に寄与する説明変数を示す。「予測結果の説明変数と特徴」は、「説明変数一覧」と、「特徴ランキング」から構成される。
「説明変数一覧」は、第2プロジェクトの監視情報の説明変数と同じである。
「特徴ランキング」は、「予測結果」に寄与する説明変数の順位を示す。順位が高いほど、その説明変数の予測値の出力に対する寄与率が大きい。例えば、各変数の寄与率は、SHAP(Shapley Additive exPlanations)アルゴリズムを用いて求めることができるが、これに限定されない。
【0047】
「トピック内容」は、クラスタリングにより生成したクラスタに対してテキストマイニング部5が設定したトピックを示す。「トピック内容」は、複数種類の「トピックn(xxx)」から構成される。ここで、nは自然数であり、1~(クラスタの数)までの自然数である。また、xxxはトピックとして設定された言葉である。「トピックn(xxx)」の各々は、「トピック割合」(例えば図2中、符号8)と、「特徴語群」(例えば図2中、符号9)とから構成される。
「トピック割合」は、トピックnのトピック割合である。
「特徴語群」は、トピックnが設定されたクラスタに属する特徴語の集合である。なお、一例であるが、符号8に示す特徴語群は、「リスク」、「備える」、「再発」、「回避」、「仕様変更」、「主張」、「受け付ける+ない」(「受け付ける」と「受け付けない」を1語としてまとめた特徴語)、「故障」、「発生」といった特徴語からなる。各特徴語に右隣にある括弧付き数字は、該当クラスタにおける出現回数である。「リスク」は端点ノードであり、「備える」、「再発」、「回避」はそれぞれ「リスク」に連結するノードである(参考文献1参照)。また、「仕様変更」は端点ノードであり、「主張」、「受け付ける+ない」、「故障」、「発生」は、それぞれ「仕様変更」に連結するノードである。
【0048】
第1実施形態によれば、見積原価推定超過が1M以上となる第2プロジェクトを抽出できる。よって、広域監視にて、プロジェクトの悪化予兆を早期に検知することができる。
【0049】
(重点監視の対象にするか否かの判断)
図2の出力情報を知得した管理部署は、見積原価推定超過が1M以上となる第2プロジェクトを重点監視の対象とするか否かを判断する。従来では、プロジェクトの悪化予兆をAIで検知したとしても、AIの予測結果の根拠はブラックボックス化されていた。このため、管理部署は、AIの予測結果に対して、プロジェクトの悪化予兆の要因を追跡することが容易でなく、重点監視の対象とするか否かの判断に多大な人的コストを要していた。
【0050】
図2の「特徴ランキング」は、見積原価推定超過が1M以上になった根拠を提示しているといえる。管理部署は、「特徴ランキング」を参照し、見積原価推定超過が1M以上という予測に大きく寄与する説明変数を容易に特定できる。その結果、該当の第2プロジェクトを重点監視の対象にするか否かの判断が容易になり、重点監視の対象にするか否かの判断の人的コストを低減することができる。
予測値の出力に対する寄与率が大きいトピックは、「特徴ランキング」で高い順位を示す説明変数となり得る(例えば図2中、符号10)。管理部署は、順位の高いトピックが設定されたクラスタに属する特徴語に注目して、該当の第2プロジェクトの第2議事録を精査することで、該当の第2プロジェクトを重点監視の対象にするか否かの判断に対する理解を深めることができる。
【0051】
また、議事録などのテキストデータをトピック割合として数値化することができるため、トピック割合を予測モデルの説明変数として入力できるようになり、プロジェクトの悪化予兆にテキストデータを活用できるようになった。その結果、プロジェクトの悪化予兆を理解するために、監視対象すべてのプロジェクトについてすべてのテキストデータを確認する必要は無く、注目すべき特定の特徴語を選択できる。つまり、重点監視の対象とすべきプロジェクトの判断の人的コストを低減することができる。
議事録を複数のトピックとして分割して理解することができるため、トピックを議事録の要約として活用できる。また、予測の根拠(説明変数)となるトピック割合を参照して議事録の内容を逆引きできる。このため、根拠を理解するために確認すべきテキストデータを即座に把握できる。
すべてのプロジェクト(第1プロジェクトおよび第2プロジェクト)に対してトピック割合を算出できる。このため、同じトピックについて各プロジェクト間の数値変化を求めることができ、プロジェクト間の違いを表すことができるようになる。
クラスタは、従来のようにシソーラス等で事前に用意するのではなく、テキストデータの係り受け構造を反映して生成される。事前に用意したクラスタでは、人間の思い込みによって予測に必要な特徴を見過ごしてしまう可能性があったが、本実施形態によれば、そのような特徴を拾うことができ、予測の根拠の候補とすることができる。
訓練時と予測時との間で生成される複数のクラスタが同じである場合、訓練対象と予測対象を同じ尺度で評価できる。よって、各クラスタにおける、訓練時のトピック割合と予測時のトピック割合との数値変化として、第2プロジェクトに対する予測を行うことができる。その結果、該当の第2プロジェクトを重点監視の対象にするか否かの判断の手法として、クラスタごとのトピック割合の数値変化に着目するという手法を導入できる。
【0052】
[処理]
情報処理装置100が実行する処理は、図3に示すとおりである。つまり、まず、生成部1が予測モデルを生成する(ステップS1)。次に、生成部1が、所定の進捗率における第1プロジェクトの監視情報を用いて、予測モデルを訓練する(ステップS2)。次に、予測部2が、予測モデルを用いて、対象の第2プロジェクトの見積原価推定超過の予測値と、予測値に寄与する説明変数を予測根拠として出力する(ステップS3)。管理部署は、予測根拠から、悪化予兆を示す第2プロジェクトを重点監視の対象とするか否かを判断する。
【0053】
≪第2実施形態≫
第2実施形態の説明の際、第1実施形態との相違する点について説明し、重複する点は説明を省略する。第1実施形態では、訓練データとなる第1プロジェクトの監視情報の説明変数は進捗率50%相当の時期での説明変数であった。第2実施形態では、訓練データに用いる第1プロジェクトの説明変数の時期を定期化する。
【0054】
例えば、第1プロジェクトの期間、つまり、作業開始時期から作業終了時期までの期間がおよそ数カ月に及ぶ場合、訓練データに用いる説明変数の時期、つまり、訓練日(学習日)を毎月25日に設定する。
よって、作番Aの第1プロジェクトの作業開始時期が4/15であり、作業終了時期が6/30である場合、作番Aの第1プロジェクトの訓練日は、4/25と5/25となる。つまり、作番Aの第1プロジェクトの監視情報のうち4/25での説明変数(4/25相当の進捗率での説明変数)と、5/25での説明変数(5/25相当の進捗率での説明変数)の計2回分を予測モデルの入力とする。
また、作番Bの第1プロジェクトの作業開始時期が5/1であり、作業終了時期が9/15である場合、作番Bの第1プロジェクトの訓練日は、5/25,6/25,7/25,8/25となる。つまり、作番Bの第1プロジェクトの監視情報のうち5/25での説明変数(5/25相当の進捗率での説明変数)と、6/25での説明変数(6/25相当の進捗率での説明変数)と、7/25での説明変数(7/25相当の進捗率での説明変数)と、8/25での説明変数(8/25相当の進捗率での説明変数)の計4回分を予測モデルの入力とする。
また、作番Cの第1プロジェクトの作業開始時期が6/1であり、作業終了時期が7/10である場合、作番Cの第1プロジェクトの訓練日は、6/25となる。つまり、作番Cの第1プロジェクトの監視情報のうち6/25での説明変数(6/25相当の進捗率での説明変数)の計1回分を予測モデルの入力とする。
【0055】
結果的に、第1プロジェクトの大部分に対して、複数種類の進捗率での説明変数が予測モデルに入力される。このようにして訓練された予測モデルを用いて、予測部2が第2プロジェクトの実推原価を予測する。この場合、第2プロジェクトの進捗率が低進捗率(例えば、30%程度)であり、低進捗率相当の時期での説明変数を予測モデルに入力したとしても、予測部2が出力した予測値の確信度(図2参照)が十分に高いことが確認された。
【0056】
第2実施形態によれば、訓練日を定期化し、同じ第1プロジェクトについて複数種類の進捗率での説明変数を予測モデルに入力することができる。これにより、第2プロジェクトの実推原価の予測を早期化できる。
また、訓練日を定期化することで、すべての第1プロジェクトを対象にした予測モデルへの入力を体系化でき、訓練に要する処理を簡易にできる。
【0057】
[変形例]
(a):第1、第2実施形態では、進捗率をプロジェクトの期間を用いた時期的基準で算出した。しかし、例えば、進捗率は、プロジェクトで取り組む作業の達成度から算出してもよい。
(b):第1実施形態では、第1プロジェクトごとに、第1プロジェクトの監視情報のうち進捗率50%相当の時期での説明変数を予測モデルの入力とした。しかし、例えば、第1プロジェクトごとに、50%以外の任意の同じ進捗率相当の時期での説明変数を予測モデルの入力としてもよい。また、第1プロジェクトごとに異なる進捗率相当の時期での説明変数を予測モデルに入力してもよい。
(c):第2実施形態では、訓練日を定期化することで、同じ第1プロジェクトに対して、複数種類の進捗率を実質的に選択し、選択した進捗率での説明変数を予測モデルに入力した。しかし、例えば、情報処理装置100のユーザが入力部を操作して、同じ第1プロジェクトに対して、任意の進捗率を複数種類選択し、選択した進捗率での説明変数を予測モデルに入力してもよい。
(d):テキストデータをトピック割合として数値化する発明は、本実施形態の悪化予兆検知に限らず、テキストデータを用いた所定の訓練(学習)および予測に応用できる。また、本発明は、ソフトウェアの業界に限らず、他の業界に導入することもできる。
(e):本実施形態では、第2プロジェクトの予測時に用いた全体グラフを、すべての第1の議事録については訓練時に作成したグラフ(第1議事録ごとに作成したグラフをマージしたグラフ)と、第2議事録向けグラフとをマージして作成したグラフとした。つまり、マージを2回に分けて全体グラフを作成した。しかし、例えば、テキストマイニング部5は、第1議事録ごとに作成したグラフと、第2議事録向けグラフとを用いてマージを1回だけ行い全体グラフを作成してもよい。全体グラフの内容は、第1議事録の内容と予測対象の第2議事録の内容に基づいて一意的に決定するものであり、マージの回数や順番によらない。クラスタリングにより生成されたクラスタも第1議事録の内容と予測対象の第2議事録の内容に基づいて一意的に決定するものであり、マージの回数や順番によらない。よって、トピック割合の算出結果も同じである。
(f):予測対象の第2議事録の内容によっては、すべての第1議事録および予測対象の第2議事録を対象にして予測時で生成された複数のクラスタが、すべての第1議事録を対象にして訓練時で生成された複数のクラスタと異なる場合がある。その結果、訓練時に入力されるが予測時に入力されない説明変数としてのトピック割合(以下、「第1種トピック割合」という場合がある)が発生する。また、訓練時に入力されないが予測時に入力される説明変数としてのトピック割合(以下、「第2種トピック割合」という場合がある)が発生する。このような場合、訓練時において、説明変数としてのトピック割合に第2種トピック割合を意図的に追加用意するとともに、予測時において説明変数としてのトピック割合に第1種トピック割合を意図的に追加用意することができる。かかる調整により、訓練時と予測時との間で予測モデルに入力させる説明変数の種類(尺度)を統一できるようになり、第2プロジェクトの悪化予兆を実行できる。
【0058】
(g):本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
(h):本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
(i):その他、ハードウェア、ソフトウェア、フローチャートなどについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【0059】
100 情報処理装置
1 生成部
2 予測部
3 第1プロジェクトDB
4 第2プロジェクトDB
5 テキストマイニング部
6 第1議事録DB
7 第2議事録DB
図1
図2
図3