(57)【要約】【課題】操作負担を増加させることなく、より適切なコマンドを提示する。【解決手段】入力支援装置では、ユーザが次に選択するコマンドをニューラルネットワークを利用して予測、提示することでコマンドの入力支援を行う。各コマンドを同類コマンドに分類しておき、ユーザが選択したコマンドの履歴データを保存し、履歴データからｓ個の入力コマンドを取得し、ｓ個の入力コマンドを入力素子に対する入力として各出力素子の出力値を算出し、算出した各出力素子の出力値が閾値Ｔｈを超える出力素子に対応するコマンドを候補コマンドに決定する。候補コマンドがｑ個未満の場合、ｓ個の入力コマンドの１つを、同類コマンドに分類されている他のコマンドに変更して追加の候補コマンドを決定する。各候補コマンドのうち、出力値が高いｑ個を予測コマンドとして画面表示することで入力支援を行う。【選択図】図１
2018018458.tif 000002
【特許請求の範囲】
【請求項１】
所定のコマンド数ｎに対応したｎ個の入力素子を有する入力層と、ｐ個の中間素子を有する中間層と、ｎ個の出力素子を有する出力層を有するニューラルネットワークを使用し、ユーザが選択したｓ個の選択コマンドを入力コマンドとして次に選択するコマンドを予測して提示する入力支援装置であって、
各コマンドを同類コマンドに分類した同類コマンドデータと、
ユーザが選択したコマンドの履歴データを保存する履歴保存手段と、
前記履歴データからｓ個の選択コマンドを入力コマンドとして取得する入力コマンド取得手段と、
前記取得した入力コマンドを入力素子に対する入力として前記各出力素子の出力値を算出し、算出した各出力素子の出力値が閾値Ｔｈを超える出力素子に対応するコマンドを候補コマンドとする候補コマンドを決定する候補コマンド決定手段と、
前記決定した候補コマンドのうち出力値が高いｑ個の候補コマンドを予測コマンドとして画面表示する予測コマンド表示手段と、を備え、
前記候補コマンド決定手段は、候補コマンドがｑ個未満である場合、前記取得した入力コマンドの１つを、当該コマンドと同類コマンドに分類されている他のコマンドに変更して追加の候補コマンドを決定する、ことを特徴とする入力支援装置。
【請求項２】
前記履歴保存手段は、ユーザが選択した選択コマンドを教師信号とし、当該教師信号と、当該選択直前に前記入力コマンド取得手段が取得したｓ個の入力コマンドとの組みからなる学習元データを順次保存する、
ことを特徴とする請求項１に記載の入力支援装置。
【請求項３】
前記履歴保存手段は、所定数の学習元データを保存対象とし、新たな学習元データを保存する際に、過去に保存された同一の学習元データを削除する、
ことを特徴とする請求項２に記載の入力支援装置。
【請求項４】
前記入力コマンド取得手段は、前記履歴保存手段に保存された履歴データに基づいて、ユーザの選択が新しい順にｓ個の入力コマンドを取得する、
ことを特徴とする請求項１、請求項２、又は、請求項３に記載の入力支援装置。
【請求項５】
前記候補コマンド決定手段は、追加の候補コマンドを決定する場合、前記取得したｓ個の入力コマンドのうち、最新の入力コマンドを他のコマンドに変更する、
ことを特徴とする請求項４に記載の入力支援装置。
【請求項６】
各コマンドを同類コマンドに分類した同類コマンドデータを記憶したコンピュータに、所定のコマンド数ｎに対応したｎ個の入力素子を有する入力層と、ｐ個の中間素子を有する中間層と、ｎ個の出力素子を有する出力層を有するニューラルネットワークを使用し、ユーザが選択した複数の選択コマンドを入力コマンドとして次に選択するコマンドを予測して提示する入力支援を実行させる入力支援プログラムであって、
ユーザが選択したコマンドの履歴データを保存する履歴保存機能と、
前記履歴データからｓ個の入力コマンドを取得する入力コマンド取得機能と、
前記取得したｓ個の入力コマンドを入力素子に対する入力として前記各出力素子の出力値を算出し、算出した各出力素子の出力値が閾値Ｔｈを超える出力素子に対応するコマンドを候補コマンドとする候補コマンドを決定する候補コマンド決定機能と、
前記決定した候補コマンドのうち出力値が高いｑ個の候補コマンドを予測コマンドとして画面表示する予測コマンド表示機能と、を備え、
前記候補コマンド決定機能は、候補コマンドがｑ個未満である場合、前記取得したｓ個の入力コマンドの１つを、当該コマンドと同類コマンドに分類されている他のコマンドに変更して追加の候補コマンドを決定する、
ことを特徴とする入力支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力支援装置、及び入力支援プログラムに係り、例えばＣＡＤ等の各種プログラムを実行する際にユーザによるコマンドの選択支援に関する。
【背景技術】
【０００２】
近年の急激なコンピュータの普及に伴い、文書の作成や表計算、図面の作成などの各種情報処理の多機能化が進んでいる。
例えば、建築用の施工図を作成する場合に、コンピュータを用いたＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）装置を使用する場合が多い。そして、ＣＡＤを利用した測量設計業務では、作業内容や工程毎に多数の機能を使いこなす必要があるが、豊富に機能が存在し、選択可能なコマンド数が３００〜４００と多数であるため、各種操作場面に合致した目的の機能を探し出してコマンドを選択する必要がある。また、各種機能を使いこなすためには、対応するコマンドの位置を記憶する必要があった。
このようにコンピュータを用いた各種情報処理装置の場合、多機能化に対応して選択可能なコマンドが多数存在するため、ユーザは、必要とするコマンドを選択するまでの操作が増えたり、コマンド自体を探しにくくなっている。
【０００３】
かかる課題に対応するため、特許文献１では、ＣＡＤシステムのコマンド入力の効率を向上させるために、ユーザがＣＡＤシステムを操作する毎に、当該操作状況において入力されたコマンドの履歴と入力頻度とを記録し、コマンド入力する際には、ユーザの操作状況に応じて入力された入力頻度から判定したコマンド候補を表示することでコマンド入力効率を向上させる技術が提案されている。
しかし、操作状況を取得するために、ユーザは設計データの面部分、稜線部分等をポインティングデバイスにより指示する必要があり、ユーザ操作が増加していた。
また、ユーザが所望するコマンドは必ずしも頻度と一致するわけではないため、適切な候補を提示することはできていなかった。
【０００４】
ところで、所定の入力に対する出力を予測する方法としてニューラルネットワークが知られている。このニューラルネットワークでは、入力に対する予測結果と実際の結果とが異なる場合、入力データと実際の結果を教師信号とする学習データを使用し、予測結果との二乗誤差が最小になるようにニューラルネットワークの構成を変更（結合荷重の変更）する学習が行われる。
しかし、従来のニューラルネットワークに対する学習は必ずしも適切な教師信号が学習データ反映されていなかった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−４７８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、操作負担を増加させることなく、より適切なコマンドをユーザに提示することを目的とする。
【課題を解決するための手段】
【０００７】
（１）請求項１に記載の発明では、所定のコマンド数ｎに対応したｎ個の入力素子を有する入力層と、ｐ個の中間素子を有する中間層と、ｎ個の出力素子を有する出力層を有するニューラルネットワークを使用し、ユーザが選択したｓ個の選択コマンドを入力コマンドとして次に選択するコマンドを予測して提示する入力支援装置であって、各コマンドを同類コマンドに分類した同類コマンドデータと、ユーザが選択したコマンドの履歴データを保存する履歴保存手段と、前記履歴データからｓ個の選択コマンドを入力コマンドとして取得する入力コマンド取得手段と、前記取得した入力コマンドを入力素子に対する入力として前記各出力素子の出力値を算出し、算出した各出力素子の出力値が閾値Ｔｈを超える出力素子に対応するコマンドを候補コマンドとする候補コマンドを決定する候補コマンド決定手段と、前記決定した候補コマンドのうち出力値が高いｑ個の候補コマンドを予測コマンドとして画面表示する予測コマンド表示手段と、を備え、前記候補コマンド決定手段は、候補コマンドがｑ個未満である場合、前記取得した入力コマンドの１つを、当該コマンドと同類コマンドに分類されている他のコマンドに変更して追加の候補コマンドを決定する、ことを特徴とする入力支援装置を提供する。
（２）請求項２に記載の発明では、前記履歴保存手段は、ユーザが選択した選択コマンドを教師信号とし、当該教師信号と、当該選択直前に前記入力コマンド取得手段が取得したｓ個の入力コマンドとの組みからなる学習元データを順次保存する、ことを特徴とする請求項１に記載の入力支援装置を提供する。
（３）請求項３に記載の発明では、前記履歴保存手段は、所定数の学習元データを保存対象とし、新たな学習元データを保存する際に、過去に保存された同一の学習元データを削除する、ことを特徴とする請求項２に記載の入力支援装置を提供する。
（４）請求項４に記載の発明では、前記入力コマンド取得手段は、前記履歴保存手段に保存された履歴データに基づいて、ユーザの選択が新しい順にｓ個の入力コマンドを取得する、ことを特徴とする請求項１、請求項２、又は、請求項３に記載の入力支援装置を提供する。
（５）請求項５に記載の発明では、前記候補コマンド決定手段は、追加の候補コマンドを決定する場合、前記取得したｓ個の入力コマンドのうち、最新の入力コマンドを他のコマンドに変更する、ことを特徴とする請求項４に記載の入力支援装置を提供する。
（６）請求項６に記載の発明では、各コマンドを同類コマンドに分類した同類コマンドデータを記憶したコンピュータに、所定のコマンド数ｎに対応したｎ個の入力素子を有する入力層と、ｐ個の中間素子を有する中間層と、ｎ個の出力素子を有する出力層を有するニューラルネットワークを使用し、ユーザが選択した複数の選択コマンドを入力コマンドとして次に選択するコマンドを予測して提示する入力支援を実行させる入力支援プログラムであって、ユーザが選択したコマンドの履歴データを保存する履歴保存機能と、前記履歴データからｓ個の入力コマンドを取得する入力コマンド取得機能と、前記取得したｓ個の入力コマンドを入力素子に対する入力として前記各出力素子の出力値を算出し、算出した各出力素子の出力値が閾値Ｔｈを超える出力素子に対応するコマンドを候補コマンドとする候補コマンドを決定する候補コマンド決定機能と、前記決定した候補コマンドのうち出力値が高いｑ個の候補コマンドを予測コマンドとして画面表示する予測コマンド表示機能と、を備え、前記候補コマンド決定機能は、候補コマンドがｑ個未満である場合、前記取得したｓ個の入力コマンドの１つを、当該コマンドと同類コマンドに分類されている他のコマンドに変更して追加の候補コマンドを決定する、ことを特徴とする入力支援プログラムを提供する。
【発明の効果】
【０００８】
本発明によれば、取得したｓ個の入力コマンドを入力素子に対する入力として各出力素子の出力値を算出し、算出した各出力素子の出力値が閾値Ｔｈを超える出力素子に対応するコマンドを候補コマンドとする候補コマンドを決定し、候補コマンドがｑ個未満である場合、取得したｓ個の入力コマンドの１つを、当該コマンドと同類コマンドに分類されている他のコマンドに変更して追加の候補コマンドを決定するので、操作負担を増加させることなく、より適切なコマンドをユーザに提示することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の入力支援装置において、入力候補を決定するニューラルネットワークの構成を表す概念図である。
【図２】ニューラルネットワークにおける素子モデルを表した説明図である。
【図３】本発明の入力支援装置の構成図である。
【図４】入力支援装置をＣＡＤ装置に適用した場合の表示画面を表した説明図である。
【図５】ニューラルネットワークの各素子間における結合荷重データの説明図である。
【図６】履歴データを表す説明図である。
【図７】選択されたコマンドと履歴データとの関係を表す説明図である。
【図８】コマンド予測処理の内容を表したフローチャートである。
【図９】予測コマンドを決定するコマンド決定処理の内容を表したフローチャートである。
【図１０】ニューラルネットワークにおける学習処理の内容を表したフローチャートである。
【図１１】学習処理における学習データの説明図である。
【発明を実施するための形態】
【００１０】
以下、本発明の入力支援装置、及び入力支援プログラムにおける好適な実施の形態について、ＣＡＤ装置に対する入力支援を例に図１から図１１を参照して詳細に説明する。
（１）実施形態の概要
本実施形態の入力支援装置では、通常の作図や設計業務を行うＣＡＤの処理に加え、ユーザが次に選択するコマンドをニューラルネットワークを利用して予測、提示することにより、多数存在するコマンドの入力支援を行うものである。
本実施形態で使用するニューラルネットワークは、ソフトウェア、又は、ハードウェアにより構成され、入力層（Ｉ層）、中間層（Ｍ層）、出力層（Ｏ層）の３層で構成する。Ｉ層とＯ層はユーザが選択可能なコマンド（コマンド数ｎ）のそれぞれに割り当てられたｎ個の入力素子Ｉ１〜Ｉｎ、ｎ個の出力素子Ｏ１〜Ｏｎで構成され、中間層Ｍはｐ個の中間素子Ｍ１〜Ｍｐで構成されている。
本実施形態では、ユーザが選択したコマンドの履歴を保存しておき、最後に選択したコマンドから遡ってｓ個（例えば、３個、５個等）の選択コマンドに対応する入力素子Ｉに入力値を入力し、各出力素子Ｏの出力値が大きい順にｑ個（例えば、５個、７個等）のコマンドを、予測コマンドとする。この予測コマンドは、通常のコマンドの表示とは別に表示画面上に表示することでユーザのコマンド入力を支援する。
予測コマンドの予測精度を高めるために、出力値が所定の閾値Ｔｈ（例えば、０．６）以上であることを候補条件とし、候補条件を満たす出力素子Ｏに対応するコマンドを候補コマンドとする。そして、候補コマンドのうち値が大きい上位ｑ個のコマンドを予測コマンドとする。
【００１１】
本実施形態では、各コマンドｓ個の入力コマンドから予測コマンドを決定するが、閾値Ｔｈ以上のコマンドがｑ個未満である場合、最後（最新）に選択されたコマンドα１（最新コマンド）とした場合、このコマンドα１と同類に分類されているコマンドの中から他のコマンドαｚをランダムに１つ選択する。そして、入力コマンドをαｚに変更したｓ個のコマンドに対応する入力素子に再度入力し、その出力値から候補条件の閾値Ｔｈを超えているコマンドで、かつ、まだ候補になっていないコマンドを出力値が高いものから順番に不足分だけ候補コマンドとする。
候補コマンドがｓ個に満たない場合に、最新コマンド（α１）に代えてαｚを選択するため、本実施形態では、全てのコマンドをその処理内容や操作内容等の共通性・類似性に基づいて同類コマンドとして分類・記憶されている。
【００１２】
ユーザが何れかのコマンドを選択すると、選択コマンドを履歴データに保存する。履歴データの保存は、単純に選択されたコマンドをその選択された順番に保存することも可能であるが、本実施形態では、学習データを効率的に作成するために、コマンド決定処理で最初に使用したｓ個の入力コマンド（代わりのコマンドαｚを含めない）と、選択コマンド（以下、教師信号の対象となる教師コマンドという）との組合せを学習元データとして順次保存している。学習元データは、最新のｒ個（例えば、４００個）が保存される。
そして、学習元データが同一である入力コマンド毎に、選択時期が新しい順に、最大ｄ個（例えば、５個）の教師コマンドを取得し、この入力コマンドと教師コマンドの組合せを学習データとする。この学習データは、ｒ個の学習元データの全てを使用して、複数作成される。
学習データを使用したニューラルネットワークの学習については、バックプロパゲーション（誤差逆伝播学習アルゴリズム）などの、周知の各種学習手法が使用され、Ｉ層の各入力素子ＩとＭ層の各中間素子Ｍ間の結合荷重ｗ、及び、各中間素子ＭとＯ層の各出力素子Ｏ間の結合荷重Ｗを変更することにより行う。
【００１３】
（２）実施形態の詳細
図１は、本実施形態の入力支援装置１で使用する階層型ニューラルネットワークのニューロン素子網の構成を概念的に表したものである。
本実施形態では、入力層Ｉ、中間層Ｍ、出力層Ｏの３層構造のニューラルネットワークで構成されるが、中間層Ｍを複数層にする事も可能である。
入力層Ｉは、ｎ個の入力素子Ｉ１〜Ｉｎで構成され、出力層Ｏはｎ個の出力素子Ｏ１〜Ｏｎで構成されている。この両層の素子数ｎは、入力支援装置の対象となる情報処理装置のコマンド数（本実施形態の場合にはＣＡＤ装置のコマンド数）ｎと同じである。コマンド数は使用する情報処理装置においてユーザが選択可能なコマンドの数ｎと一致しているが、本実施形態が適用されるＣＡＤ装置の例ではコマンド数が４００〜５００である。
各コマンド１〜ｎは、それぞれ各入力素子Ｉ１〜Ｉｎ、出力素子Ｏ１〜Ｏｎに対応付けられている。
【００１４】
一方、中間層Ｍは、ｐ個の中間素子Ｍ１〜Ｍｐで構成されている。全ての中間素子Ｍ１〜Ｍｐは、それぞれ全ての入力素子Ｉ１〜Ｉｎと接続されているとともに、全ての出力素子Ｏ１〜Ｏｎと接続されている。
そして、入力素子Ｉと中間素子Ｍ間の各接合に対してｗの結合荷重が記憶され、中間素子Ｍと出力素子Ｏ間の各接続に対してＷの結合荷重が記憶される。
図１に示すように、個別の結合荷重ｗとＷには、それぞれｗ＋数字１＋数字２、Ｗ＋数字１＋数字２で表されている。
結合荷重ｗの場合、数字１が中間素子Ｍ１〜Ｍｐの数字に対応し、数字２が入力素子Ｉ１〜Ｉｎの数字に対応している。
結合荷重Ｗの場合、数字１が出力素子Ｏ１〜Ｏｎの数字に対応し、数字２が中間素子Ｍ１〜Ｍｐの数字に対応している。
なお、各ニューロン素子は、ソフトウェアにより構成されるが、専用のハードウェアで構成するようにしてもよい。
【００１５】
図２は、各層で使用される入力素子Ｉ、中間素子Ｍ、出力素子Ｏの素子モデル（ニューロンモデル）を表したものである。
中間素子Ｍの入力ｘは、それぞれ接続される入力素子Ｉ１〜Ｉｎからの入力値ｚ１、ｚ２、〜ｚｎと、これらに対応する各結合荷重ｗ１、ｗ２、〜ｗｎとの積の総和と、一定の閾値θとの差で表される。
即ちΣの加算範囲をｊ＝１〜ｎ（出力素子Ｏの場合の加算範囲はｊ＝１〜ｐ）とし、入力ｘ＝Σｗｊｚｊとなる。
なお、図２の中間素子Ｍは、中間素子Ｍ１〜Ｍｐを一般化しているので、結合荷重ｗの後の数字は接続している入力素子Ｉ１〜Ｉｎの数字である数字２を示している。
【００１６】
一方、中間素子Ｍの出力ｙは、この入力ｘに対する所定の伝達関数により算出する。本実施形態では伝達関数として、シグモイド関数が使用される。
即ち、出力ｙ＝１．０／（１．０＋ｅｘｐ（−ｘ））により求められる。
この中間素子Ｍの出力ｙが、各出力素子Ｏ１〜Ｏｎの入力ｚとなる。
【００１７】
本実施形態では、ユーザがコマンドを選択した後に、周知の誤差逆伝播法（プロパゲーション）による各結合荷重ｗ、Ｗを変更する学習処理が行われる。
この誤差逆伝播法では、入力ｘ、出力ｙの正解である教師信号ｄが使用される。そして、ある入力ｘが与えられたときの出力ｙと、正解値である教師信号ｄとの２乗誤差Ｅを結合荷重ｗの関数とみなし、この誤差Ｅが減少する方向へｗを増減させることで学習が行われる。このとき、解を探索するアルゴリズムには、最急降下法を好適に用いることができる。
誤差Ｅ＝（１／２）Σ（ｄｊ−ｙｊ）ｕ２である。
ここで、Σの加算範囲はｊ＝１〜ｎで、記号ｕは指数を表し、ｕ２は二乗を表す。
【００１８】
図２では、結合荷重ｗの中間素子を例に説明するが、出力層Ｏの出力素子Ｏについても同様に計算される。
なお、各入力素子Ｉについては、入力値がそのまま出力値として出力されて、各中間素子Ｍに対する入力素子Ｉからの入力値となる。
【００１９】
図３は、入力支援装置１の構成を表したものである。
この入力支援装置１は、ＣＰＵ１１とＲＯＭ１２、ＲＡＭ１３を有する制御部１０と、入力部２０と、出力部３０と、記憶部４０と、通信部５０と、その他の各部を備えている。
ＣＰＵ１１は、記憶部４０のプログラム部４１に格納されている各種プログラムに従った各種制御を行う。本実施形態のＣＰＵ１１は、ＣＡＤによる作図、設計等の各種処理に加え、本実施形態によるコマンド予測処理による入力支援やニューラルネットワークにおける学習（結合荷重の変更）を行う。
ＲＯＭ１２は、基本ＯＳのほか各種プログラムやデータが保存されている。
ＲＡＭ１３は、ユーザの指示に基づいてＲＯＭ１２やプログラム部４１から読み取られた各種プログラムが保存されるとともに、ＣＰＵ１１が行う各種処理におけるワーキングメモリとして使用されるランダム・アクセス・メモリである。本実施形態では、作成・編集対象となっているＣＡＤデータや、この各ＣＡＤデータ毎に、対応して保存されている結合荷重データ４２２や履歴データ４２３（後述）も一時保存されるようになっている。
【００２０】
通信部５０は、結合荷重データ４２２と履歴データ４２３が保存されたフォルダや、ＣＡＤデータ４２１等の作成済み、又は作成途中の各種データについて、電話回線網、ＬＡＮ、パーソナルコンピュータ通信網等の各種の通信網を介して他の通信制御装置（通信部）との間でデータ送受信を行う。
【００２１】
入力部２０は、本実施形態の入力支援装置１の支援対象であるコマンドの選択操作を含めたＣＡＤにおける各種入力操作を行うためのデバイス、例えば、キーボードやマウス、タッチパネル等から構成される。
キーボードは、仮名文字を入力するための仮名キーやテンキー、各種機能を実行するための機能キー、カーソルキー、等の各種キーが配置されている。
マウスは、ポインティングデバイスであり、表示装置に表示されたキーやアイコン等を左クリックすることで対応する機能の指定を行う入力装置である。
タッチパネルは、表示装置の表面に配置される入力機器で、画面表示された各種操作キーに対応した、ユーザのタッチ位置を特定し、当該タッチ位置に対応して表示された操作キーの入力を受け付ける。
また、入力デバイスとして音声認識装置を搭載するようにしてもよい。ユーザは、音声認識装置を使用することで、入力する文字や数字を音声で入力し、またアイコンやコマンドの選択を音声で行うことが可能になる。
【００２２】
出力部３０は、表示装置を有している。なお、出力部３０は、表示装置の他に、表示装置に表示された図面等を印刷する各種印刷装置を備えるようにしてもよい。
表示装置は、ＣＲＴディスプレイや液晶ディスプレイ等の画像表示部と表示制御部とを備えており、ユーザの入力操作に応じて作成されたＣＡＤ図面や、作図等に必要な各種操作キーなどを画面表示するようになっている。
【００２３】
図４は、ＣＡＤによる作図中における表示画面の一例を表したものである。
図４に示すように、表示画面３１には、メニューバー３１１、リボン３１２、コマンドリスト３１３、作図領域３１５、予測コマンド欄３１７、支援ボタン３１８、その他の各種機能ボタンや領域が確保、表示されている。
【００２４】
メニューバー３１１には、ファイル、ホーム、共通等の各種タブが表示され、選択されているタブに対応するリボン３１２がメニューバー３１１の下側に表示される。リボン３１２には、選択されているタブに分類されているコマンドボタンとリストボタンがアイコン表示される。アイコンの下側に三角マークが表示されているのがリストボタンで、リストボタンが選択されると、コマンドリスト３１３がプルダウン表示される。コマンドリスト３１３には、当該リストボタンに分類されている複数のコマンドが表示される。
ＣＡＤで使用可能な全てのコマンドは、何れかのタブに分類されたリボン内、又は、リボン中の何れかのリストボタンのコマンドリスト内に表示される。
図４の例では、「ホーム」タブが選択され、対応するリボン３１２が表示されると共に、「線入力」のリストボタンが選択されることで、「線入力」コマンド、「平行線」コマンド、「垂線」コマンド等の線入力を行うための各種コマンドボタンがコマンドリスト３１３にリスト表示されている。
【００２５】
作図領域３１５は、選択した各コマンドに対応する操作によって作図された図形や文字が表示される領域である。例えば、円を描画する場合には、「円」コマンドをマウス等で選択した後、作図領域内の所望箇所の２点（中心点と半径上の点）を指定することで円が描画される。
予測コマンド欄３１７は、本実施形態の入力支援により、ユーザが次に選択する可能性が高いと予測した予測コマンドをｑ個表示する欄である。本実施形態の予測コマンド欄３１７には、５つの予測コマンドが表示されるようになっている。なお、図４では、各コマンドとし上下２行記載（下が具体的なコマンド名、上が上位の分類名）されているが、リボン３１２のコマンドボタンと同様に、ｑ個のコマンドボタンをアイコン表示するようにしてもよい。予測コマンド欄３１７に表示される予測コマンドは、ユーザの選択したコマンド履歴のうち最新の選択コマンドｓ個（例えば、ｓ＝３、５等）をニューラルネットワーク（図１参照）の入力として、次に選択される可能性が高いｑ個のコマンドを予測したものであり、その詳細については後述する。
【００２６】
支援ボタン３１８は、予測コマンド欄３１７の表示、非表示を選択するためのボタンである。
図４に示した状態で支援ボタン３１８を選択（クリック）すると予測コマンド欄３１７が非表示され、再度クリックされることで表示される。
なお、支援ボタン３１８による予測コマンド欄３１７の表示状態にかかわらず、本実施形態のコマンド予測処理は常に実行される。
【００２７】
図３に戻り、記憶部４０は、プログラム部４１、ファイル部４２、同類コマンドデータ４３、その他の各種プログラムやデータを格納する。記憶部４０は、読み書き可能な記憶媒体と、その記憶媒体に対してプログラムやデータ等の各種情報を読み書きするための駆動部で構成されている。
この記憶部４０に使用される記憶媒体としては、主としてハードディスクが使用されるが、フロッピーディスク、ハードディスク、磁気テープ等の磁気記憶媒体、メモリチップやＩＣカード等の半導体記憶媒体、ＣＤ−ＲＯＭやＭＯ、ＰＤ（相変化書換型光ディスク）等の光学的に情報が読み取られる記憶媒体、その他各種方法でコンピュータプログラムやデータが記憶される記憶媒体が含まれる。
【００２８】
プログラム部４１は、本実施形態の入力支援で使用されるコマンド予測処理プログラムが適用されるＣＡＤプログラムを含め各種プログラムが保存される。これらの各プログラムはＲＡＭ１３に読み込まれて作業される。処理に必要なデータについても、記憶部４０からＲＡＭ１３に読み込まれ、処理に応じて追加変更がＲＡＭ１３で行われ、プログラムの終了時に記憶部４０に上書き保存、又は、新規に保存される。
【００２９】
ファイル部４２は、入力支援装置１で作成される各種ファイルが保存される。ファイル部４２には、ユーザが作成したＣＡＤデータ４２１や、各ユーザ毎の結合荷重データ４２２、履歴データ４２３が保存される。本実施形態のファイル部４２は、ユーザがＣＡＤによる図面を作成・編集する毎に、当該作成等したＣＡＤデータ４２１が保存（作成、更新）される。そして、ユーザによるＣＡＤデータ４２１の作成、編集作業において選択されたコマンドにより、当該ユーザに対応する結合荷重データ４２２と履歴データ４２３が保存（作成、更新）される。
このように、結合荷重データ４２２と履歴データ４２３は対になって各ユーザ毎のフォルダに保存され、ユーザがＣＡＤプログラムを使用する毎に更新されるようになっている。
【００３０】
なお、ＣＡＤプログラムで結合荷重データ４２２と履歴データ４２３を使用する場合には、ユーザを特定する必要があるが、本実施形態ではつぎのようにしている。
すなわち、記憶部４０に所定作業フォルダ（図示しない）を設け、ＣＡＤプログラムは、常にこの所定作業フォルダに保存されている結合荷重データ４２２と履歴データ４２３（又は、そのフォルダ）を使用する。そして、ユーザが、ＣＡＤプログラムの実行前に、各ユーザの結合荷重データ４２２と履歴データ４２３が保存されているフォルダから、自己のフォルダを所定作業フォルダに複写することで保存される。これにより、前回実行時と同じユーザであれば所定作業フォルダには自己の結合荷重データ４２２と履歴データ４２３が保存済みなので、そのままＣＡＤプログラムを実行することが可能になる。一方、前回実行時と異なるユーザがＣＡＤプログラムを実行する場合には、その実行前に所定作業フォルダ内の結合荷重データ４２２と履歴データ４２３を自己のものに変更する。
なお、所定作業フォルダによらない他の方法としては、各ＣＡＤデータ４２１にユーザを登録（例えば、ユーザＩＤの記録）しておくことで、ＣＡＤデータ４２１を読み込む際に合わせて登録されたユーザの結合荷重データ４２２と履歴データ４２３を読み込むようにしてもよい。なお、ＣＡＤ４２１を新規に作成する際には、最初にユーザの入力を要求する。
さらに、ＣＡＤプログラムの実行中において、最初に支援ボタン３１８（図４参照）が選択された時点で、ユーザの指定を促すようにしてもよい。例えば、結合荷重データ４２２と履歴データ４２３が登録されているユーザのフォルダを選択するウィンドウが表示されてユーザに選択を求めるようにする。
【００３１】
結合荷重データ４２２は、図１で説明したニューラルネットワークにおける各素子間の結合荷重ｗ、Ｗを保存している。即ち、各入力素子Ｉ１〜Ｉｎと各中間素子Ｍ１〜Ｍｐ間の結合荷重ｗ１１〜ｗｐｎ、各中間素子Ｍ１〜Ｍｐと各出力素子間Ｏ１〜Ｏｎ間の結合荷重Ｗｎｐが保存されている。
図５は、結合荷重データ４２２についての説明図である。
結合荷重データ４２２は、図５（１）に示す中間素子Ｍの結合荷重ｗ１１〜ｗｐｎと、図５（２）に示す出力素子Ｏの結合荷重Ｗ１１〜Ｗｎｐとが保存され、ニューラルネットワークの学習を行う毎に結合荷重ｗ、Ｗの値が更新される。
詳細は後述するが、本実施形態では、コマンド予測処理により予測コマンド欄３１７に表示した予測コマンド以外のコマンドが選択された場合（予測が外れた場合）に学習が行われる。但し、学習を行うか否かに係わらず、履歴データ４２３の更新は行われる。
ＣＡＤプログラムの実行中における履歴データ４２３と結合荷重データ４２２の更新はＲＡＭ１３で行われる。そして、ＣＡＤプログラムの終了時等のおいて、記憶部４０の所定フォルダ内と、その複写元であるユーザのフォルダ内の履歴データ４２３、と結合荷重データ４２２が、ＲＡＭ１３のデータに書き換えられる。
【００３２】
図３に戻り、履歴データ４２３は、ユーザが選択したコマンドの履歴が保存される。履歴データ４２３としては、選択されたコマンドをその選択順に保存することも可能であるが、本実施形態では、学習処理で使用する学習データを効率的に作成するため、学習元データの履歴を履歴データとして保存するようにしている。
図６は、学習元データの履歴からなる履歴データ４２３を概念的に表したものである。
図６に示すように履歴データ４２３には、ユーザがコマンドを選択する毎に、学習元データとして、履歴番号、教師信号（選択コマンド）、入力コマンドの組みが保存される。
入力コマンド欄には、ニューラルネットワークを使用して予測コマンドを決定する際に使用したｓ個（本実施形態ではｓ＝３）のコマンドが保存される。例えば、履歴番号１０１番の学習元データ１０１の場合、予測コマンドを決定するためにニューラルネットワークへの入力値の入力対象となったコマンド「ＣＢＡ」が保存される。
図６に示した履歴データ４２３の入力コマンドでは、選択コマンドとしてユーザが選択した順番に（右側が古く左側が新しい）保存される。これは、最新の学習元データである、教師信号（選択コマンド）と入力コマンドとが、ユーザが選択した直近の選択コマンドの履歴を表すためである。例えば、学習元データ１０１＝教Ｇ、入ＣＢＡの場合、コマンドＡ、Ｂ、Ｃ、Ｇの順に選択されていることを表しているので、最新の選択コマンドから３個のコマンドが次の入力コマンドＧＣＢとなる。
【００３３】
図６の枠外右側に表示している（Ｇ１）（Ｇ２）…は、入力コマンドのグループを示す番号である。このグループは、入力コマンドを構成するコマンドが同じか否かで分類されており、履歴番号１０１番の「ＣＢＡ」と１００番の「ＢＡＣ」は同一グループ番号Ｇ１に分類される。このコマンドグループ番号は、データ入力コマンドを説明するために付したもので、履歴データ４２３としては保存されない。
なお、例えば、「ＡＣＡ」と「ＡＣＣ」は共に同じ構成要素ＡとＣであるが、前者はＡが２つ、後者はＣが２つなので別グループに分類される。これは、入力値が異なるためである。即ち、入力コマンドＡＣＡの場合、コマンドＡに対応する入力素子（以下単にコマンドＡという。他のコマンドも同じ）にはＡが２つなので入力値「２」が入力され、Ｃに対応する入力素子には「１」が入力されるのに対し、入力コマンドＡＣＣの場合、コマンドＡには入力値「１」が、コマンドＣには入力値「２」が入力されるためである。
【００３４】
履歴データ４２３の教師信号欄（中欄）には、予測コマンドを決定した後にユーザが選択したコマンド（選択コマンド）が保存される。例えば、履歴番号１０１番の学習元データ１０１の場合、ユーザが選択した最新の選択コマンド「Ｇ」が教師信号として保存される。
教師信号欄に格納されている各選択コマンドは、その履歴番号順（図６の教師信号欄で縦に並んだ順番）に、ユーザが選択したコマンドの履歴となる。即ち、履歴番号９５〜１００の順に選択された各コマンドが、教師信号欄のＥ、Ａ、Ｃ、Ａ、Ｂ、Ｃ、Ｇである。
【００３５】
図６に示す履歴データ４２３は、後述するニューラルネットワークの学習に使用する学習データを作成するための元データとして使用され、所定数（本実施形態では４００個）の学習元データに限定して保存されるようになっている。
そのため、新たな学習元データを保存する際に、当該学習元データと同一の学習元データは、履歴データ４２３から削除されるようになっている。この場合の学習元データが同一の場合とは、入力コマンドのグループが同じで、かつ教師信号が同じ場合をいう。
例えば、図６に示したグループ番号の右側に説明表示したように、学習元データ９２＝教Ａ、入ＣＢＥ（Ｇ４）を保存する場合、これと同一の学習元データ９２＝教Ａ、入ＣＢＥが削除される。この学習元データ９２は、更にその後に学習元データ９６＝教Ａ、入ＥＣＢが保存される際に削除される。
【００３６】
なお、図６に示した履歴データ４２３では、削除された学習元データ８６、８７、８８、９２、９４に取消線を付しているが、実際にデータとして削除している。但し、選択コマンドそのものの選択履歴を保存するために、削除した学習元データ８６、…は、別途保存するようにしてもよい。また、履歴データ４２３の各学習元データに対してフラグ欄を追懐し、学習元データ作成時のフラグを「０」とし、削除対象となった時点で学習元データのフラグを「１」に変更するようにしてもよい。この場合、履歴データ４２３においてフラグ「０」の数は常に所定数（＝４００）である。
なお、保存対象となる学習データ数は、本実施形態では４００個であるが、制御部１０の処理能力やコマンド数に応じて増減することも可能である。
【００３７】
図７は、ユーザが順次選択した選択コマンドと、学習元データとの関係を表したものである。
図７に示すように、最上段の番号…７７〜１０１は、ユーザがコマンドを選択した順番であり、図６の履歴番号に対応している。現在１０１個目のコマンドが作成された状態を表している。
２段目の選択コマンドは、選択順で選択されたコマンドを表していて、左から右方向に向かって選択されたコマンドの履歴になっている。
【００３８】
いま、９０番目のコマンドＢまでがユーザよって選択されているものと仮定する。
この場合、ニューラルネットワークの入力値として、９０番目のコマンドＢから遡って３個の選択コマンドＢ、Ｅ、Ｃが入力コマンドＢＥＣとなる。この入力コマンドＢＥＣに対応するニューラルネットワークの入力素子Ｉにそれぞれ入力値「１」が入力され、その出力信号から後述するコマンド予測処理に従って予測コマンドが決定される。
なお、上述のとおり、入力コマンドがＡＡＣの場合にはコマンドＡの対応入力素子Ｉに入力値「２」が、コマンドＣの対応入力素子Ｉに入力値「１」が入力される。
【００３９】
その後、ユーザによって９１番目のコマンドＣが選択されると、選択されたコマンドＣ＝教師信号と、直前に使用した入力コマンドＢＥＣとが学習元データ９１となる。
そして、学習元データ９１が保存されると、次の入力コマンドとして９１番目のコマンドＣから遡る３個の選択コマンドＣ、Ｂ、Ｅが入力コマンドＣＢＥとなり、９２番目のコマンドＡが選択されると、教師信号Ａと入力コマンドＣＢＥとが学習元データ９２となる。
以下ユーザにより新たなコマンドが選択される毎に学習元データが保存され、同一の学習元データが保存済みであれば保存済みの学習元データが削除され、同一の学習元データがなければ最も古い学習元データが削除される。
【００４０】
図３に戻り、記憶部４０の同類コマンドデータ４３は、各コマンドがいずれの同類コマンドに分類されているかを示すデータである。即ち、各コマンドは、同様な処理毎に分類した何れかの同類コマンドに分類されている。
例えば、表示画面３１における「数値地形」タブのリボン３１２（図４参照）に表示される、「ＤＭ基本」として纏められている各コマンドと、「ＤＭ作画」として纏められている各コマンドが同類コマンドとして「数値地形Ｇ」に纏められている。前者の「ＤＭ基本」には、ＤＭ入力モード、測点一覧、標高値編集、ＣＡＤ測点登録、観測条件設定、ＤＭ属性設定、ＤＭマスター、の各コマンドが含まれ、後者の「ＤＭ作画」には、点名・標高値、斜面記号個別、建物野帳、電線方向、電柱支線、石段・階段、の各コマンドが含まれている。
また、同類コマンド「寸法Ｇ」には、「汎用作図」タブのリボン３１２に「寸法線」として纏めて表示される、直線、角度、直径・半径、弧長・円周、水平・垂直、寸法編集の各コマンドが含まれている。
更に、同類コマンド「編集Ｇ」には、「データ編集」タブのリボン３１２に「線編集」として纏めて表示される、線伸縮、延長止線、整合、線編集、及び、「文字編集」として纏めて表示される、アシスト、サーチ、整列、平行移動、文字編集の各コマンドが含まれる。
【００４１】
以上は、同一タブのリボン３１２に表示されるコマンド毎に纏められた同類コマンドであるが、複数タブのリボン３１２に表示されるコマンドを纏めた同類コマンドも存在する。
例えば、同類コマンド「その他１」には、「汎用作図」タブ、「データ編集」タブ、「専用作図」タブの各リボン３１２に表示されるコマンドが含まれている。
即ち、「汎用作図」タブでは、「曲線」として纏めて表示される各コマンドのうちの、手書きメモと、同タブの「点・領域」として纏めて表示されているコマンドのうちの、マスク、ハッチング・塗り、のコマンドが「その他１」に含まれている。また、「データ編集」タブでは、復帰、及び、「ＳＸＦ属性」のコマンドリストとして表示される、属性入力確認、属性マスター、属性一覧、属性複写、属性一括、の各コマンドが含まれている。更に、「専用作図」タブには、「チェック」として纏めて表示される各コマンドのうちの、朱書き、のコマンドが含まれる。
【００４２】
なお、本実施形態の同類コマンドデータ４３は上述の通りに分類されているが、他の分類でもよい。例えば、図４におけるメニューバー３１１の各タブ（ファイル、ホーム、共通等）に含まれる各コマンド毎に同類コマンドに分類してもよい。
また、各タブのリボン３１２において、纏めて表示されるグループ、例えば、図４に示した「ホーム」タブの「線図」「専用作図」「データ編集」に纏められている各コマンドを纏めて同類コマンドとしてもよい。
【００４３】
次に、このように構成された入力支援装置１によるコマンド予測処理の動作について説明する。
図８は、本発明におけるコマンド予測処理動作の内容を表したフローチャートである。
このコマンド予測処理の前提として、その前提としてプログラム部４１に格納されているＣＡＤプログラムが実行されているものとする。そして、ＣＡＤプログラムの実行時に、記憶部４０の所定フォルダから結合荷重データ４２２、履歴データ４２３がＲＡＭ１３に読み込まれていると共に、ユーザによって指定されたＣＡＤデータ４２１がファイル部４２ファイルからＲＡＭ１３に読み込まれているものとする。
なお、結合荷重データ４２２と履歴データ４２３の作成、更新はＲＡＭ１３に保存されたものを対象として説明するものとし、記憶部４０を対象とする場合にはその旨を記すものとする。
【００４４】
コマンド予測処理において、入力支援装置１の制御部１０は、最初に予測コマンドを決定するために、コマンド決定処理を行う（ステップ１）。
図９は、コマンド決定処理の内容を表したフローチャートである。
制御部１０は、ｓ個の入力コマンドα１〜αｓ（本実施形態ではｓ＝３なので、入力コマンドα１〜α３）を履歴データ４２３の最新の学習元データから取得する（ステップ１１）。
以下具体例として、図６の履歴データ４２３には、学習元データ１００までが保存されているものとして説明する。この場合、制御部１０は、最新の学習元データ１００から、ユーザが選択した最新のコマンド３つを読み取り、α１＝Ｃ、α２＝Ｂ、α３＝Ａを取得する。
【００４５】
次に、制御部１０は、取得した入力コマンドα１〜α３（＝ＣＢＡ）をニューラルネットワークに入力することで、各出力素子Ｏ１〜Ｏｎの出力値を算出する（ステップ１２）。すなわち、制御部１０は、取得した入力コマンドα１〜α３（＝ＣＢＡ）に対応する入力素子Ｉのそれぞれに入力値「１」を、それ以外の入力素子には入力値「０」を入力する。
そして、制御部１０は、この入力値と結合荷重データ４２２の結合荷重ｗ１１〜ｗｐｎと、結合荷重Ｗ１１〜Ｗｎｐとから、各出力素子Ｏ１〜Ｏｎの出力値を算出する。
【００４６】
制御部１０は、算出した各出力素子Ｏ１〜Ｏｎの出力値から候補コマンドを抽出する（ステップ１３）。すなわち、制御部１０は、出力値が候補条件である閾値Ｔｈ（本実施形態では０．６）以上である、出力素子に対応するコマンドを予測コマンドの候補コマンドとして抽出する。
制御部１０は、抽出した候補コマンドが所定数ｑ（本実施形態ではｑ＝５）以上であるか判断する（ステップ１４）。候補コマンドの候補数がｑ以上であれば（ステップ１４；Ｙ）、制御部１０は、出力値が大きい順にｑ個のコマンドを予測コマンドに決定し（ステップ１５）、メインルーチンにリターンする。
【００４７】
一方、抽出した候補コマンドが所定数ｑ未満である場合（ステップ１４；Ｎ）、制御部１０は、同類コマンドαｚを決定する（ステップ１６）。すなわち、制御部１０は、同類コマンドデータ４３により、入力コマンドα１〜αｓのうち、最新の選択コマンドであるコマンドα１と同一の同類コマンドに分類されているコマンド中から、任意の同類コマンドαｚを１つ決定する。
【００４８】
ついで制御部１０は、決定した同類コマンドαｚをステップ１１で取得した入力コマンドのα１に代え、入力コマンドαｚ、α２、α３を入力信号（入力値）の入力対象とし、ステップ１２と同様にして、再度各出力素子Ｏ１〜Ｏｎの出力値を算出する（ステップ１７）。
制御部１０は、再度算出した各出力素子Ｏ１〜Ｏｎの出力値が閾値Ｔｈ以上である出力素子に対応するコマンドを追加の候補コマンドから抽出する（ステップ１８）。
そして制御部１０は、追加の候補コマンドの数が不足数以上であるか否かを判断する（ステップ１９）。すなわち制御部１０は、すでに抽出済みの候補コマンド数をｑ０とした場合、ステップ１８で再度抽出した候補コマンド数が（ｑ−ｑ０）以上であるか否かを判断する。
再度抽出した候補コマンド数がｑ−ｑ０未満である場合（ステップ１９；Ｎ）、制御部１０は、ステップ１６に戻り更に同類コマンドαｚを決定し、抽出済みの全候補コマンドがｑ以上になるまで繰り返す。
【００４９】
一方、再度抽出したコマンド数が、ｑ−ｑ０以上、即ち、不足数以上である場合（ステップ１９；Ｙ）、制御部１０は、ステップ１５に移行する。すなわち、制御部１０は、抽出済みの全候補コマンドと、再度抽出した候補コマンドの出力値が大きい不足分の候補コマンドと合わせた全体でｑ個の候補コマンドを予測コマンドに決定し、ＲＡＭ１３に保存してメインルーチンにリターンする。
【００５０】
以上のコマンド決定処理により、ｑ個の予測コマンドが決定すると、制御部１０は、図４に示すように、表示画面３１の予測コマンド欄３１７に、コマンドボタンとして表示する（ステップ２）。
この予測コマンド欄３１７に表示されるｑ＝５個のコマンドの表示順は、同一の出力値算出における出力素子Ｏ１〜Ｏｎの出力値が大きいほど左側に表示される。すなわち、制御部１０は、再度の候補コマンド抽出（ステップ１８）で抽出された候補コマンドは、それ以前に抽出された候補コマンドよりも下位に表示する。
【００５１】
本実施形態では、候補コマンドを抽出する際に閾値Ｔｈを設定することで、予測精度の高いコマンドを候補コマンドとして抽出することができる。その一方で、閾値Ｔｈの設定により、候補コマンド数が不足する場合が生じるが、この場合であっても、同類コマンドαｚを使用した再度の候補コマンド抽出を行うことで、常に閾値Ｔｈ以上の候補コマンドｑ個を予測コマンドとして、予測コマンド欄３１７に表示することができる。
但し、学習元データが少ない初期段階などにおいては、再度の候補コマンド抽出を繰り返してもｑ個の予測コマンドが得られない可能性があるため、ステップ１６〜１９による再度の候補コマンドの抽出の回数を所定回数とする制限を設けるようにしてもよい。
【００５２】
そして制御部１０は、ユーザによるコマンドの選択を監視し（ステップ３）、ユーザが次のコマンドを選択するまで（ステップ３；Ｎ）の間は、ステップ２にもどりこの予測コマンドの表示を継続する。
なお、支援ボタン３１８の選択によって予測コマンド欄３１７が非表示になっている場合、制御部１０は、ｑ個の予測コマンドを表示画面３１には表示しないが、予測コマンドはそのままＲＡＭ１３に保存しておく。学習元データを作成するためと、その後支援ボタン３１８が選択された場合に直ちに予測コマンドを表示するためである。
【００５３】
ユーザが次のコマンドを選択すると（ステップ３；Ｙ）、制御部１０は、履歴データ４２３を更新する（ステップ４）。すなわち、制御部１０は、ユーザが新たに選択したコマンドを教師信号とし、ステップ１の予測コマンド決定処理で取得（ステップ１１）した入力コマンドα１〜αｓとの組みに、新たな履歴番号を付した学習元データとして履歴データ４２３に追加保存する。
具体的には、図９で例示したように、履歴データ４２３には、学習元データ１００までが保存されている状態で、ユーザが新たなコマンドＧを選択した場合、教師信号Ｇと入力コマンドＣＢＡの組みを新たな学習元データ１０１として保存する。
【００５４】
制御部１０は、この履歴データ更新（ステップ４）において、新たに保存した学習元データ１０１と同一の学習元データ（入力コマンドのグループが同じで、かつ教師信号が同じ場合）が履歴データ４２３に存在するか否かを判断し、存在する場合には当該学習データを削除し、存在しない場合には最も古い学習元データを削除する。
なお、上述したように学習元データを別途保存する場合には、同一の学習元データを履歴データ４２３から削除し、別途保存するファイル等に保存しておく。また、履歴データ４２３にフラグ欄を設ける場合には、新たに保存した学習元データのフラグを「０」とし、同一の学習元データのフラグを「１」に変更する。
【００５５】
次に制御部１０は、予測コマンドが選択されたか否かを判断する（ステップ５）。すなわち、制御部１０は、ユーザが新たに選択したコマンドが、ステップ２において予測コマンド欄３１７（図４参照）に表示した予測コマンドｑ個のうちの何れかであるか否かを判断する。
選択されたコマンドが予測コマンドでない場合（ステップ５；Ｎ）、制御部１０は、ニューラルネットワークにより予測コマンドの予測精度を上げるため、後述する学習処理を行う（ステップ６）。
一方、選択されたコマンドが予測コマンドのいずれかである場合（ステップ５；Ｙ）、又は、ステップ６の学習処理の後、制御部１０は、処理を終了するか判断する（ステップ７）。すなわち、制御部１０は、実行中のＣＡＤソフトの終了要求や、作成中のＣＡＤデータの保存要求があったか否かにより判断する。
終了要求や保存要求がなければ（ステップ７；Ｎ）、制御部１０は、ステップ１に戻り、次のコマンド予測処理を行う。
一方、ＣＡＤプログラムの終了要求又はＣＡＤデータの保存要求がされると処理終了と判断し（ステップ７；Ｙ）、制御部１０は、終了処理を行う（ステップ８）。すなわち、制御部１０は、ＲＡＭ１３に展開していたＣＡＤデータ４２１、結合荷重データ４２２、履歴データ４２３に、記憶部４０のファイル部４２に保存されている該当ファイルを更新して、処理を終了する。結合荷重データ４２２、履歴データ４２３については、所定作業フォルダも更新する。
【００５６】
図１０は、ニューラルネットワークに対する学習処理の内容を表したフローチャートである。
制御部１０は、最初に学習データを作成する（ステップ５１）。この学習データは、ニューラルネットワークの学習に使用する入力信号（入力値）と教師信号を、履歴データ４２３から作成する。
図１１は、図６に示した履歴データ４２３に基づいて作成した学習データを表したものである。以下、図６、図１１を参照して４００個の学習元データから学習データを作成する方法について説明する。
【００５７】
制御部１０は、最新の学習元データ１０１の入力コマンド、図６の例では入力コマンドＣＢＡを読み取り、学習データ１の入力コマンドとする。この入力コマンドＣＢＡと同一グループの入力コマンドの学習元データを抽出し、その教師信号を履歴番号順に並べる。図６の例では、枠の右側にグループ（Ｇ１）と記載された履歴番号１０１、１００、９５、９３、８０、…の学習元データを抽出し、履歴番号順に並べた教師信号がＧ、Ｃ、Ｅ、Ｂ、Ａ、…である。なお、学習元データ９４、８６は削除されているので抽出対象ではない。
そして、履歴番号が大きい（履歴が新しい）、所定数（本実施形態の場合５個）を、学習データ１の教師信号とする。図６の例では、履歴が新しい順に教師信号ＧＣＥＢＡが学習データの教師信号となる。
【００５８】
以上により学習データ１は、教師信号がＧＣＥＢＡ、入力コマンドがＣＢＡとなる。次に、制御部１０は、各教師信号と入力コマンドに対する入力値を決定する。入力コマンドは１コマンド当たりの入力値が「１」である。学習データ１の入力コマンドの場合、入力コマンドの後のカッコ内に入力信号の入力値を示すと、入力コマンドＣ（１）、Ｂ（１）、Ａ（１）である。なお、１コマンド当たり「１」なので、入力コマンドがＡＢＡあれば、Ａの入力値が「２」、Ｂの入力値が「１」である。
【００５９】
一方、学習データ１の、教師信号の値は、履歴番号が新しい順に１、０．９、０．８、０．７、０．６、となる。これは、本実施形態の場合（教師信号の数が５個）である。教師信号の数が５個の場合を含め、５以外である場合に、より細かく分け、またより粗く分けるようにしてもよい。
以上の操作を、入力コマンドが異なる学習元データ毎に行うことで、学習データ２、３、…を作成する。
図１１は、図６に基づいて作成した学習データ１、２、…と各入力信号と、教師信号の値を表したものである。
図１１における各学習データに付した番号は、図６に示した入力コマンドのグループ番号と一致させている。
なお、教師信号と異なり、入力コマンドは組合せに意義があり順番は関係ないので、図１１ではＡＢＣ順に並べてある。
【００６０】
学習データの作成が完了すると、制御部１０は、作成した各学習データ１、２、…を使用して、ニューラルネットワークの学習を行う（ステップ５２）。すなわち、制御部１０は、バックプロパゲーション（誤差逆伝播学習アルゴリズム）により、各学習データ１、２、…を使用して、各入力素子Ｉと各中間素子Ｍ間の結合荷重ｗ１１〜ｗ１ｐｎ、及び、各中間素子Ｍと各出力素子Ｏ間の結合荷重Ｗ１１〜Ｗｎｐを算出する。
バックプロパゲーションによる学習は、１つの学習データに対して最大２０回を限度として、各出力値が各教師信号と一致する結合荷重が得られるまで繰り返す。但し、２０回目の学習が終了しても各出力値が各教師信号と一致しない場合、もっとも教師信号に近い出力値となる、結合荷重ｗ、Ｗを採用するようにしている。
なお、１学習データに対する学習回数の最大数は例示であり、制御部１０の処理能力や全コマンド数に応じて他の回数とするようにしてもよい。
【００６１】
制御部１０は、ステップ５２の学習により新たな結合荷重ｗ１１〜ｗｐｎ、Ｗ１１〜Ｗｎｐを算出すると、当該結合荷重により、ＲＡＭ１３の結合荷重データ４２２を更新し（ステップ５３）、メインルーチンにリターンする。
【００６２】
本実施形態では、図１１に示すように、１学習データに対する教師信号を１つとするのではなく複数の教師信号を採用している。
この複数の教師信号は、同一の入力コマンドに対し、過去にユーザが選択したコマンドを新しい順に所定数だけ抽出し、１学習データに対する教師信号としている。
このように、１学習データに対して、複数の教師信号を使用することで、当該入力コマンドによるコマンド予測処理を行った場合の、各教師信号に対応する出力素子Ｏの出力値が大きくなるように、ニューラルネットワークの学習を行うことができる。
【００６３】
また、本実施形態の学習データは、複数の教師信号に対する値を同じにするのではなく、最も新しく選択されたコマンド（教師信号）の値を最大値「１」とし、他は、新しく選択されたコマンド（教師信号）から順番に古くなるほど小さな値にしている。
このように１学習データにおける複数の教師信号の値に差を設けることで、同一の入力データに対し、より最新に選択されたコマンドほど出力値が大きくなるように学習することが可能になる。
【００６４】
以上説明した実施形態では、予測コマンドが選択されなかった場合に（ステップ５；Ｎ）、ステップ６の学習処理を行い、何れかの予測コマンドが選択された場合には学習を行わないようにしている。これにより、過学習による処理の負担増を抑えることができる。
但し、予測コマンドのうち、出力値が最も大きかった予測コマンド（予測コマンド欄３１７の一番左側に表示されたコマンド）が選択された場合に学習を行わず、それ以外のコマンドが選択された場合に学習するようにしてもよい。これにより、制御部１０の学習量は増加するが、よりニューラルネットワークによる予測精度を上げることができる。
【００６５】
なお、本実施形態については、ニューラルネットワークの学習に関して次のように構成することも可能である。
（１）構成１
所定のコマンド数ｎに対応したｎ個の入力素子を有する入力層と、ｐ個の中間素子を有する中間層と、ｎ個の出力素子を有する出力層を有するニューラルネットワークを使用し、ユーザが選択したｓ個の選択コマンドを入力コマンドとして次に選択するコマンドを予測して提示する入力支援装置であって、ユーザが選択した前記選択コマンドの履歴データを保存する履歴保存手段と、前記履歴データからｓ個の選択コマンドを入力コマンドとして取得する入力コマンド取得手段と、前記取得した入力コマンドを入力素子に対する入力として前記各出力素子の出力値を算出し、算出した各出力素子の出力値が閾値Ｔｈを超える出力素子に対応するコマンドを候補コマンドとする候補コマンドを決定する候補コマンド決定手段と、前記決定した候補コマンドのうち出力値が高いｑ個の候補コマンドを予測コマンドとして画面表示する予測コマンド表示手段と、前記取得した入力コマンドを入力信号とし、当該入力コマンドに対応して選択された複数の選択コマンドを教師信号とする学習データを、前記履歴データから作成する学習データ作成手段と、前記作成した学習データにより、前記ニューラルネットワークの学習を行う学習手段と、を具備したことを特徴とする入力支援装置。
（２）構成２
前記学習手段は、前記複数の教師信号の値として、各教師信号に対応する選択コマンドの履歴が新しいほど大きな値とする、ことを特徴とする構成１に記載の入力支援装置。
（３）構成３
前記履歴保存手段は、ユーザが選択した当該選択コマンドを教師信号とし、当該教師信号と、当該選択コマンドが選択される直前に前記入力コマンド取得手段が取得した入力コマンドとの組みからなる学習元データを順次履歴データとして保存し、前記学習データ作成手段は、入力コマンド毎に、当該入力コマンドが同じである学習元データから取得した各教師信号により学習データを作成する、ことを特徴とする構成１又は２に記載の入力支援装置。
（４）構成４
前記履歴保存手段は、所定数の学習元データを保存対象とし、新たな学習元データを保存する際に、過去に保存された同一の学習元データを削除する、ことを特徴とする構成３に記載の入力支援装置。
（５）構成５
コンピュータに、所定のコマンド数ｎに対応したｎ個の入力素子を有する入力層と、ｐ個の中間素子を有する中間層と、ｎ個の出力素子を有する出力層を有するニューラルネットワークを使用し、ユーザが選択したｓ個の選択コマンドを入力コマンドとして次に選択するコマンドを予測して提示する入力支援を実行させる入力支援プログラムであって、ユーザが選択した前記選択コマンドの履歴データを保存する履歴保存機能と、前記履歴データからｓ個の選択コマンドを入力コマンドとして取得する入力コマンド取得機能と、前記取得した入力コマンドを入力素子に対する入力として前記各出力素子の出力値を算出し、算出した各出力素子の出力値が閾値Ｔｈを超える出力素子に対応するコマンドを候補コマンドとする候補コマンドを決定する候補コマンド決定機能と、前記決定した候補コマンドのうち出力値が高いｑ個の候補コマンドを予測コマンドとして画面表示する予測コマンド表示機能と、前記取得した入力コマンドを入力信号とし、当該入力コマンドに対応して選択された複数の選択コマンドを教師信号とする学習データを、前記履歴データから作成する学習データ作成機能と、前記作成した学習データにより、前記ニューラルネットワークの学習を行う学習機能と、を前記コンピュータに実現させることを特徴とする入力支援プログラム。
【００６６】
以上の構成によれば、取得した入力コマンドを入力信号とし、当該入力コマンドに対応して選択された複数の選択コマンドを教師信号とする学習データを履歴データから作成するので、適切な教師信号によるニューラルネットワークの学習を行うことができる。
【符号の説明】
【００６７】
Ｉ１〜Ｉｎ  入力素子
Ｍ１〜Ｍｐ  中間素子
Ｏ１〜Ｏｎ  出力素子
１  入力支援装置
１０  制御部
１１  ＣＰＵ
１２    ＲＯＭ
１３    ＲＡＭ
２０  入力部
３０  出力部
４０  記憶部
４１  プログラム部
４２  ファイル部
４２１  ＣＡＤデータ
４２２  結合荷重データ
４２３  履歴データ
４３  同類コマンドデータ
５０  通信部
【図１】
2018018458.tif 000003
【図２】
2018018458.tif 000004
【図３】
2018018458.tif 000005
【図４】
2018018458.tif 000006
【図５】
2018018458.tif 000007
【図６】
2018018458.tif 000008
【図７】
2018018458.tif 000009
【図８】
2018018458.tif 000010
【図９】
2018018458.tif 000011
【図１０】
2018018458.tif 000012
【図１１】
2018018458.tif 000013