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

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

▶ サイボウズ株式会社の特許一覧 ▶ サイボウズ・ラボ株式会社の特許一覧

特許7736760設定作業支援システム、設定作業支援方法、及びプログラム
<>
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図1
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図2
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図3
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図4
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図5
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図6
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図7
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図8
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図9
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図10
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図11
  • 特許-設定作業支援システム、設定作業支援方法、及びプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-09-01
(45)【発行日】2025-09-09
(54)【発明の名称】設定作業支援システム、設定作業支援方法、及びプログラム
(51)【国際特許分類】
   G06F 16/242 20190101AFI20250902BHJP
   G06F 8/34 20180101ALI20250902BHJP
【FI】
G06F16/242
G06F8/34
【請求項の数】 11
(21)【出願番号】P 2023189430
(22)【出願日】2023-11-06
(65)【公開番号】P2025077329
(43)【公開日】2025-05-19
【審査請求日】2023-11-06
(73)【特許権者】
【識別番号】500022557
【氏名又は名称】サイボウズ株式会社
(73)【特許権者】
【識別番号】506118098
【氏名又は名称】サイボウズ・ラボ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】立山 尚樹
(72)【発明者】
【氏名】中谷 秀洋
【審査官】原 秀人
(56)【参考文献】
【文献】中国特許出願公開第116880818(CN,A)
【文献】日高 亜友,ラズパイPico用オーディオ・ドライバを作りながら学ぶ Windows 11時代のデバイス・ドライバ開発,Interface 第49巻 第11号 ,日本,CQ出版株式会社,2023年11月01日,第49巻第11号,pp. 202-208
【文献】ChatGPTは何者か ~ChatGPTの基礎解説と用途の可能性~ What is ChatGPT?,PC-Webzin,日本,PC-Webzine編集局,2023年04月25日,第375巻,pp. 6-10
【文献】相澤 裕介,kintoneファーストガイド 2022年版 働き方改革を推進し、テレワークを実現! ,初版,日本,株式会社カットシステム,2021年10月25日,pp. 102-117
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 8/34
(57)【特許請求の範囲】
【請求項1】
ノーコード又はローコードで作成されるデータベースの設定ユーザが指定するための設定操作であって、前記ユーザがテキストを入力することを除く前記設定操作を特定する設定操作特定部と、
訓練用の前記設定に基づいて作成された訓練データが学習された機械学習モデルを記憶する機械学習モデル記憶部と、
前記設定操作によって指定された前記設定と、前記機械学習モデルと、に基づいて、次の前記設定操作によって指定される前記設定を前記ユーザに提案することによって、前記ユーザによる前記データベースの設定作業を支援する設定作業支援部と、
を含む設定作業支援システム。
【請求項2】
前記設定は、前記データベースにおけるフィールドの設定であるフィールド設定であり、
前記機械学習モデルには、訓練用の前記フィールド設定に基づいて作成された前記訓練データが学習されており、
前記設定作業支援部は、前記設定操作によって指定された前記フィールド設定と、前記機械学習モデルと、に基づいて、次の前記設定操作によって指定される前記フィールド設定を前記ユーザに提案することによって、前記設定作業を支援する、
請求項に記載の設定作業支援システム。
【請求項3】
前記フィールド設定は、前記フィールドのタイプであるフィールドタイプであり、
前記設定作業支援部は、前記設定操作によって指定された前記フィールドタイプと、前記機械学習モデルと、に基づいて、次の前記設定操作によって指定される前記フィールドタイプを前記ユーザに提案することによって、前記設定作業を支援する、
請求項に記載の設定作業支援システム。
【請求項4】
前記フィールド設定は、前記フィールドのレイアウトであるフィールドレイアウトであり、
前記設定作業支援部は、前記設定操作によって指定された前記フィールドレイアウトと、前記機械学習モデルと、に基づいて、次の前記設定操作によって指定される前記フィールドレイアウトを前記ユーザに提案することによって、前記設定作業を支援する、
請求項又はに記載の設定作業支援システム。
【請求項5】
前記機械学習モデルには、訓練用の前記データベースに基づいて作成された前記訓練データが学習されており、
前記設定作業支援部は、前記設定操作によって指定された前記設定と、前記機械学習モデルと、に基づいて、前記訓練用のデータベースを前記ユーザに提案することによって、前記設定作業を支援する、
請求項1~3の何れかに記載の設定作業支援システム。
【請求項6】
前記機械学習モデルには、訓練用の前記データベースに基づいて作成された前記訓練データが学習されており、
前記設定作業支援部は、前記設定操作によって指定された前記設定と、前記機械学習モデルと、に基づいて、設定中の前記データベースのクラスタリングを実行し、当該クラスタリングの実行結果に基づいて、前記設定作業を支援する、
請求項1~3の何れかに記載の設定作業支援システム。
【請求項7】
前記機械学習モデルには、訓練用の前記設定操作によって指定された前記設定と、当該訓練用の設定操作が行われた順序と、を示す前記訓練データが学習されており、
前記設定作業支援部は、前記設定操作によって指定された前記設定と、当該設定操作が行われた順序と、前記機械学習モデルと、に基づいて、前記設定作業を支援する、
請求項1~3の何れかに記載の設定作業支援システム。
【請求項8】
前記設定作業支援システムは、前記ユーザの属性を示すユーザ属性データを取得するユーザ属性データ取得部を更に含み、
前記設定作業支援部は、前記設定操作と、前記機械学習モデルと、前記ユーザ属性データと、に基づいて、前記設定作業を支援する、
請求項1~の何れかに記載の設定作業支援システム。
【請求項9】
前記設定作業支援システムは、前記ユーザが過去の前記設定操作で行った前記設定である過去設定を示す過去設定データを取得する過去設定データ取得部を更に含み、
前記設定作業支援部は、前記設定操作と、前記機械学習モデルと、前記過去設定データと、に基づいて、前記設定作業を支援する、
請求項1~の何れかに記載の設定作業支援システム。
【請求項10】
ノーコード又はローコードで作成されるデータベースの設定ユーザが指定するための設定操作であって、前記ユーザがテキストを入力することを除く前記設定操作を特定し、
前記設定操作によって指定された前記設定と、訓練用の前記設定に基づいて作成された訓練データが学習された機械学習モデルと、に基づいて、次の前記設定操作によって指定される前記設定を前記ユーザに提案することによって、前記ユーザによる前記データベースの設定作業を支援する、
設定作業支援方法。
【請求項11】
ノーコード又はローコードで作成されるデータベースの設定ユーザが指定するための設定操作であって、前記ユーザがテキストを入力することを除く前記設定操作を特定する設定操作特定部、
前記設定操作によって指定された前記設定と、訓練用の前記設定に基づいて作成された訓練データが学習された機械学習モデルと、に基づいて、次の前記設定操作によって指定される前記設定を前記ユーザに提案することによって、前記ユーザによる前記データベースの設定作業を支援する設定作業支援部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、設定作業支援システム、設定作業支援方法、及びプログラムに関する。
【背景技術】
【0002】
従来、ノーコード又はローコードで作成されるデータベースが知られている。例えば、非特許文献1には、ノーコード又はローコードで作成されるデータベースの一例であるアプリのヘルプページが記載されている。非特許文献1のアプリでは、ユーザは、フィールド等の設定を自由に指定できる。ユーザは、予め用意されたサンプルのアプリの設定を、自身の好みに応じて変更することもできる。
【先行技術文献】
【非特許文献】
【0003】
【文献】「アプリとは」,インターネット,2023年10月26日検索,online,https://jp.cybozu.help/k/ja/user/basic/app_tutorial.html
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1のアプリでは、ユーザがどのような設定を指定すればよいか分からないことがある。例えば、ユーザは、アプリにおけるフィールドのタイプであるフィールドタイプの指定を迷うことがある。この点は、非特許文献1のアプリに限られず、ノーコード又はローコードで作成される他のデータベースも同様である。ノーコード又はローコードで作成されるデータベースは、ユーザが手軽に利用できる一方で、ユーザがどのような設定を指定すればよいか分からないことがある。このため、ノーコード又はローコードで作成されるデータベースの設定作業を行うユーザの支援が求められている。
【0005】
本開示の目的の1つは、ノーコード又はローコードで作成されるデータベースの設定作業を支援することである。
【課題を解決するための手段】
【0006】
本開示の一側面に係る設定作業支援システムは、ノーコード又はローコードで作成されるデータベースの設定のためにユーザが行った設定操作を特定する設定操作特定部と、訓練用の前記設定に基づいて作成された訓練データが学習された機械学習モデルを記憶する機械学習モデル記憶部と、前記設定操作と、前記機械学習モデルと、に基づいて、前記ユーザによる前記データベースの設定作業を支援する設定作業支援部と、を含む。
【発明の効果】
【0007】
本開示によれば、ノーコード又はローコードで作成されるデータベースの設定作業を支援できる。
【図面の簡単な説明】
【0008】
図1】設定作業支援システムのハードウェア構成の一例を示す図である。
図2】アプリ画面の一例を示す図である。
図3】設定画面の一例を示す図である。
図4】設定画面の一例を示す図である。
図5】設定作業支援システムで実現される機能の一例を示す図である。
図6】訓練データベースの一例を示す図である。
図7】トピックデータベースの一例を示す図である。
図8】アプリデータベースの一例を示す図である。
図9】設定作業支援システムで実行される処理の一例を示す図である。
図10】変形例の設定作業支援システムで実現される機能の一例を示す図である。
図11】変形例2の設定画面の一例を示す図である。
図12】変形例4の設定作業支援システムで実行される処理の一例を示す図である。
【発明を実施するための形態】
【0009】
[1.ハードウェア構成]
本開示に係る設定作業支援システム、設定作業支援方法、及びプログラムの実施形態の一例を説明する。図1は、設定作業支援システムのハードウェア構成の一例を示す図である。例えば、設定作業支援システム1は、学習端末10、サーバ20、及びユーザ端末30を含む。学習端末10、サーバ20、及びユーザ端末30の各々は、インターネット又はLAN等のネットワークNに接続される。
【0010】
学習端末10は、後述の機械学習モデルの学習を行うコンピュータである。例えば、学習端末10は、パーソナルコンピュータ、タブレット端末、又はスマートフォンである。例えば、学習端末10は、制御部11、記憶部12、通信部13、操作部14、及び表示部15を含む。制御部11は、少なくとも1つのプロセッサを含む。記憶部12は、RAM等の揮発性メモリと、フラッシュメモリ等の不揮発性メモリと、の少なくとも一方を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。操作部14は、マウス又はタッチパネル等の入力デバイスである。表示部15は、液晶又は有機ELのディスプレイである。
【0011】
サーバ20は、サーバコンピュータである。例えば、サーバ20は、制御部21、記憶部22、及び通信部23を含む。制御部21、記憶部22、及び通信部23のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
【0012】
ユーザ端末30は、ユーザのコンピュータである。例えば、ユーザ端末30は、パーソナルコンピュータ、タブレット端末、又はスマートフォンである。例えば、ユーザ端末30は、制御部31、記憶部32、通信部33、操作部34、及び表示部35を含む。制御部31、記憶部32、通信部33、操作部34、及び表示部35のハードウェア構成は、それぞれ制御部11、記憶部12、通信部13、操作部14、及び表示部15と同様であってよい。
【0013】
なお、記憶部12,22,32に記憶されるプログラムは、ネットワークNを介して供給されてもよい。学習端末10、サーバ20、及びユーザ端末30の各々のハードウェア構成は、図1の例に限られない。例えば、学習端末10、サーバ20、及びユーザ端末30の少なくとも1つは、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)と、外部機器と直接的に接続するための入出力部(例えば、USB端子)と、の少なくとも一方を含んでもよい。情報記憶媒体に記憶されたプログラムが、読取部及び入出力部の少なくとも一方を介して、学習端末10、サーバ20、及びユーザ端末30の少なくとも1つに供給されてもよい。
【0014】
また、設定作業支援システム1は、少なくとも1つのコンピュータを含めばよい。設定作業支援システム1に含まれるコンピュータは、図1の例に限られない。例えば、設定作業支援システム1は、学習端末10及びサーバ20だけを含んでもよい。この場合、ユーザ端末30は、設定作業支援システム1の外部に存在する。設定作業支援システム1は、サーバ20だけを含んでもよい。この場合、学習端末10及びユーザ端末30は、設定作業支援システム1の外部に存在する。設定作業支援システム1は、サーバ20と、他のサーバコンピュータと、を含んでもよい。
【0015】
[2.設定作業支援システムの概要]
本実施形態では、ユーザは、ノーコード又はローコードで作成されるデータベースの設定作業を行う。ノーコードで作成されるデータベースとは、データベースの開発基盤において、ユーザがデータベース言語又はプログラミング言語等のコードを入力する必要がないデータベースである。例えば、ユーザがデータベースの設定を指定した場合に、設定作業支援システム1は、当該設定に基づいて、データベースを作成する。データベースの作成に必要な全てのコードは、設定作業支援システム1側で用意されている。
【0016】
ローコードで作成されるデータベースとは、データベースの開発基盤において、ユーザが必要最低限のコードを入力すれば済むデータベースである。例えば、ユーザが、必要最低限のコードを入力し、かつ、データベースの設定を指定した場合に、設定作業支援システム1は、当該必要最低限のコードと、当該設定と、に基づいて、データベースを作成する。データベースの作成に必要な残りのコードは、設定作業支援システム1側で用意されている。
【0017】
なお、データベースの開発に携わる当業者は、出願時の技術常識によって、ノーコード及びローコードの各々の意味を理解可能である。ノーコード及びローコードの各々は、出願時の技術常識によって当業者が理解可能な公知の意味であってよい。以降の説明でデータベースと記載した箇所は、ノーコード又はローコードで作成されるデータベースを意味する。データベースの作成は、データベースの開発又は構築ということもできる。
【0018】
本実施形態では、グループウェアのアプリがデータベースに相当する場合を例に挙げる。グループウェアは、ユーザの業務を支援するプログラムである。グループウェアは、クラウド型又はオンプレミス型の何れであってもよい。アプリは、データベースとしての機能だけではなく、業務支援に関係する他の機能も有する。例えば、アプリは、コミュニケーション機能、ファイル管理機能、メール管理機能、及びその他の機能の少なくとも1つを有する。アプリが有する機能は、公知の機能であってよい。
【0019】
以降の説明でアプリと記載した箇所は、データベースと読み替えることができる。本実施形態では、アプリがノーコードで作成される場合を例に挙げるが、アプリは、ローコードで作成されてもよい。例えば、ユーザは、グループウェアにログインすると、自身が所属する会社等の組織のアプリを利用できる。ユーザが任意のアプリを選択すると、ユーザ端末30は、当該アプリを示すアプリ画面を、表示部35に表示させる。
【0020】
図2は、アプリ画面の一例を示す図である。本実施形態では、アプリの一例として、ウェブサイトに対するアクセスを管理するアプリを説明する。例えば、図2の上側のように、アプリ画面SC1は、アプリにおける1つ1つのデータの単位であるレコードのリストを示すレコードリストL10を含む。レコードリストL10は、レコードを構成する1つ1つの項目であるフィールドの値を示す。フィールドは、セル等の他の名前で呼ばれることもある。レコードリストL10の1行目の行は、フィールドの名前であるフィールド名を示す。
【0021】
例えば、ユーザがレコードリストL10から任意のレコードを選択すると、図2の下側のように、ユーザ端末30は、当該レコードの詳細を示すアプリ画面SC1を、表示部35に表示させる。ユーザは、図2の下側のアプリ画面SC1から、当該レコードのフィールドのタイプであるフィールドタイプに応じた値を入力できる。フィールドタイプは、フィールドのデータ型ということもできる。フィールドタイプは、公知のアプリで利用されているタイプであってよい。例えば、フィールドタイプは、数値、計算、文字列(1行)、文字列(複数行)、日時、リンク、又はルックアップであってもよい。
【0022】
例えば、フィールド名「セッション数」及びフィールド名「ページビュー数」の各々のフィールドのフィールドタイプは、数値である。ユーザは、これらのフィールドに任意の数値を入力できる。フィールド名「1セッションあたりのページビュー数」のフィールドのフィールドタイプは、計算である。当該フィールドには、フィールド名「ページビュー数」のフィールドに入力された数値が、フィールド名「セッション数」のフィールドに入力された数値で割られることを示す計算式が設定されている。他のフィールドも、何らかのフィールドタイプが定められている。
【0023】
本実施形態では、設定作業支援システム1は、図2のアプリを作成するユーザの設定作業を支援する。以降の説明では、図2のアプリがまだ作成されていないものとする。即ち、ユーザが、これから図2のアプリを新たに作成するものとする。例えば、ユーザが、グループウェアにログインしてアプリの作成のための操作を行うと、ユーザ端末30は、ユーザがアプリの設定を指定するための設定画面を、表示部35に表示させる。
【0024】
図3及び図4は、設定画面の一例を示す図である。例えば、設定画面SC2は、ユーザがアプリ画面SC1に配置可能なフォームの一覧を示す表示領域A20を含む。ユーザは、表示領域A20に表示された画像を、カーソルCで表示領域A21に移動させることによって、当該画像が示すフィールドタイプのフィールドを指定できる。ユーザは、設定画面SC2から、フィールドタイプ以外の他の設定(例えば、フィールド名、フォームのレイアウト、フォームの幅、グラフ、又はアクセス権限の設定)を指定できる。
【0025】
以降、フィールドの設定を、フィールド設定という。フィールド設定と、フィールド設定以外の他の設定と、を区別する必要がない時には、単に設定という。例えば、図3の上側のように、ユーザが、フィールドタイプ「数値」を示す画像を、表示領域A20から表示領域A21に移動させると、図3の下側のように、フィールドタイプ「数値」のフィールドのフォームが表示領域A21に配置される。表示領域A21のフォームのレイアウトが、図2の下側のアプリ画面SC1のフォームのレイアウトになる。ユーザは、所望の設定になるように、表示領域A20から表示領域A21に次々と画像を移動させる。
【0026】
本実施形態では、設定作業支援システム1は、訓練用のアプリの設定が学習された機械学習モデルに基づいて、ユーザによるアプリの設定作業を支援する。機械学習モデルの学習方法の詳細は、後述する。ここでは、機械学習モデルには、訓練用のアプリのフィールド設定が学習されているものとする。例えば、機械学習モデルは、ユーザが表示領域A21に配置したフォームのフィールドタイプに基づいて、ユーザが次にフォームを配置するフィールドタイプを予測する。
【0027】
例えば、図4の上側のように、ユーザが、フィールドタイプ「数値」を示す画像を、表示領域A20から表示領域A21に移動させたとする。フィールドタイプ「数値」のフィールドが2つ存在する場合に、機械学習モデルは、ユーザが次にフォームを配置するフィールドタイプ(おすすめのフィールドタイプ)を予測する。機械学習モデルが、ユーザが次にフィールドタイプ「計算」のフォームを配置すると予測したとすると、図4の下側のように、ユーザ端末30は、プレースホルダ機能を利用して、フィールドタイプ「計算」のフォームを表示領域A21に表示させる。ユーザ端末30は、当該フォームを提案するメッセージを、表示領域A21に表示させてもよい。
【0028】
例えば、ユーザが、表示領域A21に表示されたフィールドタイプ「計算」のフォームを選択すると、ユーザ端末30は、当該フォームを表示領域A21に配置する。ユーザが、表示領域A21に表示されたフィールドタイプ「計算」のフォームを選択しなかった場合には、ユーザ端末30は、表示領域A21から、当該フォームを消去する。当該フォームを提案するメッセージが表示領域A21に表示される場合には、ユーザ端末30は、当該メッセージを消去する。
【0029】
例えば、ユーザが、アプリの何らかの設定を指定したり、アプリの何らかの設定を削除したりするたびに、機械学習モデルは、自身に学習済みの訓練用のアプリの設定に基づいて、ユーザが次に指定する設定を予測する。ユーザ端末30は、ユーザが作成中のアプリの設定を完了するまで、機械学習モデルの予測結果を設定画面SC2に表示させる。本実施形態の設定作業支援システム1は、このような機械学習モデルに基づいて、ユーザによるアプリの設定作業を支援できるようになっている。以降、設定作業支援システム1の詳細を説明する。
【0030】
[3.設定作業支援システムで実現される機能]
図5は、設定作業支援システム1で実現される機能の一例を示す図である。
【0031】
[3-1.学習端末で実現される機能]
例えば、学習端末10は、機械学習モデル記憶部100、データベース記憶部101、及び学習部102を含む。機械学習モデル記憶部100及びデータベース記憶部101は、記憶部12により実現される。学習部102は、制御部11により実現される。
【0032】
[機械学習モデル記憶部]
機械学習モデル記憶部100は、機械学習モデルMを記憶する。機械学習モデルMは、機械学習の手法に基づいて作成されたモデルである。機械学習モデルMは、任意のタイプのモデルであってよい。例えば、機械学習モデルMは、教師有り学習、半教師有り学習、又は教師無し学習の何れのモデルであってもよい。
【0033】
本実施形態では、機械学習モデルMが、LDA(Latent Dirichlet allocation)の手法によって作成されたモデルである場合を例に挙げる。LDAは、主にクラスタリングの目的で利用されるトピックモデルの一種である。トピックモデルは、文章のトピックを特定するためのモデルである。トピックモデルは、同じトピックの文章同士が同じクラスタに属するように、クラスタチングを実行する。クラスタ自体を、トピックということもある。トピックモデルは、公知の手法が利用されたモデルであってよい。機械学習モデルMは、LDA以外の他のトピックモデルであってもよい。例えば、LSA(Latent Semantic Analysis)、NMF(Non-Negative Matrix Factorization)、又はHDP(Hierarchical Dirichlet Process)であってもよい。
【0034】
なお、機械学習モデルMは、トピックモデルに限られない。例えば、機械学習モデルMは、公知の種々の手法のタイプであってよい。本実施形態では、クラスタリングのために機械学習モデルMが利用されるので、機械学習モデルMは、クラスタリングで利用される他の手法によって作成されてもよい。例えば、機械学習モデルMは、k-Meansクラスタリング、階層的クラスタリング、DBSCAN(Density-Based Spatial Clustering of Applications with Noise)、又は他の手法によって作成されたモデルであってもよい。例えば、機械学習モデルMは、ニューラルネットワークであってもよい。機械学習モデルMは、クラスタリング以外の他の処理を実行してもよい。他の処理の一例は、後述の変形例で説明する。
【0035】
例えば、機械学習モデルMは、学習によって調整されるパラメータと、埋め込み表現の計算等のためのプログラムと、を含む。機械学習モデルMのパラメータは、機械学習モデルMのプログラムによって参照される。例えば、パラメータは、重み係数及びバイアスである。機械学習モデルMのプログラムは、機械学習モデルMの内部処理を示すコードを含む。例えば、機械学習モデルMのプログラムは、埋め込み表現を計算して出力層に対するデータを生成する中間層と、当該データに基づいて最終的な出力を行う出力層と、を含む。機械学習モデルMのプログラム及びパラメータは、公知の種々のプログラム及びパラメータであってよい。機械学習モデル記憶部100は、学習時の一連の処理を示す学習プログラム等の他のデータを記憶してもよい。学習時に計算される損失関数の計算式も学習プログラムに示されているものとする。
【0036】
[データベース記憶部]
データベース記憶部101は、機械学習モデルMの学習に必要なデータを記憶する。例えば、データベース記憶部101は、学習に必要な訓練データベースDB1と、学習の結果として取得されるトピックデータベースDB2と、も記憶する。
【0037】
図6は、訓練データベースDB1の一例を示す図である。訓練データベースDB1は、機械学習モデルMの学習に必要な訓練データが格納されたデータベースである。本実施形態では、教師無し学習の一種であるLDAが機械学習モデルMに相当するので、訓練データは、アノテーションされていないものとする。教師有り学習又は半教師有り学習の機械学習モデルMが利用される場合には、訓練データは、アノテーションされている。訓練データは、手入力によって用意されてもよいし、公知のツールによって用意されてもよい。
【0038】
例えば、訓練データは、訓練用のアプリの設定に基づいて作成される。訓練用のアプリは、訓練データの生成で利用されるアプリである。例えば、訓練用のアプリは、機械学習モデルMを作成する作成者(例えば、ユーザにグループウェアを提供する会社の担当者)が用意した仮想のアプリであってもよいし、実際にグループウェアで利用されているアプリであってもよい。訓練データは、訓練用のアプリの任意の設定を示すことができる。本実施形態では、訓練データは、訓練用のアプリのフィールド設定を示すものとする。
【0039】
例えば、訓練データは、複数のフィールドタイプの各々と、訓練用のアプリにおける当該フィールドタイプのフィールドの数と、を示す。即ち、訓練データは、フィールドタイプごとに、訓練用のアプリにおける当該フィールドタイプのフィールドの数を示す。例えば、フィールドタイプの数をn(nは自然数)とすると、訓練データは、n次元のベクトルで表現される。ベクトルの各次元の要素は、当該次元に対応するフィールドタイプのフィールドの数である。
【0040】
図6の例では、1つ目の訓練用のアプリは、フィールドタイプ「数値」、フィールドタイプ「計算」、フィールドタイプ「文字列1行」、フィールドタイプ「文字列複数行」、及びフィールドタイプ「日付」の各々のフィールドの数が、3個、1個、0個、2個、0個である。訓練データには、他のフィールドタイプの数も示される。2つ目以降の訓練用のアプリも同様に、訓練データには、各フィールドタイプのフィールドの数が示される。
【0041】
なお、訓練データは、任意の形式であってよい。訓練データの形式は、ベクトルに限られない。例えば、訓練データは、配列、行列、複数の数値の組み合わせ、単一の数値、文字、又はその他の記号で表現されてもよい。図6の例であれば、訓練用のアプリにおけるフィールドの各フィールドタイプの数が、配列等の他の形式で訓練データに示されていてもよい。
【0042】
また、訓練データがアノテーションされる場合には、訓練データは、学習時に機械学習モデルMに入力される入力部分と、学習時に正解となる出力部分と、を含む。入力部分及び出力部分の組み合わせは、機械学習モデルMが支援する設定作業に応じた組み合わせであればよい。例えば、訓練データの入力部分は、訓練用のアプリのフィールド設定を示す。訓練データの出力部分は、訓練用のアプリが属するクラスタを示す。クラスタは、ラベルということもできる。
【0043】
図7は、トピックデータベースDB2の一例を示す図である。トピックデータベースDB2は、機械学習モデルMの学習が完了した場合に取得された個々のトピックを示すトピックデータが格納されたデータベースである。例えば、トピックデータベースDB2には、個々のトピックの識別用のIDであるトピックIDと、トピックデータと、が格納される。トピックの個数は、機械学習モデルMの作成者が指定してもよいし、機械学習モデルMの学習のためのプログラムによって決定されてもよい。
【0044】
図7の例では、個々のトピックのトピックデータには、当該トピックに属する訓練用のアプリにおける各フィールドタイプの利用率が示されている。あるフィールドタイプの利用率は、当該フィールドタイプのフィールドが利用されている訓練用のアプリの数を、トピックに属する訓練用のアプリの総数で割った値である。例えば、あるフィールドタイプの利用率が90%である場合には、当該フィールドタイプのフィールドが、トピックにおける90%の訓練用のアプリで利用されていることを示す。
【0045】
なお、データベース記憶部101が記憶するデータは、本実施形態の例に限られない。データベース記憶部101は、機械学習モデルMの学習に必要なデータを記憶すればよい。例えば、データベース記憶部101は、訓練用のアプリの各種データが格納されたデータベースを記憶してもよい。当該データベースには、訓練用のアプリの各種設定を示すデータが格納されているものとする。訓練データは、当該データベースに基づいて作成されてもよい。
【0046】
[学習部]
学習部102は、訓練データベースDB1に格納された複数の訓練データの各々に基づいて、機械学習モデルMの学習を実行する。本実施形態では、学習部102が、教師無し学習のアルゴリズムに基づいて、機械学習モデルMの学習を実行する場合を例に挙げる。学習のアルゴリズムは、先述した公知のアルゴリズムであってよい。学習部102は、教師有り学習又は半教師有り学習又は教師無し学習のアルゴリズムに基づいて、機械学習モデルMの学習を実行してもよい。
【0047】
例えば、学習部102は、教師無し学習のアルゴリズムに基づいて、互いに似た特徴を有する訓練データが同じクラスタに属するようにパラメータを調整することによって、機械学習モデルMを学習させる。本実施形態では、学習部102は、公知のLDAのアルゴリズムに基づいて、機械学習モデルMの学習を実行する。LDA以外の他のトピックモデルが利用される場合には、学習部102は、公知の他のトピックモデルのアルゴリズムに基づいて、機械学習モデルMの学習を実行する。トピックモデル以外の他の機械学習の手法が利用される場合には、学習部102は、他の機械学習の手法のアルゴリズムに基づいて、機械学習モデルMの学習を実行する。
【0048】
本実施形態では、学習部102は、データベース記憶部101に記憶された学習プログラムを実行することによって、学習の一連の処理を実行する。学習部102は、学習済みの機械学習モデルMを、データベース記憶部101に記録する。データベース記憶部101は、学習前の機械学習モデルMと、学習済みの機械学習モデルMと、の両方を記憶してもよい。学習部102は、サーバ20に対し、学習済みの機械学習モデルMを送信する。サーバ20に送信された学習済みの機械学習モデルMは、ユーザの利用に供される。
【0049】
例えば、学習部102は、学習済みの機械学習モデルMの処理結果に基づいて、トピックデータベースDB2を生成してデータベース記憶部101に記録する。学習部102は、トピックごとに、当該トピックに属する訓練用のアプリのフィールド設定に基づいて、各フィールドタイプの利用率を計算することによって、トピックデータベースDB2を生成する。学習部102は、サーバ20に対し、トピックデータベースDB2を送信する。サーバ20に送信されたトピックデータベースDB2は、ユーザの利用に供される。
【0050】
なお、教師有り学習又は半教師有り学習のモデルが利用される場合には、学習部102は、これらのモデルのアルゴリズムに基づいて、訓練データの入力部分が機械学習モデルMに入力された場合に、訓練データの出力部分が機械学習モデルMから出力されるように、機械学習モデルMのパラメータを調整することによって、機械学習モデルMの学習を実行すればよい。例えば、学習部102は、誤差逆伝播法又は勾配降下法といった公知のアルゴリズムに基づいて、機械学習モデルMの学習を実行する。
【0051】
[3-2.サーバで実現される機能]
例えば、サーバ20は、機械学習モデル記憶部200、データベース記憶部201、設定操作特定部202、及び設定作業支援部203を含む。機械学習モデル記憶部200及びデータベース記憶部201の各々は、記憶部22により実現される。設定操作特定部202及び設定作業支援部203の各々は、制御部21により実現される。
【0052】
[機械学習モデル記憶部]
機械学習モデル記憶部200は、訓練用の設定に基づいて作成された訓練データが学習された機械学習モデルMを記憶する。例えば、機械学習モデル記憶部200は、学習端末10によって学習が完了した機械学習モデルMを記憶する。機械学習モデルMの学習は、サーバ20によって実行されてもよい。この場合、サーバ20は、学習部と同様の機能を有する。
【0053】
[データベース記憶部]
データベース記憶部201は、設定作業の支援に必要なデータを記憶する。例えば、データベース記憶部201は、トピックデータベースDB2を記憶する。機械学習モデル記憶部200は、学習端末10によって生成されたトピックデータベースDB2を記憶する。データベース記憶部201は、トピックデータベースDB2以外にも、アプリの各種データが格納されたアプリデータベースDB3を記憶する。
【0054】
図8は、アプリデータベースDB3の一例を示す図である。例えば、アプリデータベースDB3には、個々のアプリの識別用のIDであるアプリIDと、アプリの具体的な設定内容を示すアプリ設定データと、が格納される。アプリデータベースDB3には、任意のデータが格納されてよく、アプリデータベースDB3に格納されるデータは、図8の例に限られない。例えば、アプリデータベースDB3には、個々のレコードの詳細を示すレコードデータが格納されてもよい。
【0055】
本実施形態では、アプリ設定データは、フィールド設定を示す。例えば、フィールド設定は、アプリにおけるフィールドのフィールドタイプである。フィールド設定は、フィールドの何らかの設定であればよい。フィールド設定は、フィールドタイプに限られない。例えば、フィールド設定は、フィールド名(カラム名)、フィールドの順序(カラムの順序)、フィールドの値をユーザが入力するためのフォームのレイアウト、フィールドに設定された計算式、又はその他の設定であってもよい。
【0056】
なお、アプリ設定データは、フィールド設定に限られない。アプリ設定データは、アプリの何らかの設定を示せばよい。例えば、アプリ設定データは、アプリ名、アプリの管理者用のメモ、レコードリストL10の表示形式、アプリで表示されるグラフの設定、アプリのアイコン、アプリ全体のデザイン、アクセス権限、又はその他の設定であってもよい。ユーザがアプリを作成すると、サーバ20は、当該アプリのアプリIDと、当該アプリの設定を示すアプリ設定データと、を関連付けてアプリデータベースDB3に格納する。
【0057】
なお、データベース記憶部201に記憶されるデータは、上記の例に限られない。データベース記憶部201は、任意のデータを記憶可能である。例えば、データベース記憶部201は、ユーザの各種データが格納されたユーザデータベースを記憶してもよい。ユーザデータベースには、グループウェアのログイン用のユーザID及びパスワード等のデータが格納される。データベース記憶部201は、アプリ画面SC1又は設定画面SC2等の各画面のデータを記憶してもよい。例えば、データベース記憶部201は、ノーコード又はローコードによるアプリの作成を可能にするためのプログラムを記憶してもよい。当該プログラムには、ユーザが入力せずに済むコードが示されている。アプリは、ユーザが指定した設定と、当該プログラムの当該コードと、に基づいて作成される。アプリの作成は、サーバ20が行ってもよいし、サーバ20以外の他のコンピュータが行ってもよい。
【0058】
[設定操作特定部]
設定操作特定部202は、アプリの設定のためにユーザが行った設定操作を特定する。設定操作は、コードを示す文字列をユーザが入力する操作とは異なる操作である。例えば、設定操作は、設定画面SC2に表示された画像(アプリの設定のための画像)を選択する操作、アプリの設定の具体的な値を指定する操作、又はコード以外の文字列をユーザが入力する操作であってもよい。設定操作は、アプリの何らかの設定に関係する操作であればよい。
【0059】
本実施形態では、設定操作が、ユーザが設定を指定するための操作である場合を例に挙げる。即ち、ユーザがアプリの具体的な設定そのものを指定する操作が設定操作に相当する。他の設定操作の例は、後述の変形例で説明する。例えば、ユーザ端末30は、ユーザが設定操作を行うと、サーバ20に対し、設定操作の内容を示す設定操作データを送信する。サーバ20は、ユーザ端末30から、設定操作データを受信する。設定操作特定部202は、設定操作データを参照することによって、設定操作を特定する。本実施形態では、設定操作特定部202が設定操作を特定することは、ユーザが指定した設定の内容を特定することに相当する。
【0060】
本実施形態では、設定操作データは、ユーザが設定操作によって指定したフィールド設定を示す。図3及び図4の例であれば、ある特定のフィールドタイプのフォームを示す画像を、表示領域A20から表示領域A21にユーザが移動させる操作が、設定操作に相当する。設定操作データは、当該設定操作によって指定されたフィールドタイプ(表示領域A20から表示領域A21にユーザが移動させた画像が示すフィールドタイプ)を示す。設定操作データは、フォームのレイアウト等の他の設定の内容も示す。
【0061】
なお、設定操作は、設定画面SC2に対するユーザの操作であればよい。設定操作は、フィールドタイプを示す画像を、表示領域A20から表示領域A21にユーザが移動させる操作に限られない。例えば、設定操作は、フィールド名を示すテキストをユーザが入力する操作、フィールドのフォームのレイアウトをユーザが変更する操作、又はフィールドの順序をユーザが入れ替える操作であってもよい。設定操作は、ユーザが他の方法によってフィールド設定を指定する操作であってもよい。
【0062】
例えば、設定操作は、フィールド設定以外の他の設定をユーザが指定する操作であってもよい。例えば、設定操作は、アプリ名を示すテキストをユーザが入力する操作、アプリの管理者用のメモをユーザが入力する操作、レコードリストL10の表示形式をユーザが指定する操作、アプリで表示されるグラフの設定をユーザが指定する操作、アプリのアイコンをユーザが指定する操作、アプリ全体のデザインをユーザが指定する操作、アクセス権限をユーザが指定する操作、又はその他の設定をユーザが指定する操作であってもよい。これらの設定操作が行われる場合も、設定操作データは、設定操作によってどのような設定をユーザが指定したかをサーバ20が特定可能なデータであればよい。
【0063】
[設定作業支援部]
設定作業支援部203は、設定操作特定部202により特定された設定操作と、機械学習モデルMと、に基づいて、ユーザによるアプリの設定作業を支援する。設定作業は、アプリの設定のためにユーザが行う作業である。設定操作は、設定作業の一例である。ユーザは、設定操作以外の他の操作を、設定作業として行なってもよい。例えば、他の操作は、ユーザが指定した設定を削除する操作、作成済みのアプリをコピーする操作、又は作成済みのアプリを削除する操作であってもよい。
【0064】
設定作業支援部203が設定作業を支援するとは、ユーザによる設定作業の負担軽減のための処理を設定作業支援部203が実行することである。例えば、設定作業支援部203がユーザに設定作業の具体的な内容を提案すること、設定作業支援部203が設定作業の全部若しくは一部を自動的に実行すること、設定作業支援部203がアプリの設定を示すデータを自動的に生成することは、設定作業支援部203が設定作業を支援することに相当する。図4の下側の設定画面SC2の例であれば、設定作業支援部203が、プレースホルダ機能による表示と、次の設定作業を示すメッセージの表示と、を実行することが、設定作業支援部203が設定作業を支援することに相当する。
【0065】
本実施形態では、ユーザが設定操作によってアプリの設定そのものを指定するので、設定作業支援部203は、設定操作によって指定された設定と、機械学習モデルMと、に基づいて、設定作業を支援する。例えば、設定操作によって指定された設定がフィールド設定である場合には、機械学習モデルMには、訓練用のフィールド設定に基づいて作成された訓練データが学習されている。学習の処理は、先述した通りである。本実施形態では、機械学習モデルMには、訓練用のアプリに基づいて作成された訓練データが学習されている。
【0066】
本実施形態では、設定作業支援部203は、設定操作によって指定されたフィールド設定と、機械学習モデルMと、に基づいて、次の設定操作によって指定されるフィールド設定をユーザに提案することによって、設定作業を支援する。設定作業支援部203は、設定画面SC2でユーザが視覚的に認識できる態様で、機械学習モデルMによって予測されたフィールド設定に関係する表示を行うことによって、当該フィールド設定を提案する。当該情報は、図4の下側の設定画面SC2のようなプレースホルダ機能の画像に限られない。例えば、当該情報は、図4の下側の設定画面SC2のようなメッセージであってもよいし、アイコン等の画像であってもよい。設定作業支援部203は、表示領域A20内の画像の点滅等のエフェクトを行うことによって、フィールド設定をユーザに提案してもよい。
【0067】
例えば、設定作業支援部203は、機械学習モデルMから出力されたトピックと、トピックデータベースDB2と、に基づいて、次の設定操作によって指定されるフィールド設定をユーザに提案する。例えば、設定作業支援部203は、ユーザが設定中のアプリが属するトピックで利用されているフィールド設定のうち、ユーザがまだ指定していないフィールド設定を、ユーザに提案する。
【0068】
例えば、フィールド設定がフィールドタイプである場合には、設定作業支援部203は、設定操作によって指定されたフィールドタイプと、機械学習モデルMと、に基づいて、次の設定操作によって指定されるフィールドタイプをユーザに提案することによって、設定作業を支援する。設定作業支援部203は、ユーザが設定中のアプリが属するトピックで利用されているフィールドタイプのうち、ユーザがまだ指定していないフィールドタイプを、ユーザに提案する。
【0069】
例えば、設定作業支援部203は、設定操作によって指定された設定と、機械学習モデルMと、に基づいて、ユーザが設定中のアプリのクラスタリングを実行する。設定作業支援部203は、訓練データと同じ形式で、ユーザが指定した現状の設定を表現する。図6の例であれば、設定作業支援部203は、ユーザが指定した現状の設定を、ベクトル形式のデータで表現する。設定作業支援部203は、当該データを機械学習モデルMに入力することによって、ユーザが設定中のアプリのクラスタリングを実行する。機械学習モデルMは、設定中のアプリが属するトピックのトピックIDを出力する。
【0070】
設定作業支援部203は、クラスタリングの実行結果に基づいて、ユーザが設定中のアプリが属するトピックを特定する。当該トピックは、機械学習モデルMが出力したトピックIDによって特定される。設定作業支援部203は、当該トピックに属する訓練用のアプリの設定に基づいて、次の設定操作(ユーザが次に指定すべき設定、即ち、おすすめの設定)を予測することによって、設定作業を支援する。例えば、次の設定操作は、設定中のアプリと似たアプリ(設定中のアプリと同じトピックに属するアプリ)の傾向から予測される。
【0071】
例えば、設定作業支援部203は、トピックデータベースDB2を参照し、ユーザが設定中のアプリが属するトピックのトピックデータを取得する。設定作業支援部203は、当該トピックデータと、ユーザが設定中のアプリの現状のフィールド設定と、に基づいて、次に指定されるフィールド設定を予測する。設定作業支援部203は、当該トピックデータに基づいて、ユーザが設定中のアプリの現状のフィールド設定では不足しているフィールド設定を、次の設定操作によって指定されるフィールド設定として予測する。
【0072】
例えば、設定作業支援部203は、トピックデータが示す利用率が相対的に高いフィールドタイプをユーザがまだ指定していない場合に、当該フィールドタイプをユーザに提案する。設定作業支援部203は、トピックデータが示す利用率が相対的に高いフィールドタイプをユーザが指定していたとしても、設定中のアプリで当該フィールドタイプが相対的に少なければ、当該フィールドタイプをユーザに提案する。設定作業支援部203は、設定中のアプリに指定されたフィールドタイプと、トピックデータが示す各フィールドタイプの利用率と、に基づいて、所定の計算式で評価値を計算し、当該評価値が相対的に高いフィールドタイプをユーザに提案してもよい。
【0073】
図4の例において、ユーザが設定中のアプリが属するトピックのトピックデータに、フィールドタイプ「数値」の利用率と、フィールドタイプ「計算」の利用率と、が他のフィールドタイプの利用率よりも相対的に高いことが示されていたとする。この場合に、ユーザが、設定中のアプリに対し、フィールドタイプ「数値」のフィールドを2つ指定した時点で、設定作業支援部203は、機械学習モデルMの処理によって、設定中のアプリが上記トピックに属することを特定する。設定作業支援部203は、上記トピックデータに基づいて、ユーザがまだ指定していないフィールドタイプ「計算」の利用率が高いことを特定し、図4の下側のように、フィールドタイプ「計算」のフィールドをユーザに提案する。
【0074】
なお、設定作業支援部203は、フィールドタイプ以外のフィールド設定をユーザに提案してもよい。例えば、フィールド名等の他のフィールド設定の傾向が機械学習モデルMに学習されている場合には、設定作業支援部203は、当該他のフィールド設定をユーザに提案してもよい。フィールド設定以外の他の設定(例えば、グラフの設定)の傾向が機械学習モデルMに学習されている場合には、設定作業支援部203は、当該他の設定をユーザに提案してもよい。
【0075】
また、本実施形態では、ユーザが何らかの設定操作を行うたびに、設定作業支援部203による処理が実行される場合を例に挙げるが、設定作業支援部203は、設定操作のたびには処理を実行しなくてもよい。例えば、設定作業支援部203は、ユーザが所定回数(例えば、3回)の設定操作を行うたびに処理を実行してもよい。設定作業支援部203は、ユーザが機械学習モデルMによる支援を要請するための操作を行った場合に処理を実行してもよい。設定作業支援部203は、機械学習モデルMが提案すべき設定を予測できなかった場合には、ユーザに対する提案を行わないようにしてもよい。
【0076】
[3-3.ユーザ端末で実現される機能]
例えば、ユーザ端末30は、データ記憶部300、表示制御部301、及び操作受付部302を含む。データ記憶部300は、記憶部32により実現される。表示制御部301及び操作受付部302の各々は、制御部31により実現される。
【0077】
[データ記憶部]
データ記憶部300は、アプリの設定に必要なデータを記憶する。例えば、データ記憶部300は、設定作業支援システム1の各種画面の表示のためのブラウザを記憶する。例えば、データ記憶部300は、グループウェア専用のプログラムを記憶する。
【0078】
[表示制御部]
表示制御部301は、設定作業支援システム1における各種画面を、表示部35に表示させる。例えば、表示制御部301は、サーバ20から受信したデータに基づいて、アプリ画面SC1又は設定画面SC2等の画面を、表示部35に表示させる。
【0079】
[操作受付部]
操作受付部302は、設定作業支援システム1における各種操作を受け付ける。例えば、アプリ画面SC1又は設定画面SC2に対する操作を受け付ける。操作受付部302が受け付けた操作内容を示すデータは、サーバ20に適宜送信される。
【0080】
[4.設定作業支援システムで実行される処理]
図9は、設定作業支援システム1で実行される処理の一例を示す図である。制御部21,31が、それぞれ記憶部22,32に記憶されたプログラムを実行することによって、図9の処理が実行される。図9の処理が実行されるにあたり、機械学習モデルMの学習が完了しているものとする。図9の処理は、本実施形態の設定作業支援方法の処理の一例である。
【0081】
図9に示すように、ユーザが新たなアプリを作成する操作を行うと、ユーザ端末30は、サーバ20との間で、設定画面SC2を表示させるための処理を実行する(S1)。ユーザ端末30は、設定画面SC2上でユーザが何らかの設定操作を行った場合に、サーバ20に対し、ユーザの設定操作を示す設定操作データを送信する(S2)。サーバ20は、ユーザ端末30から、設定操作データを受信する(S3)。サーバ20は、設定操作データに基づいて、ユーザの設定操作を特定する(S4)。サーバ20は、ユーザによる設定操作の履歴を示すデータを、記憶部22に記録する。即ち、サーバ20は、設定中のアプリにどのようなフィールド設定を指定したかを示すデータを、記憶部22に記録する。
【0082】
サーバ20は、ユーザがこれまでの設定操作で指定したフィールド設定と、機械学習モデルMと、に基づいて、ユーザが設定中のアプリのクラスタリングを実行する(S5)。S5では、サーバ20は、ユーザが指定したフィールド設定を、訓練データと同じベクトル形式で表現したデータを生成して機械学習モデルMに入力することによって、クラスタリングを実行する。サーバ20は、S5におけるクラスタリングの実行結果と、トピックデータベースDB2と、に基づいて、次の設定操作によって指定されるフィールド設定(おすすめのフィールド設定)が予測されたか否かを判定する(S6)。ユーザがフィールド設定を指定し始めたばかりの段階では、設定中のアプリが属するトピックが特定されないこともあるので、この場合には、フィールド設定が予測されない。
【0083】
S6において、次の設定操作によって指定されるフィールド設定が予測されたと判定された場合(S6:Y)、サーバ20は、ユーザ端末30との間で、当該特定されたフィールド設定を提案するための処理を実行する(S7)。S7では、サーバ20は、ユーザ端末30に対し、提案対象となるフィールド設定を示すデータを送信する。ユーザ端末30は、当該データに基づいて、プレースホルダ機能等を利用して当該フィールド設定をユーザに提案する。S6において、次の設定操作によって指定されるフィールド設定が予測されたと判定されない場合(S6:N)、S7の処理は、実行されない。ユーザ端末30は、ユーザがアプリの設定を終了する終了操作を行ったか否かを判定する(S8)。終了操作は、設定画面SC2から行われる任意の操作(例えば、ユーザが「更新する」のボタンを選択する操作)であってよい。
【0084】
S8において、ユーザが終了操作を行ったと判定されない場合(S8:N)、S2の処理に戻る。この場合、アプリの設定が継続される。S8において、ユーザが終了操作を行ったと判定された場合(S8:Y)、ユーザ端末30は、サーバ20との間で、アプリデータベースDB3にアプリの設定を保存するための処理を実行し(S9)、本処理は、終了する。S9では、ユーザ端末30は、サーバ20に対し、アプリの最終的な設定を示す最終設定データを送信する。サーバ20は、新たなアプリIDと、最終設定データに応じたアプリ設定データと、を生成して、これらをアプリデータベースDB3に格納する。S9の処理が完了すると、ユーザが作成したアプリは、ユーザの組織で利用される。以上の処理は、ユーザがコードを入力することなく完了する。
【0085】
[5.実施形態のまとめ]
本実施形態の設定作業支援システム1は、ユーザが行った設定操作と、訓練データが学習された機械学習モデルMと、に基づいて、ユーザによるアプリの設定作業を支援できる。設定作業支援システム1の支援によって、ユーザによる設定作業の作業負担が軽減する。例えば、ユーザは、アプリのヘルプページによって、アプリ全般の使い方等の一般的な情報を手に入れることができるが、自分が今現在設定中のアプリに応じた情報を手に入れることができないことがある。この点、設定作業支援システム1は、機械学習モデルMを利用することによって、個々のユーザに応じた支援を実現できる。設定作業支援システム1は、アプリの利用を検討しているユーザに対し、アプリの利用を始める動機付けを与えることもできる。例えば、まだアプリを利用したことがないユーザは、どのような設定を指定すればよいか分からず、アプリの利用を躊躇することがある。この点、設定作業支援システム1の支援によって、ユーザは、アプリの利用を開始しやすくなる。その結果、設定作業支援システム1は、アプリの利用を促進できる。
【0086】
また、設定作業支援システム1は、設定操作によって指定された設定と、機械学習モデルMと、に基づいて、設定作業を支援する。これにより、設定作業支援システム1は、ユーザが指定した具体的な設定を機械学習モデルMで解析させることによって、より効果的な支援を実現できる。
【0087】
また、設定作業支援システム1は、設定操作によって指定されたフィールド設定と、機械学習モデルMと、に基づいて、次の設定操作によって指定されるフィールド設定をユーザに提案することによって、設定作業を支援する。フィールド設定は、アプリの特に重要な設定であり、かつ、特に初心者のユーザが悩みがちな複雑な設定である。このため、ユーザがフィールド設定を迷うことが多いが、設定作業支援システム1は、ユーザが指定したフィールド設定を機械学習モデルMで解析させることによって、より効果的な支援を実現できる。
【0088】
また、設定作業支援システム1は、設定操作によって指定されたフィールドタイプと、機械学習モデルMと、に基づいて、次の設定操作によって指定されるフィールドタイプをユーザに提案することによって、設定作業を支援する。例えば、初心者のユーザは、フィールドタイプの指定に悩みがちであるが、設定作業支援システム1は、ユーザが現時点で指定したフィールドタイプを機械学習モデルMで解析させて、次のフィールドタイプをユーザに提案することによって、より効果的な支援を実現できる。
【0089】
また、設定作業支援システム1は、設定操作によって指定された設定と、機械学習モデルMと、に基づいて、設定中のアプリのクラスタリングを実行し、当該クラスタリングの実行結果に基づいて、設定作業を支援する。これにより、設定作業支援システム1は、設定中のアプリと似た訓練用のアプリの傾向をもとに、設定作業を支援することができる。例えば、ユーザは、自分が今から作成しようとしているアプリと似た訓練用のアプリの設定を参考にしながら、アプリの設定作業を続けることができる。
【0090】
[6.変形例]
なお、本開示は、以上説明した実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0091】
図10は、変形例の設定作業支援システム1で実現される機能の一例を示す図である。図10のように、以降説明する変形例では、サーバ20は、ユーザ属性データ取得部204及び過去設定データ取得部205を含む。ユーザ属性データ取得部204及び過去設定データ取得部205の各々は、制御部21により実現される。
【0092】
[6-1.変形例1]
例えば、実施形態では、フィールド設定の一例としてフィールドタイプを主に説明したが、フィールド設定は、フィールドの他の設定であってもよい。変形例1では、フィールド設定が、フィールドのレイアウトであるフィールドレイアウトである場合を例に挙げる。レイアウトは、アプリにおけるフィールドの位置である。例えば、アプリにおけるフィールドの順序(カラムの順序)、又は、図2の下側のアプリ画面SC1におけるフィールドのフォームの位置は、フィールドレイアウトに相当する。
【0093】
例えば、ユーザは、設定画面SC2から、フィールドレイアウトの指定のための設定操作を行うことができる。図3及び図4の例では、アプリにおけるフィールドの順序は、表示領域A21の左上のフォームのフィールドが1番であり、右方向及び下方向に行くほど順序が後になってもよい。アプリ画面SC1におけるフィールドのフォームの位置は、表示領域A21におけるフィールドのフォームの位置と同じであってもよい。フィールドレイアウトの指定のための設定操作は、他の任意の操作であってよい。例えば、ユーザがフィールドの順序を示す数値を入力する操作、ユーザがレコードリストL10と同様のリストからフィールドの順序を入れ替える操作、又はその他の操作が、変形例1の設定操作に相当してもよい。
【0094】
変形例1の設定作業支援部203は、設定操作によって指定されたフィールドレイアウトと、機械学習モデルMと、に基づいて、次の設定操作によって指定されるフィールドレイアウトをユーザに提案することによって、設定作業を支援する。変形例1の訓練データは、訓練用のアプリのフィールドレイアウトに基づいて作成される。例えば、訓練データは、訓練用のアプリにおけるフィールドの順序(例えば、数値、数値、計算の順序であるか等)、又は、フィールドのフォームの位置(例えば、数値、数値、計算の各々のフィールドタイプのフィールドのフォームの位置)が示されている。
【0095】
例えば、変形例1の学習部102は、訓練用のアプリのフィールドレイアウトに基づいて作成された訓練データに基づいて、機械学習モデルMの学習を行う。学習部102は、似たフィールドレイアウトの訓練用アプリ同士が同じトピックに属するように、機械学習モデルMの学習を行う。学習部102は、各トピックに属する訓練用のアプリのフィールドレイアウトの傾向を示すトピックデータが格納されたトピックデータベースDB2を生成する。例えば、変形例1のトピックデータベースDB2に格納されるトピックデータには、トピックに属する訓練用のアプリのフィールドレイアウトの傾向が示されている。例えば、あるトピックのトピックデータには、当該トピックに属する訓練用のアプリのフィールドの順序、又は、当該トピックに属する訓練用のアプリのフィールドのフォームの配置が示されている。
【0096】
例えば、設定作業支援部203は、設定中のアプリのフィールドレイアウトに基づいて、機械学習モデルMに基づいて、設定中のアプリが属するトピックを特定する。設定作業支援部203は、設定中のアプリのフィールドレイアウトを示すデータを、機械学習モデルMに入力する。機械学習モデルMは、当該データに基づいてクラスタリングを実行し、設定中のアプリが属するトピックを特定する。クラスタリングで利用されるデータが示すものが実施形態とは異なるが、クラスタリングの処理は、実施形態と同様である。
【0097】
例えば、設定作業支援部203は、設定中のアプリが属するトピックのトピックデータに基づいて、次の設定操作によって指定されるフィールドレイアウトを予測する。例えば、図4の下側の設定画面SC2の例において、フィールドタイプ「数値」のフィールドが横に2つ並べられた更にその先に、フィールドタイプ「計算」のフィールドが並べられる傾向にあることが、トピックデータに示されていたとする。この場合、設定作業支援部203は、ユーザがフィールドタイプ「数値」のフィールドを横に2つ並べた場合に、次に何らかのフィールドがその先に並べられることを予測する。設定作業支援部203は、その先にフィールドを並べることを、ユーザに提案する。
【0098】
なお、設定作業支援部203は、ユーザが設定中のアプリに指定したフィールドレイアウトと、設定中のアプリが属するトピックのトピックデータが示すフィールドレイアウトと、が異なるか否かを判定してもよい。設定作業支援部203は、これらが異なると判定された場合に、当該トピックデータが示すフィールドレイアウトをユーザに提案してもよい。
【0099】
例えば、図2図4のようなアプリにおいて、ユーザが、設定中のアプリにおける最初の3つのフィールドとして、フィールドタイプ「計算」のフィールド、フィールドタイプ「数値」のフィールド、及びフィールドタイプ「数値」のフィールドの順序で指定していたとする。この場合に、設定中のアプリが属するトピックのトピックデータに、最初の3つのフィールドの順序として、フィールドタイプ「数値」のフィールド、フィールドタイプ「数値」のフィールド、及びフィールドタイプ「計算」のフィールドの順序が示されていたとする。この場合、設定作業支援部203は、これらが異なると判定されるので、ユーザに対し、当該トピックデータが示す順序を提案する。
【0100】
例えば、設定作業支援部203は、設定中のアプリの表示領域A21における各フィールドのフォームの位置と、設定中のアプリが属するトピックのトピックデータが示す各フィールドのフォームの位置と、が異なるか否かを判定する。設定作業支援部203は、これらが異なると判定された場合に、これらの違い(例えば、フォームの2次元的な位置の違い)が閾値以上であれば、当該トピックデータが示す各フィールドのフォームの位置をユーザに提案する。フィールドレイアウトとして、他の要素が利用される場合には、設定作業支援部203は、当該他の要素をユーザに提案すればよい。
【0101】
変形例1の設定作業支援システム1は、設定操作によって指定されたフィールドレイアウトと、機械学習モデルMと、に基づいて、次の設定操作によって指定されるフィールドレイアウトをユーザに提案することによって、設定作業を支援する。例えば、アプリを作り慣れていないユーザは、どのようなフィールドレイアウトが適切かを十分に理解しておらず、フィールドレイアウトの指定を迷うことがある。設定作業支援システム1は、ユーザが指定したフィールドレイアウトを機械学習モデルMで解析させて、フィールドレイアウトをユーザに提案することによって、より効果的な支援を実現できる。
【0102】
[6-2.変形例2]
例えば、設定作業支援部203は、設定中のアプリと似た訓練用のアプリをユーザに提案してもよい。変形例2の機械学習モデルMには、実施形態と同様に、訓練用のアプリに基づいて作成された訓練データが学習されている。変形例2の設定作業支援部203は、設定操作によって指定された設定と、機械学習モデルMと、に基づいて、訓練用のアプリをユーザに提案することによって、設定作業を支援する。提案対象となる訓練用のアプリは、設定中のアプリと同じトピックに属する訓練用のアプリである。
【0103】
図11は、変形例2の設定画面SC2の一例を示す図である。例えば、設定作業支援部203は、実施形態と同様にして、設定中のアプリが属するトピックを特定する。設定作業支援部203は、当該トピックに属する複数の訓練用のアプリのうちの何れかを選択する。設定作業支援部203は、当該複数の訓練用のアプリの何れかをランダムに選択してもよいし、当該トピックの中で代表的な訓練用のアプリ(例えば、機械学習モデルMの作成者が指定した訓練用のアプリ)を選択してもよい。図11のように、設定作業支援部203は、訓練用のアプリの設定を設定画面SC2に表示させるためのボタンB22を、ユーザ端末30に表示させる。
【0104】
例えば、ユーザがボタンB22を選択すると、設定作業支援部203は、訓練用のアプリの設定を示す設定画面SC2を、ユーザ端末30に表示させる。図11の例であれば、設定作業支援部203は、アプリデータベースDB3を参照し、設定中のアプリと似た訓練用のアプリ「サイト管理人アプリ」のアプリ設定データを取得する。設定作業支援部203は、当該取得されたアプリ設定データの全部又は一部を、設定画面SC2に表示させる。ユーザは、訓練用のアプリの設定を参考にして、設定中のアプリの設定作業を継続する。ユーザは、必要に応じて、設定中のアプリの設定を、設定画面SC2に表示された訓練用のアプリの設定で置き換える。ユーザは、設定中のアプリに代えて、訓練用のアプリをコピーして新たなアプリを作成してもよい。
【0105】
変形例2の設定作業支援システム1は、設定操作によって指定された設定と、機械学習モデルMと、に基づいて、訓練用のアプリをユーザに提案することによって、設定作業を支援する。これにより、ユーザが訓練用のアプリを参考にして設定作業を行うことができるので、設定作業支援システム1は、ユーザの利便性を高めることができる。
【0106】
[6-3.変形例3]
例えば、機械学習モデルMには、訓練用の設定操作によって指定された設定と、当該訓練用の設定操作が行われた順序と、を示す訓練データが学習されていてもよい。変形例3の訓練データは、実施形態で説明したようなフィールドタイプの数だけではなく、訓練用のアプリの設定が行われた場合の設定操作の順序も示す。例えば、フィールドタイプ「数値」のフィールドを示す1回目の設定操作、フィールドタイプ「数値」のフィールドを示す2回目の設定操作、フィールドタイプ「計算」のフィールドを示す3回目の設定操作といったように、設定操作の順序も訓練データに示される。訓練データには、フィールドの削除等の設定操作が行われた順序が示されてもよい。
【0107】
例えば、フィールドタイプ「数値」のフィールドが2つ指定され、かつ、フィールドタイプ「計算」のフィールドが1つ指定される場合だったとしても、これらが指定される順序によって、次の設定操作が異なることがある。例えば、数値、数値、計算の順序で指定された場合には、次に数値が指定されることが多いが、数値、計算、数値の順序で指定された場合には、次に計算が指定されることが多いこともある。このように、単純なフィールドタイプの数だけではなく、フィールドタイプが指定された順序の傾向が機械学習モデルMに学習されてもよい。機械学習モデルMは、フィールドタイプの数だけではなく、設定操作の順序も特徴の1つとして考慮してクラスタリングを実行する。このため、フィールドタイプの数が同じだったとしても、設定操作の順序が異なる訓練用のアプリ同士が互いに異なるトピックに属することもある。
【0108】
変形例3の設定作業支援部203は、設定操作によって指定された設定と、当該設定操作が行われた順序と、機械学習モデルMと、に基づいて、設定作業を支援する。例えば、設定作業支援部203は、設定中のアプリに対してユーザが行った設定操作が示す設定だけではなく、当該設定操作が行われた順序を示すデータも機械学習モデルMに入力する。機械学習モデルMは、当該順序も特徴の1つとして考慮してクラスタリングを実行する。設定作業支援部203は、機械学習モデルによるクラスタリングの実行結果に基づいて、ユーザが次に指定するフィールドタイプをユーザに提案する。クラスタリングで順序が考慮される点が実施形態とは異なるが、クラスタリングが実行された後の処理(フィールドタイプの提案のための処理)は、実施形態と同様である。
【0109】
変形例3の設定作業支援システム1は、設定操作によって指定された設定と、当該設定操作が行われた順序と、機械学習モデルMと、に基づいて、設定作業を支援する。これにより、設定操作の順序によってユーザに提案すべきものが異なる場合に、設定作業支援システム1は、より効果的な支援を実現できる。例えば、フィールドタイプ「数値」のフィールドが2つ指定され、かつ、フィールドタイプ「計算」のフィールドが1つ指定される場合だったとしても、設定作業支援システム1は、数値、数値、計算の順序で指定された場合と、数値、計算、数値の順序で指定された場合と、でユーザに提案するフィールドタイプを異ならせることによって、ユーザに対して適切な提案を行うことができる。
【0110】
[6-4.変形例4]
例えば、機械学習モデルMは、実施形態で説明したようなクラスタリングを実行するモデルに限られない。変形例4では、機械学習モデルMの他の例を説明する。変形例4の機械学習モデルMは、対話型のモデルである。対話型のモデルは、ユーザが自然言語のテキストを入力すると、当該テキストに応じた返答を生成するモデルである。ユーザが入力するテキストは、アプリの設定に関係する内容を含む。例えば、ユーザは、アプリの用途、又は、大まかなアプリの設定の希望等のテキストを入力する。対話型のモデルは、チャット型のモデルということもできる。
【0111】
図12は、変形例4の設定作業支援システム1で実行される処理の一例を示す図である。図12のように、例えば、ユーザが「勤怠管理のアプリを作成して下さい。」といったテキストを入力すると、機械学習モデルMは、当該テキストをトークンに分割して埋め込み表現を計算する。機械学習モデルMは、当該埋め込み表現に応じた返答「タイムカードのアプリを作成すれば良いでしょうか?」を生成する。
【0112】
例えば、ユーザが「それでお願いします。」といったテキストを入力すると、機械学習モデルMは、訓練用のタイムカードのアプリの傾向をもとに、特定の用途向けのプログラミング言語又はマークアップ言語の一種であるDSL(Domain Specific Language)のデータを生成する。変形例4では、機械学習モデルMが生成するDSLは、アプリを作成するアプリ作成プログラムPに対して入力可能な形式のデータである。アプリ作成プログラムPは、DSLに基づいて、アプリを作成する。例えば、アプリ作成プログラムPは、機械学習モデルMが生成したDSLのデータからアプリ設定データを生成する処理のコードを含む。アプリ作成プログラムPは、データ記憶部200に記憶されているものとする。サーバ20は、アプリ作成プログラムPに示されたコードを実行することによって、アプリ作成プログラムPは、ノーコード又はローコードのアプリ作成を実現する。機械学習モデルMが記憶されたコンピュータと、アプリ作成プログラムPが記憶されたコンピュータと、が別々である場合には、アプリ作成プログラムPは、APIの一部であってもよい。アプリの作成では、アプリ作成プログラムP以外の他のプログラムが利用されてもよい。
【0113】
例えば、アプリ作成プログラムPが仮のアプリを作成すると、機械学習モデルMは、アプリ作成プログラムPから、アプリ作成プログラムPの処理結果を示す処理結果データを取得する。処理結果データは、任意の形式であってよく、例えば、json等のマークアップ言語のデータであってもよい。例えば、処理結果データには、アプリ作成プログラムPによって作成された仮のアプリの設定を示すデータを取得する。処理結果データには、アプリに必要なデータの種類(例えば、従業員のマスタデータ)が示されていてもよい。機械学習モデルMは、処理結果データに基づいて、ユーザに対する返答「アプリを作成致しました。従業員のマスタデータが必要です。」を生成する。ユーザが「従業員のアプリがあるはずです。」といったテキストを入力すると、機械学習モデルMは、アプリ作成プログラムPに、ユーザが指定した従業員のアプリを検索させるためのDSLのデータを生成する。
【0114】
例えば、アプリ作成プログラムPは、DSLのデータに基づいてアプリを検索すると、アプリの検索結果を示す処理結果データを生成する。機械学習モデルMは、3つのアプリが検索でヒットしたことが処理結果データに示されていたとすると、機械学習モデルMは、「候補が3つ見つかりました。」といったメッセージを表示させて、3つのアプリの何れかをユーザに選択させる。ユーザが「2番目を利用して下さい。」といったテキストを入力すると、機械学習モデルMは、2番目のアプリから従業員のマスタデータを関連付けることを示すDSLのデータを生成する。アプリ作成プログラムPは、当該DSLのデータに基づいて、2番目のアプリから従業員のマスタデータを取得し、設定中のアプリのアプリ設定データを更新する。機械学習モデルMは、アプリ作成プログラムPから、アプリ設定データの更新結果を示す処理結果データを取得する。機械学習モデルMは、処理結果データに基づいて、ユーザに対する返答「アプリを更新しました。」を表示させる。変形例4では、ユーザは、このような対話によって、アプリの設定を完了することができる。
【0115】
変形例4では、機械学習モデルMが、いわゆる大規模言語モデルである場合を例に挙げる。例えば、機械学習モデルMは、GPT(Generative Pre-trained Transformer)、BERT(Bidirectional Encoder Representations from Transformers)、PaLM(Pathways Language Model)、又はLLaMA(Large Language Model Meta AI)といった大規模言語モデルであってもよい。機械学習モデルMは、大規模言語モデルに分類されない他のモデル(例えば、ニューラルネットワーク又はシーケンス・ツー・シーケンスのモデル)であってもよい。例えば、機械学習モデルMのパラメータは、埋め込み表現の計算時に参照される行列、トークン位置のエンコーディングで参照される位置エンコーディング、又はその他のパラメータであってもよい。
【0116】
例えば、機械学習モデルMのプログラムは、埋め込み表現を計算するエンコーダ、予定調整等のタスクに応じた出力のためのデータを作成するデコーダ、当該データに基づいて最終的な出力を行う出力層、及び他の中間的な層の処理を示す。機械学習モデルMが大規模言語モデルである場合には、機械学習モデルMは、入力されたデータを複数のトークンに分割する処理を示すプログラムも含む。機械学習モデルMのプログラムは、公知のプログラムであってよい。機械学習モデルMが大規模言語モデルである場合には、機械学習モデルMは、入力されたデータを複数のトークンに分割する処理を示すプログラムも含む。
【0117】
変形例4では、事前学習済みの大規模言語モデルが機械学習モデルMに相当する場合を例に挙げる。例えば、学習部102は、訓練データに基づいて、機械学習モデルMの再学習を行ってもよい。再学習は、事前学習済みの機械学習モデルMのパラメータの調整である。例えば、再学習は、ファインチューニング、転移学習、又は蒸留である。学習部102は、機械学習モデルMの再学習ではなく、事前学習が行われていない機械学習モデルM(パラメータが初期値の機械学習モデルM)の学習を、1から行ってもよい。
【0118】
変形例4の訓練データは、学習時に機械学習モデルMに入力される入力部分と、学習時の正解となる出力部分と、を含む。例えば、訓練データの入力部分は、訓練用のユーザが入力したテキストである。訓練データの出力部分は、当該テキストが入力された場合の正解となるDSLのデータである。学習部102は、訓練データの入力部分が示すテキストが入力された場合に、訓練データの出力部分が示すDSLのデータが出力されるように、機械学習モデルMのパラメータを調整する。
【0119】
例えば、訓練データの入力部分は、アプリ作成プログラムPが生成した訓練用の処理結果データであってもよい。訓練データの出力部分は、ユーザに対する返答の正解となるテキストであってもよい。学習部102は、訓練データの入力部分が示す処理結果データが入力された場合に、訓練データの出力部分が示すテキストが出力されるように、機械学習モデルMのパラメータを調整する。
【0120】
変形例4の設定操作は、アプリの設定のために、ユーザが機械学習モデルMにプロンプトを入力する操作である。プロンプトは、機械学習モデルMに対するユーザの指示である。図12のように、対話型の機械学習モデルMの場合、プロンプトは、基本的にテキストで入力されるが、プロンプトは、テキスト以外にも、何らかの指示を示す記号等を含んでいてもよい。設定作業支援部203は、設定操作によって入力されたプロンプトと、機械学習モデルMと、に基づいて、アプリを作成するアプリ作成プログラムPに入力可能な形式の入力データを取得することによって、設定作業を支援する。図12の例では、DSLで生成されるデータが、入力データに相当する。
【0121】
例えば、機械学習モデルMは、ユーザが設定操作で入力したプロンプトを複数のトークンに分割する。機械学習モデルMは、学習済みのパラメータに基づいて、複数のトークンの各々の埋め込みベクトルを計算する。機械学習モデルMは、当該計算された埋め込みベクトルに基づいて、必要に応じて次の語を予測したうえで、入力データを生成する。入力データには、ユーザが入力したプロンプトに応じた設定のための情報が示されている。ユーザが入力したプロンプトによっては、機械学習モデルMが入力データを生成しないこともある。
【0122】
変形例4の設定作業支援部203は、機械学習モデルMから出力された出力データを入力データとしてデータベース作成プログラムPに入力する。設定作業支援部203は、データベース作成プログラムPの処理結果を示す処理結果データをデータベース作成プログラムPに出力させることによって、設定作業を支援する。例えば、データベース作成プログラムPは、自身に入力された入力データに基づいて、アプリの設定のための処理を実行する。データベース作成プログラムPは、自身のコードに基づいて、処理結果データを生成して出力する。設定作業支援部203は、アプリ作成プログラムPから取得された処理結果データと、機械学習モデルMと、に基づいて、プロンプトに応じた返答をユーザに提示することによって、設定作業を支援する。図12の例では、json形式の処理結果データによって、アプリ作成プログラムPによる処理結果が示される。
【0123】
例えば、設定作業支援部203は、機械学習モデルMに対し、処理結果データを入力する。機械学習モデルMは、処理結果データに基づいて、必要に応じてトークンに分割したうえで埋め込みベクトルを計算する。機械学習モデルMは、埋め込みベクトルに応じた返答のデータを生成する。設定作業支援部203は、ユーザ端末30に対し、当該データを送信することによって、機械学習モデルMによる返答をユーザ端末30に表示させる。なお、設定作業支援部203は、処理結果データに基づいて機械学習モデルMに返答を生成させるのではなく、処理結果データの内容をそのままユーザ端末30に表示させることによって、設定作業を支援してもよい。この場合、ユーザは、json形式の処理結果データの内容を確認できる。
【0124】
変形例4の設定作業支援部203は、機械学習モデルMから出力された出力データが、アプリ作成プログラムPに入力可能な形式であるか否かを判定してもよい。図12の場合、設定作業支援部203は、機械学習モデルMから出力された出力データがDSLの形式であるか否かを判定する。この場合、設定作業支援部203は、出力データが当該形式であると判定された場合には、出力データを入力データとして取得することによって、設定作業を支援する。設定作業支援部203は、出力データが当該形式であると判定されない場合には、出力データに基づいて、プロンプトに応じた返答をユーザに提示することによって、設定作業を支援する。
【0125】
図12の例であれば、ユーザが最初に入力したプロンプトでは、DSL形式の出力データが出力されなかったので、アプリ作成プログラムPに入力データが入力されることなく、ユーザに対する返答が表示される。図12のように、ユーザ及び機械学習モデルMの間で対話が繰り返されることによって、アプリの設定が完了する。なお、アプリの設定完了までの対話は、1回であってもよい。この場合、対話が繰り返されることなく、アプリの設定が完了する。ユーザがアプリの設定を終了するための操作を行った場合に、アプリの設定が完了してもよい。
【0126】
変形例4の設定作業支援システム1は、設定操作によって入力されたプロンプトと、機械学習モデルMと、に基づいて、アプリ作成プログラムPに入力可能な形式の入力データを取得することによって、設定作業を支援する。これにより、設定作業支援システム1は、ユーザにアプリの設定そのものを指定させることなく、アプリの設定を完了させることができる。例えば、ユーザは、所望のアプリの大まかな概要をプロンプトとして入力すれば済むので、設定作業支援システム1は、より効果的な支援を実現できる。
【0127】
また、設定作業支援システム1は、機械学習モデルMから出力された出力データを入力データとしてデータベース作成プログラムPに入力し、データベース作成プログラムPの処理結果を示す処理結果データをデータベース作成プログラムPに出力させることによって、設定作業を支援する。設定作業支援システム1は、機械学習モデルMを利用してデータベース作成プログラムPに処理結果データを出力させることによって、データベース作成プログラムPに処理結果データを出力させるための設定をユーザに直接的に指定させる必要がなくなるので、ユーザの利便性を効果的に高めることができる。その結果、設定作業支援システム1は、アプリの精度を高めることができる。
【0128】
また、設定作業支援システム1は、機械学習モデルMから出力された出力データが所定の形式であると判定された場合には、出力データを入力データとして取得することによって、設定作業を支援する。設定作業支援システム1は、出力データが所定の形式であると判定されない場合には、出力データに基づいて、プロンプトに応じた返答をユーザに提示することによって、設定作業を支援する。これにより、設定作業支援システム1は、最初の対話で所望の設定にならなかったとしても、対話を繰り返すことによって、設定の修正が可能になる。その結果、設定作業支援システム1は、アプリの精度を高めることができる。例えば、設定作業支援システム1は、機械学習モデルMがアプリの設定に必要な形式の出力データを出力できなかったとしても、ユーザとの対話を継続できる。設定作業支援システム1は、ユーザとの対話が継続される中で、所定の形式の出力データを出力させることができる。
【0129】
[6-5.変形例5]
例えば、ユーザが所属する組織又は部署によって、ユーザに提案すべき内容が異なることがある。図4の例であれば、ユーザが、フィールドタイプ「数値」のフィールドを2つ配置したとしても、ユーザが製造業に属する場合と、ユーザがサービス業に属する場合と、で設定作業支援システム1が次に提案すべきフィールドタイプが異なることがある。例えば、ユーザが営業部に属する場合と、ユーザが開発部に属する場合と、で設定作業支援システム1が次に提案すべきフィールドタイプが異なることがある。このため、ユーザの何らかの属性が考慮されて、設定作業が支援されてもよい。
【0130】
変形例5の設定作業支援システム1は、ユーザ属性データ取得部204を含む。ユーザ属性データ取得部204は、ユーザの属性を示すユーザ属性データを取得する。ユーザ属性データは、データベース記憶部201に記憶されているものとする。ユーザの属性は、何らかの観点でユーザを分類可能な情報であればよい。例えば、属性は、先述した組織の業種又は部署以外にも、ユーザの年齢層、性別、勤務年数、役職、趣味、又はその他の属性であってもよい。ユーザの属性は、ユーザが自分で指定してもよいし、ユーザの組織における管理者が指定してもよい。
【0131】
変形例5の設定作業支援部203は、設定操作と、機械学習モデルMと、ユーザ属性データと、に基づいて、設定作業を支援する。変形例5では、訓練データに、訓練用のユーザのユーザ属性データが含まれているものとする。例えば、訓練データには、訓練用のアプリの設定だけではなく、当該訓練用のアプリを作成した訓練用のユーザのユーザ属性データも含まれている。機械学習モデルMは、訓練用のアプリの設定だけではなく、当該訓練用のアプリを作成した訓練用のユーザのユーザ属性データも特徴の1つとして捉えてクラスタリングを実行する。設定作業支援部203は、ユーザ属性データも特徴の1つと捉えたクラスタリングの実行結果に基づいて、設定作業を支援する。クラスタリングでユーザの属性が考慮される点が実施形態とは異なるが、クラスタリングが実行された後の処理(フィールドタイプの提案のための処理)は、実施形態と同様である。
【0132】
変形例5の設定作業支援システム1は、設定操作と、機械学習モデルMと、ユーザ属性データと、に基づいて、設定作業を支援する。これにより、設定作業支援システム1は、ユーザの属性に応じた提案を行うことができるので、ユーザによる設定作業を、効果的に支援できる。
【0133】
[6-6.変形例6]
例えば、ユーザが過去に何らかのアプリの設定をしたことがあれば、ユーザの過去の傾向から、ユーザに提案すべき内容が異なることがある。例えば、ユーザが、フィールドタイプ「数値」のフィールドを2つ配置したとしたとする。ユーザが、その後にフィールドタイプ「計算」のフィールドではなく、フィールドタイプ「数値」のフィールドを更にもう1つ配置する傾向にある場合には、フィールドタイプ「数値」のフィールドが提案された方がよい。このため、ユーザが過去に行った設定の傾向が考慮されて、設定作業が支援されてもよい。
【0134】
変形例6の設定作業支援システム1は、過去設定データ取得部205を含む。過去設定データ取得部205は、ユーザが過去の設定操作で行った設定である過去設定を示す過去設定データを取得する。ユーザ属性データは、データベース記憶部201に記憶されているものとする。例えば、サーバ20は、ユーザが何らかのアプリの設定操作をすると、当該ユーザのユーザIDに関連付けて、当該設定操作が示す設定に応じた過去設定データを、データベース記憶部201に記録する。
【0135】
変形例6の設定作業支援部203は、設定操作と、機械学習モデルMと、過去設定データと、に基づいて、設定作業を支援する。変形例6では、訓練データに、訓練用のユーザの過去設定データが含まれているものとする。例えば、訓練データには、訓練用のアプリの設定だけではなく、当該訓練用のアプリを作成した訓練用のユーザが過去に行った設定を示す過去設定データも含まれている。機械学習モデルMは、訓練用のアプリの設定だけではなく、当該訓練用のアプリを作成した訓練用のユーザの過去設定データも特徴の1つとして捉えてクラスタリングを実行する。設定作業支援部203は、過去設定データも特徴の1つと捉えたクラスタリングの実行結果に基づいて、設定作業を支援する。クラスタリングでユーザの過去の傾向が考慮される点が実施形態とは異なるが、クラスタリングが実行された後の処理(フィールドタイプの提案のための処理)は、実施形態と同様である。
【0136】
変形例6の設定作業支援システム1は、設定操作と、機械学習モデルMと、過去設定データと、に基づいて、設定作業を支援する。これにより、設定作業支援システム1は、ユーザの過去の傾向に応じた提案を行うことができるので、ユーザによる設定作業を、効果的に支援できる。
【0137】
[6-7.その他の変形例]
例えば、変形例1~6の2つ以上を組み合わせてもよい。
【0138】
例えば、設定作業支援システム1が、グループウェアのアプリの設定作業を行うユーザを支援する場合を例に挙げたが、設定作業支援システム1は、アプリ以外の他のデータベースの設定作業を行うユーザを支援してもよい。設定作業支援システム1は、コミュニケーション機能等を有さないデータベースの設定作業を行うユーザを支援してもよい。設定作業支援システム1は、グループウェアに分類されない業務支援システムのデータベースの設定作業を行うユーザを支援してもよい。設定作業支援システム1は、業務支援システムとは関係のないデータベースの設定作業を行うユーザを支援してもよい。例えば、設定作業支援システム1が、新たなアプリの設定作業を行うユーザを支援する場合を例に挙げたが、設定作業支援システム1は、既存のアプリの設定変更のための設定作業を行うユーザを支援してもよい。この場合も、設定作業支援システム1は、既存のアプリの設定と、設定変更のためにユーザが行った設定操作と、機械学習モデルMと、に基づいて、ユーザによる設定作業を支援すればよい。
【0139】
例えば、実施形態では、アプリのクラスタリングを行う機械学習モデルMを例に挙げたが、機械学習モデルMは、クラスタリング以外の処理を実行してもよい。例えば、訓練データの入力部分は、訓練用のアプリの一部の設定を示してもよい。訓練データの出力部分は、入力部分が示す設定の次に指定される設定(正解となる設定)を示してもよい。学習部102は、訓練用のアプリの一部の設定を示す入力部分が入力された場合に、当該入力部分に対応する出力部分が示す設定が出力されるように、機械学習モデルMの学習を行う。設定作業支援部203は、学習済みの機械学習モデルMに対し、ユーザが設定中のアプリで指定した設定を入力する。機械学習モデルMは、学習で調整されたパラメータに基づいて、当該設定の埋め込み表現を計算し、埋め込み表現に応じた設定を出力する。設定作業支援部203は、機械学習モデルMから出力された設定をユーザに提案してもよい。これらの一連の処理は、自然言語処理で利用される機械学習モデルMが次の語を予測する仕組みによって実装されてもよい。
【0140】
例えば、サーバ20で実現されるものとして説明した機能は、ユーザ端末30によって実現されてもよい。この場合、ブラウザのスクリプト、又は、ユーザ端末30にインストールされたアプリケーションによって、当該機能が実現されるようにすればよい。例えば、各機能は、複数のコンピュータによって分担されてもよいし、1つのコンピュータによって実現されてもよい。
【符号の説明】
【0141】
1 設定作業支援システム、10 学習端末、11,21,31 制御部、12,22,32 記憶部、13,23,33 通信部、20 サーバ、30 ユーザ端末、14,34 操作部、15,35 表示部、M 機械学習モデル、N ネットワーク、P アプリ作成プログラム、100,200 機械学習モデル記憶部、101,201 データベース記憶部、102 学習部、202 設定操作特定部、203 設定作業支援部、204 ユーザ属性データ取得部、205 過去設定データ取得部、300 データ記憶部、301 表示制御部、302 操作受付部、A20,A21 表示領域、B22 ボタン、DB1 訓練データベース、DB2 トピックデータベース、DB3 アプリデータベース、L10 レコードリスト、SC1 アプリ画面、SC2 設定画面。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12