(57)【要約】      （修正有）【課題】利用者に対して、サービスの起案から提供までを自動化する。【解決手段】公開装置１０（判定装置）は、所定の処理を示す文章に含まれる単語組であって、所定の構造を有する単語組を抽出する抽出部４４と、抽出部により抽出された単語組を用いて、所定の処理を実現するプログラムを生成する生成部４５と、生成部により生成されたプログラムを公開する公開部４６とを有する。公開装置１０は、プログラムに関する情報と、そのプログラムを利用する利用者の情報とを対応付けたサービス情報を、販売可能なサービスに関する情報として事業者等に提供する。【選択図】図２
2020013395.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理を示す文章に含まれる単語組であって、所定の構造を有する単語組を抽出する抽出部と、
前記抽出部により抽出された単語組を用いて、前記所定の処理を実現するプログラムを生成する生成部と、
前記生成部により生成されたプログラムを公開する公開部と
を有することを特徴とする公開装置。
【請求項２】
前記公開部により公開されたプログラムを利用する利用者の情報を取得する取得部と、
前記プログラムに関する情報と、当該プログラムを利用する利用者の情報とを対応付けたサービス情報を、販売可能なサービスに関する情報として提供する提供部と
を有することを特徴とする請求項１に記載の公開装置。
【請求項３】
技術分野ごとに、当該技術分野に属するコンテンツの増加率に基づいて成長性を推定する推定部と、
前記推定部により推定された成長性が所定の条件を満たす技術分野を選択する選択部と
を有し、
前記抽出部は、前記選択部により選択された技術分野に属するコンテンツから抽出された文章に含まれる単語組を抽出する
ことを特徴とする請求項１または２に記載の公開装置。
【請求項４】
前記選択部は、前記成長性が所定の閾値を超える技術分野を選択する
ことを特徴とする請求項３に記載の公開装置。
【請求項５】
前記推定部は、ある技術分野に属する文章により示される技術要素をノードとし、各技術要素間の関係性をノード間のリンクとして示すグラフ構造において、ポリアの壺に基づく確率で既存のノードから、当該ノードとリンクにより接続される新たなノードが発生するものとして、前記ノードの数とリンクの数との変化の傾向を推定し、
前記選択部は、前記ノードの数とリンクの数との増加率が所定の閾値を超える技術分野を選択する
ことを特徴とする請求項４に記載の公開装置。
【請求項６】
前記推定部は、前記公開部により公開されたプログラムの売上げ値に基づいて、当該プログラムと関連する技術分野の成長性を推定する
ことを特徴とする請求項３〜５のうちいずれか１つに記載の公開装置。
【請求項７】
前記推定部はベイズ最適化により前記成長性を示す値の最適値を推定する
ことを特徴とする請求項６に記載の公開装置。
【請求項８】
前記抽出部は、前記単語組として、名詞となる単語と、副詞句となる単語若しくは単語組と、前記名詞となる単語に関する動詞となる単語とを含む単語組を抽出する
ことを特徴とする請求項１〜７のうちいずれか１つに記載の公開装置。
【請求項９】
前記生成部は、前記抽出部が抽出した名詞となる単語が示す情報を入力した際に、前記動詞となる単語が示す情報を出力するように、ニューラルチューリングマシンを用いてプログラムを生成する
ことを特徴とする請求項８に記載の公開装置。
【請求項１０】
前記生成部は、前記抽出部が抽出した単語組と、所定の操作を示す複数の単語とを組み合わせることで、前記抽出部が抽出した単語組から新たな単語組を生成し、生成した単語組を用いて、前記プログラムを生成する
ことを特徴とする請求項１〜９のうちいずれか１つに記載の公開装置。
【請求項１１】
公開装置が実行する公開方法であって、
所定の処理を示す文章に含まれる単語組であって、所定の構造を有する単語組を抽出する抽出工程と、
前記抽出工程により抽出された単語組を用いて、前記所定の処理を実現するプログラムを生成する生成工程と、
前記生成工程により生成されたプログラムを公開する公開工程と
を含むことを特徴とする公開方法。
【請求項１２】
所定の処理を示す文章に含まれる単語組であって、所定の構造を有する単語組を抽出する抽出手順と、
前記抽出手順により抽出された単語組を用いて、前記所定の処理を実現するプログラムを生成する生成手順と、
前記生成手順により生成されたプログラムを公開する公開手順と
をコンピュータに実行させるための公開プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、公開装置、公開方法および公開プログラムに関する。
【背景技術】
【０００２】
従来、入力された情報の解析結果に基づいて、入力された情報と関連する情報を生成し、生成した情報を応答として出力する技術が知られている。このような技術の一例として、入力されたテキストに含まれる単語、文章、文脈を多次元ベクトルに変換して解析し、解析結果に基づいて、入力されたテキストと類似するテキストや、入力されたテキストに続くテキストを類推し、類推結果を出力する自然言語処理の技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−２２４３３号公報
【特許文献２】特開２０１７−５９０８２号公報
【非特許文献】
【０００４】
【非特許文献１】“DEEPCODER:  LEARNING  TO  WRITE  PROGRAMS”,  Matej  Balog,  Alexander  L.  Gaunt,  Marc  Brockschmidt,  Sebastian  Nowozin,  Daniel  Tarlow,  Published  as  a  conference  paper  at  ICLR  2017
【非特許文献２】“ニューラルチューリングマシン入門”，  森山  直人,  ＜インターネット＞https://www.slideshare.net/naotomoriyama/ss-69549087（平成３０年５月１日検索）
【非特許文献３】“Dynamics  on  expanding  spaces:  modeling  the  emergence  of  novelties”，Vittorio  Loreto,  Vito  D.  P.  Servedio,  Steven  H.  Strogatz,  Francesca  Tria＜インターネット＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、利用者に対して提供されるサービスのライフサイクルが短期化している。しかしながら、従来、利用者に対してサービスの起案から提供までを自動化する手法については、提案がなされていなかった。
【０００６】
本願は、上記に鑑みてなされたものであって、サービスの起案から提供までを自動化することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る公開装置は、所定の処理を示す文章に含まれる単語組であって、所定の構造を有する単語組を抽出する抽出部と、前記抽出部により抽出された単語組を用いて、前記所定の処理を実現するプログラムを生成する生成部と、前記生成部により生成されたプログラムを公開する公開部とを有することを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、サービスの起案から提供までを自動化することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る公開装置が実行する処理の一例を示す図である。
【図２】図２は、実施形態に係る公開装置の構成例を示す図である。
【図３】図３は、実施形態に係る文献データベースに登録される情報の一例を示す図である。
【図４】図４は、実施形態に係る技術グラフデータベースに登録される情報の一例を示す図である。
【図５】図５は、実施形態に係るサービス情報データベースに登録される情報の一例を示す図である。
【図６】図６は、実施形態に係る公開装置が実行する処理の流れの一例を説明するフローチャートである。
【図７】図７は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る公開装置、公開方法および公開プログラムを実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る公開装置、公開方法および公開プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１１】
［実施形態］
〔１−１．公開装置の一例〕
まず、図１を用いて、公開装置が実行する処理の一例について説明する。なお、以下の説明では、公開装置が実行する処理の一例として、所定のサービスを提供するためのアプリケーション（すなわち、ソフトウェア）を自動生成し、生成したアプリケーションを公開する処理、および、アプリケーションの利用に伴う利用者の登録を受付け、アプリケーションとそのアプリケーションを利用する利用者のリスト（すなわち、ユーザーリスト）とを販売対象として提供する処理の一例について説明するが、実施形態は、これに限定されるものではない。
【００１２】
図１は、実施形態に係る公開装置が実行する処理の一例を示す図である。図１では、公開装置１０は、以下に説明する判定処理を実行する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。
【００１３】
より具体的には、公開装置１０は、インターネット等の所定のネットワークＮを介して、管理装置１００、事業者装置２００、および利用者端末３００（例えば、図２を参照）といった任意の装置と通信が可能である。
【００１４】
管理装置１００は、各種のコンテンツを管理する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、管理装置１００は、各種の技術分野に属する論文や特許出願に係る公開公報等のコンテンツを管理する。なお、管理装置１００は、例えば、利用者により投稿されたレシピやＳＮＳ（Social  Networking  Service）に対する投稿等、テキストを含む任意の情報をコンテンツとして管理してよい。
【００１５】
事業者装置２００は、各種の事業者が使用する端末装置であり、例えば、サーバ装置やクラウドシステム、ＰＣ（Personal  Computer）等により実現される。例えば、事業者装置２００は、アプリケーションとユーザーリストとの組を販売可能なサービスを示すサービス情報として受付けると、受付けたサービス情報の内容を事業者に対して提示し、このようなサービス情報の購入を公開装置１０へと通知する機能を有する。
【００１６】
〔１−２．公開処理および提供処理の概要について〕
ここで、従来技術について説明する。利用者に対して提供されるサービスのライフサイクルが短期化している。しかしながら、従来、利用者に対してサービスの起案から提供までを自動化する手法については、提案がなされていなかった。
【００１７】
そこで、公開装置１０は、以下の公開処理を実行する。まず、公開装置１０は、所定の処理を示す文章に含まれる単語組であって、所定の構造を有する単語組を抽出する。続いて、公開装置１０は、抽出された単語組を用いて、所定の処理を実現するプログラムを生成する。そして、公開装置１０は、生成されたプログラムを公開する。
【００１８】
また、公開装置１０は、以下の提供処理を実行する。まず、公開装置１０は、公開されたプログラムを利用する利用者の情報を取得する。そして、公開装置１０は、プログラムに関する情報と、そのプログラムを利用する利用者の情報とを対応付けたサービス情報を、販売可能なサービスに関する情報として事業者等に提供する。
【００１９】
すなわち、公開装置１０は、単語組からプログラムの生成を行い、生成されたプログラムの公開を行う。また、公開装置１０は、公開されたプログラムの利用に関する利用者の情報登録を受けつける。そして、公開装置１０は、プログラムとそのプログラムを利用する利用者のユーザーリストとの組であるサービス情報を販売対象として開示する。すなわち、公開装置１０は、新たなビジネスを実現するプログラムを自動生成し、自動生成したプログラムとそのプログラムを利用する利用者の情報とをセットで販売対象とする。このような処理の結果、公開装置１０は、サービスの生成およびサービスの売却という一連の流れ、換言すると、会社の生成および会社の売却という一連の流れを自動化することができる。
【００２０】
〔１−３．プログラムの生成について〕
ここで、公開装置１０は、単語組からプログラムの生成を行う。例えば、公開装置１０は、単語組として、名詞となる単語と、副詞句となる単語若しくは単語組と、名詞となる単語に関する動詞となる単語とを含む単語組を抽出する。そして、公開装置１０は、単語組に含まれる名詞句が示す情報を入力した際に、その単語組に含まれる副詞句が示す情報を出力するように、プログラムの生成を行う。
【００２１】
具体例を説明すると、例えば、発想や発明の特徴、すなわちアイデアの特徴を説明しているであろう文章は、処理の対象を示す名詞、名詞が示す対象の状態を示す状態表現語若しくは副詞句、および処理の内容を示す動詞とを含むと予測される。また、このような文章は、助詞などの単語間に存在しうる品詞を中括弧で囲むと、「（名詞）｛を｝（状態表現語、副詞句）｛で、によって、にして｝（動詞）｛する、できる｝」といった構造を有すると予測される。  
【００２２】
そこで、公開装置１０は、所定の分野に属するコンテンツから上述した構造を有する文章を抽出し、抽出した文章に含まれる３つの単語、すなわち、名詞、状態表現語若しくは副詞句、および動詞を、発想を示す単語組として抽出する。このようにして抽出された単語組は、所定の格助詞を追加するのみで、発明や発想などのアイデアを示す文章を再現することができるため、単語組の抽出元となる文章が示す概念、すなわち、発明や発想等のアイデアの概念を示すことができる。
【００２３】
ここで、「ＡをＢによりＣする」という文章から、単語組「Ａ」、「Ｂ」、および「Ｃ」を抽出し、「Ａ」が示す情報を入力とした際に、「Ｃ」が示す情報を出力するようにプログラムの生成を行った場合、公開装置１０は、文章が示す概念を実現するプログラムの生成を行うことができると考えられる。そこで、公開装置１０は、単語組から抽出した名詞となる「Ａ」が示す情報を入力した際に、動詞となる「Ｃ」が示す情報を出力するように、プログラムの自動生成を行う。
【００２４】
すなわち、入力「Ａ」と出力「Ｃ」の教師データのペアを集め、ニューラルチューリングマシンを活用したプログラム自動生成装置により、内部パラメータを変えることにより、「Ｂ」にあてはまるプログラムを生成できる。または、任意のいくつかの内部パラメータを変えることにより、プログラムをいくつか自動生成し、その自動生成されたプログラムの中から単語「Ｂ」にあてはまるものを抽出してもよい。
【００２５】
例えば、公開装置１０は、「利用者を属性情報によりグルーピングする」という文章から、上記「Ａ」に対応する「利用者」、上記「Ｂ」に対応する「属性情報」、および上記「Ｃ」に対応する「グルーピング」を抽出する。そして、公開装置１０は、単語「利用者」が示す情報として、利用者に関する各種の情報を収集する。また、同様に「グルーピング」に関する情報を収集する。例えば、公開装置１０は、単語「利用者」が示す性別情報や、男女のグルーピング情報のペアなどを教師データとして、プログラムを自動生成するニューラルチューリングマシン装置に入力し、内部パラメータとして、「属性情報」に関するものの重みが大きくななるような調整をすることにより、この３つの単語が意図するプログラムを自動生成できるようになる。
【００２６】
なお、このような情報の取得は、例えば、各種のデータが格納されたデータベースの項目名と、単語組として抽出された名詞との類似性に基づいて収集すればよい。例えば、公開装置１０は、データベースに登録された項目の分散表現と、抽出された名詞の分散表現との類似性が所定の閾値を超える場合は、その項目の情報を名詞が示す情報として収集すればよい。また、例えば、公開装置１０は、データベースの各項目から、抽出された名詞の分散表現と、抽出された副詞句の分散表現との和に類似する分散表現と対応する項目を特定し、特定した項目の情報を取得すればよい。
【００２７】
また、公開装置１０は、「グルーピング」と対応する情報を収集する。例えば、公開装置１０は、単語「利用者」および「グルーピング」と対応する情報を収集する。より具体的な例を挙げると、公開装置１０は、データベースから、利用者が属するグループを示す各種の情報を収集する。
【００２８】
そして、公開装置１０は、収集した情報からプログラムの自動生成を行う。例えば、公開装置１０は、抽出した名詞となる単語が示す情報を入力した際に、動詞となる単語が示す情報を出力するように、ニューラルチューリングマシンを用いてプログラムを生成する。例えば、非特許文献１に示すように、ニューラルネットワークを用いたチューリングマシンであるニューラルチューリングマシンを用いて、入力データから出力データを生成するプログラムを自動生成する手法が提案されている。
【００２９】
このようなニューラルチューリングマシンＭ１は、例えば、図１に示すように、メモリ（Ｍｅｍｏｒｙ）と、チューリングマシンの読出しヘッド（Ｒｅａｄ  Ｈｅａｄｓ）と、チューリングマシンの書込みヘッド（Ｗｒｉｔｅ  Ｈｅａｄｓ）と、入力（Ｅｘｔｅｒｎａｌ  Ｉｎｐｕｔ）に基づいて読出しヘッドおよび書込みヘッドを操作し、入力に応じた出力（Ｅｘｔｅｒｎａｌ  Ｏｕｔｐｕｔ）を生成するコントローラ（Ｃｏｎｔｒｏｌｌｅｒ）とを有する。また、このようなニューラルチューリングマシンＭ１において、コントローラは、ＲＮＮ（Recurrent  Neural  Network）やＬＳＴＭ（Long  short-term  memory）といった再帰型ニューラルネットワークにより実現される。
【００３０】
このようなニューラルチューリングマシンＭ１について、ある入力データからある出力データを生成するように学習を行った場合、ニューラルチューリングマシンＭ１のメモリには、ある入力データからある出力データを出力するためのプログラムが格納されることとなる。そこで、公開装置１０は、コンテンツから抽出した単語組の名詞が示す情報から、動詞が示す情報を出力するようにニューラルチューリングマシンＭ１の学習を行うことで、プログラムの自動生成を実現する。
【００３１】
〔１−４．グラフを用いた分野の絞り込みについて〕
ここで、上述したように、単語組を学習データとしてプログラムの自動生成を行う場合、生成されるプログラムの斬新さは、学習データとなる単語組に依存すると考えられる。このため、抽出される単語組は、斬新な技術分野、すなわち、イノベーションが発生しやすい分野に属する概念を示す単語組であることが望ましい。
【００３２】
このようなイノベーションが発生しやすい分野、すなわち、発展性が豊かな分野においては、既存技術から新たな技術が生じやすい分野における新たな技術の生じやすさは、その分野に属する既存技術から新たな技術がどのように生じるかを特定することで判断できると考えられるものの、このような技術の発展を精度良く連続的にとらえるには、多くの情報が必要になると考えられる。また、利用者の対話に要する場合以外にも、イノベーションを起こしやすい分野を特定することができるのであれば、技術開発等の用途に用いることも可能である。  
【００３３】
そこで、公開装置１０は、技術分野に属するコンテンツの増加率に基づいて成長を推定し、推定された成長性が所定の条件を満たす技術分野を選択する。例えば、公開装置１０は、成長性が所定の閾値を超える技術分野を選択する。そして、公開装置１０は、選択された技術分野に属するコンテンツから通出された文章に含まれる単語組を抽出する。
【００３４】
例えば、公開装置１０は、所定の技術分野に属する単語組で表される技術要素をノードとし、各要素間の関係性をノード間のリンクとして示すグラフ情報（以下、「技術グラフ」と記載する。）を生成する。このようなグラフ情報は、ある分野に属する技術要素が、どのような技術要素から生じたものであるかを示す情報である。例えば、第１技術要素が、第２技術要素と第３技術要素との組合せである場合や、第２技術要素と第３技術要素とから発展した技術である場合、第１技術要素と対応するノードは、リンクを介して、第２技術要素と対応するノードおよび第３技術要素と対応するノードと接続される。  
【００３５】
ここで、公開装置１０は、ある分野に属する技術を示す情報であれば、任意の情報を技術要素としてよい。例えば、公開装置１０は、ある分野に属する特許発明や特許出願を技術要素とし、各技術要素同士の関係性を技術グラフに落とし込んでもよい。また、公開装置１０は、１つの論文を１つの技術要素と見做し、引用関係がある論文同士をリンクにより接続することで、技術グラフを生成してもよい。また、公開装置１０は、共通性を有する複数の論文を１つの技術要素と見做してもよい。  
【００３６】
このような技術グラフにおいて、ノードの数の増加傾向は、その分野に属する技術要素の増加傾向、すなわち、新たな技術要素の増加傾向を示す。このような新たな技術要素の増加傾向は、その分野におけるイノベーションの生じやすさの指標と見做すことができる。また、このような技術グラフにおいて、リンクの数の増加傾向は、その分野においてある技術から他の技術がどれくらい生じやすいかを示すと考えられる。すなわち、リンクの数の増加傾向は、その分野において新たな技術が生じた際に、その技術に基づいて新たな技術がどれくらい生じやすいか、潜在的な技術発展の可能性の指標となりえる情報である。
【００３７】
そこで、公開装置１０は、ある分野に対応する技術グラフを生成し、生成した技術グラフの発展態様を特定する。より具体的には、公開装置１０は、ノードの数の増加傾向とリンクの数の増加傾向とを推定する。そして、公開装置１０は、推定した増加傾向に基づいて、技術グラフと対応する分野が成長しやすい分野であるか否か、その分野が成長する分野であるか否か等、その分野における技術発展の傾向を推定する。
【００３８】
例えば、公開装置１０は、ノードの数の増加傾向に基づいて、対応する分野に属する新たな技術の発生傾向を推定してもよい。例えば、公開装置１０は、処理対象となる分野と対応する技術グラフにおいて、所定の時間内に増加するノードの数が所定の閾値を超える場合は、処理対象となる分野が成長しやすい分野である旨を推定してもよい。
【００３９】
また、例えば、公開装置１０は、リンクの数の増加傾向に基づいて、対応する分野に属する新たな技術の発生傾向を推定してもよい。例えば、公開装置１０は、処理対象となる分野と対応する技術グラフにおいて、所定の時間内に増加するリンクの数が所定の閾値を超える場合は、対象分野が成長しやすい分野である旨を推定してもよい。
【００４０】
ここで、ノードの数の増加傾向とリンクの数の増加傾向とが類似する場合（例えば、ノードが１つ増加した際にリンクが１つ増加する場合）、その分野における技術は、既存技術から段階的に発展していくと推定される。また、ノードの数の増加傾向をリンクの数の増加傾向が所定の閾値だけ上回る場合（例えば、ノードが１つ増加した際にリンクが５つ以上増加する傾向にある場合）は、ある１つの技術から新たな複数の技術が生じやすい分野であると推定される。
【００４１】
そこで、公開装置１０は、ノードの数の増加傾向とリンクの数の増加傾向とに基づいて、対応する分野に属する新たな技術の発生傾向を推定してもよい。例えば、公開装置１０は、ノードの数の増加傾向とリンクの数の増加傾向と差に基づいて、対応する分野に属する新たな技術の発生傾向を推定してもよい。例えば、公開装置１０は、ノードの数の増加傾向と比較して、リンクの数の増加傾向が多い場合は、対象分野に属する技術が発展しやすい技術である旨を推定してもよい。
【００４２】
このように、公開装置１０は、技術グラフにおけるノードの数の増加傾向やリンクの数の増加傾向に基づいて、その分野における技術発展のしやすさを推定する。この結果、公開装置１０は、イノベーションが生じやすい分野を利用者に対して提示することができる。
【００４３】
〔１−５．技術グラフの発展について〕
ここで、公開装置１０は、過去の技術要素の数の変化や、技術要素間の関係性の変化に基づいて、その分野における技術グラフの発展を示すパラメータを推定し、推定したパラメータに基づいて技術グラフに含まれるノードやリンクの数を変化させることで、対象分野における将来の技術発展のしやすさを予測してもよい。
【００４４】
例えば、ある分野における技術の発展は、技術グラフにおけるノードやリンクの数の変化と見做すことができるが、このようなノードやリンクの数の変化は、冪分布で仮想的に再現されると予測される（例えば、非特許文献１参照）。そこで、公開装置１０は、冪分布に従って、既存のノードから、そのノードとリンクにより接続される新たなノードが発生するものとして、ノードの数とリンクの数との変化の傾向を推定してもよい。
【００４５】
なお、公開装置１０は、任意の構成を有するグラフを技術グラフの初期モデルとして採用してもよい。例えば、公開装置１０は、バラバシ・アルバートモデルを用いて、技術グラフの初期状態を生成し、生成したグラフ情報に含まれるノードから、そのノードとリンクにより接続される新たなノードが発生するものとして、ノードの数とリンクの数との変化の傾向を推定してもよい。
【００４６】
例えば、公開装置１０は、技術グラフの初期モデルとして、ｍ個のノードを有する完全グラフを生成する。続いて、公開装置１０は、新しいノードを１つ追加し、追加したノードと他のノードとの間を所定の確率で接続するリンクを設定する。このような処理をノードの数が所定の数になるまで繰り返すことで、公開装置１０は、初期モデルの生成を行ってもよい。なお、上述した技術以外にも、公開装置１０は、例えば、ワッツ・ストロガッツモデル等、複雑グラフの初期モデルを生成するための各種の手法を採用して、技術グラフの初期モデルを生成してよい。
【００４７】
〔１−６．ポリアの壺アルゴリズムについて〕
ここで、非特許文献３で示されるように、技術分野の発展をポリアの壺アルゴリズムにより数学的に表す手法が考えられる。そこで、公開装置１０は、ポリアの壺アルゴリズムを用いて、技術グラフを発展させ、技術グラフのノードやリンクの数の増加傾向に基づいて、対象分野における将来の発展傾向を推定してもよい。より具体的には、公開装置１０は、ある技術分野に属する文章により示される技術要素をノードとし、各技術要素間の関係性をノード間のリンクとして示すグラフ構造において、ポリアの壺に基づく確率で既存のノードから、そのノードとリンクにより接続される新たなノードが発生するものとして、ノードの数とリンクの数との変化の傾向を推定し、ノードの数とリンクの数との増加率が所定の閾値を超える技術分野を選択してもよい。
【００４８】
以下、ポリアの壺アルゴリズムの一例について説明する。例えば、ポリアの壺アルゴリズムにおいては、それぞれ異なる色の玉が入れられた壺からランダムに１つの玉が取り出され、取り出された玉が、初めて取り出された玉の色であるか否かが判定される。そして、取り出された玉が、過去に取り出された玉と同じ色である場合は、取り出された玉が壺に戻されるとともに、その玉と同じ色の玉が所定の数だけ壺に追加される。一方、取り出された玉が初めて取り出された色である場合は、取り出された玉が壺に戻され、その玉と同じ色の玉が所定の数だけ壺に追加されるとともに、それぞれ色が異なる所定の数の玉であって、それぞれが新たな色を有する玉が壺に入れられる。  
【００４９】
このようなポリアの壺アルゴリズムは、ある分野における技術要素の発展の確率モデルと見做せる。例えば、壺の中に入れられた玉を技術要素とした場合、壺の中から取り出された玉の色が初めて取り出された玉の色である確率は、新たな技術要素が発生する確率と対応付けることができる。また、取り出された玉が初めて取り出された色である場合に、新たに壺の中に入れられる新たな色の玉の数は、新たな技術要素が発生した際にその技術から将来発生する新たな技術要素の数を示すパラメータと対応付けることができる。また、取り出された玉とともに壺に入れられる玉であって、壺の中から取り出された玉と同じ色の玉の数は、技術要素間の関係性、すなわち、リンクが生じるパラメータと対応付けることができる。  
【００５０】
そこで、公開装置１０は、ポリアの壺アルゴリズムを用いて、技術グラフを発展させ、対象分野における将来の発展傾向を推定する。例えば、公開装置１０は、複数種別の要素の集合からいずれかの要素が選択された際に、選択された要素とともに選択された要素とは異なる種別の要素を集合に加えた後において各種別の要素が選択される確率に基づいて、既存のノードから、そのノードとリンクにより接続される新たなノードが発生するものとして、ノードの数とリンクの数との変化の傾向を推定してもよい。
【００５１】
〔１−７．データの拡張について〕
ここで、ニューラルチューリングマシンを学習することでプログラムの自動生成を行う場合、多くの学習データが必要になるとも考えられる。そこで、公開装置１０は、データの自動拡張を行ってもよい。例えば、公開装置１０は、抽出した単語組と、所定の操作を示す複数の単語とを組み合わせることで、抽出した単語組から新たな単語組を生成し、生成した単語組を用いて、プログラムを生成してもよい。
【００５２】
例えば、公開装置１０は、複数の名詞が登録された事象データを有し、単語組に含まれる名詞をあらかじめ記憶した名詞に変更した単語組を新たに生成してもよい。また、公開装置１０は、ｗｏｒｄ２ｖｅｃ等の技術を用いて、単語組に含まれる名詞をベクトル化し、ベクトルの比較結果に基づいて、単語組に含まれる名詞と類似する他の名詞を特定する。そして、公開装置１０は、単語組に含まれる名詞を特定した他の名詞に変換した単語組を生成してもよい。また、公開装置１０は、名詞のベクトルとベクトル空間上におけるユークリッド距離が所定の閾値以上となるが、コサイン距離が所定の範囲内となるベクトルと対応する単語を特定し、特定した単語を含む単語組を生成することで、分野が異なるが概念が類似する単語組の生成を行ってもよい。
【００５３】
また、例えば、公開装置１０は、単語組に含まれる各単語をベクトル化し、各単語のベクトルに基づいて、単語組が示す概念を示すベクトルを生成する。そして、公開装置１０は、生成したベクトルと類似するベクトルを特定し、特定したベクトルと対応する単語組を学習データとして抽出してもよい。
【００５４】
〔１−８．処理の一例について〕
以下、図１を用いて、公開装置１０が実行する処理の一例について説明する。まず、公開装置１０は、管理装置１００から各技術分野に属するコンテンツを収集する（ステップＳ１）。例えば、公開装置１０は、各技術分野に属する公開公報や論文を収集する。このような場合、公開装置１０は、ある分野に属する技術要素をノードとし、技術要素間の関係性をリンクとすることで、技術分野ごとに、その分野に属する技術要素と技術要素間の関係とを示すグラフ情報、すなわち技術グラフを生成する（ステップＳ２）。
【００５５】
例えば、公開装置１０は、所定の第１カテゴリに属する特許発明や論文を技術要素とし、技術要素間の関係性を特定する。そして、公開装置１０は、技術要素をノードにあてはめ、技術要素間の関係性を示すリンクを設定した技術グラフを生成する。なお、このような技術グラフの生成については、任意のグラフ生成技術が採用可能である。  
【００５６】
続いて、公開装置１０は、ポリアの壺アルゴリズムに基づいて、将来の技術要素と関係性との増加態様を推定する（ステップＳ３）。例えば、公開装置１０は、ポリアの壺アルゴリズムにおいて関連性が生じる確率のパラメータに対し、新たなリンクが生じる速度に応じた値を設定し、新たな技術要素が生まれる確率のパラメータに対し、新たな技術要素が生じる速度に応じた値を設定する。このようなパラメータに対して設定される値は、例えば、対象分野における過去の複数時点における技術グラフを生成し、生成した技術グラフ同士の比較結果に基づいて、設定されてもよい。
【００５７】
続いて、公開装置１０は、各分野におけるノードとリンクとの数の変化に基づいて、対象分野の成長傾向を推定する（ステップＳ４）。例えば、公開装置１０は、第１カテゴリと対応する技術グラフの状態であって、将来のタイミングＴ１における状態Ｎ１（Ｔ１）、将来のタイミングＴ２における状態Ｎ１（Ｔ２）、および将来のタイミングＴ３におけるＮ１（Ｔ３）を推定する。そして、公開装置１０は、状態Ｎ１（Ｔ１）、Ｎ１（Ｔ２）、およびＮ１（Ｔ３）の変化に基づいて、第１カテゴリの成長速度＃１を推定する。例えば、公開装置１０は、状態Ｎ１（Ｔ１）におけるノードとリンクとの数、Ｎ１（Ｔ２）におけるノードとリンクとの数、およびＮ１（Ｔ３）におけるノードとリンクとの数の変化に基づいて、第１カテゴリの成長速度＃１を推定する。例えば、公開装置１０は、ノードの数の増加量の平均値やリンクの数の増加量の平均値に基づいて、成長速度＃１を推定してもよい。  
【００５８】
同様に、公開装置１０は、第２カテゴリと対応する技術グラフの状態であって、将来のタイミングＴ１における状態Ｎ２（Ｔ１）、将来のタイミングＴ２における状態Ｎ２（Ｔ２）、および将来のタイミングＴ３におけるＮ２（Ｔ３）を推定する。そして、公開装置１０は、状態Ｎ２（Ｔ１）、Ｎ２（Ｔ２）、およびＮ２（Ｔ３）の変化に基づいて、第２カテゴリの成長速度＃２を推定する。  
【００５９】
そして、公開装置１０は、成長速度が速いカテゴリを選択し、選択したカテゴリ、すなわち、技術分野に属する文献から所定の構造を有する単語組を抽出する（ステップＳ５）。例えば、図１中（Ａ）に示すように、アイデアの特徴を示す文章は、「（名詞）｛を｝（状態表現語、副詞句）｛で、によって、にして｝（動詞）｛する、できる｝」という構造を有すると予測される。そこで、公開装置１０は、選択した技術分野に属する文献から形態素解析等の技術を用いて、「（名詞）｛を｝（状態表現語、副詞句）｛で、によって、にして｝（動詞）｛する、できる｝」という構造の文章を抽出する。
【００６０】
そして、公開装置１０は、図１中（Ｂ）に示すように、抽出した文章に含まれる名詞を単語＃１とし、状態表現語又は副詞句を単語＃２とし、動詞を単語＃３として抽出し、抽出した各単語＃１〜＃３を含む単語組を生成する。なお、このようにして生成された単語組は、図１中（Ｃ）に示すように、抽出した文章が示すアイデアの特徴、すなわち概念ｃεを含むこととなる。
【００６１】
そして、公開装置１０は、抽出した単語組に含まれる単語が示す情報を学習データとして、ニューラルチューリングマシンの学習を行うことで、プログラムの自動生成を行う（ステップＳ６）。すなわち、公開装置１０は、抽出した単語組が示す概念ｃεを実現するプログラムの生成を行う。例えば、公開装置１０は、単語組に含まれる名詞と対応する情報を入力した際に、単語組に含まれる動詞と対応する情報を出力するように、ニューラルチューリングマシンＭ１の学習を行うことで、プログラムの自動生成を行う。
【００６２】
続いて、公開装置１０は、生成したプログラムを利用者に対して公開する（ステップＳ７）。そして、公開装置１０は、公開したプログラムを利用するための利用登録を利用者から受付ける（ステップＳ８）。すなわち、公開装置１０は、プログラムについてのユーザ登録を受付ける。
【００６３】
このようなプログラムとそのプログラムに対するユーザ登録を行った利用者のユーザーリストとの組は、販売可能なサービスと見做すことができる。そこで、公開装置１０は、プログラムと、利用登録した利用者のリストとの組を、販売可能なサービス内容を示すサービス情報として事業者に公開する（ステップＳ９）。このような処理の結果、公開装置１０は、所定のサービスを提供するプログラムの自動生成からサービスの販売、ひいては会社の販売までの一連の流れを自動化することができる。
【００６４】
なお、公開装置１０は、図示を省略した所定の決済サーバ等と連携することにより、サービスの販売までを自動的に行ってもよい。
【００６５】
〔１−９．公開後における人気度に応じた成長性の推定について〕
ここで、公開装置１０は、プログラムを公開した後の売上げ値を反映させた状態で、成長性の推定を行ってもよい。例えば、公開装置１０は、公開されたプログラムの売上げ値に基づいて、プログラムと関連する技術分野の成長性を推定してもよい。より具体的には、公開装置１０は、ベイズ最適化により成長性を示す値の最適値を推定してもよい。
【００６６】
例えば、公開装置１０は、ある技術分野のコンテンツから自動生成したプログラムの売上値を特定し、特定した売上値に基づいて、技術分野の成長性を推定する。例えば、公開装置１０は、売上値が高ければ高い程、技術分野の成長性がより高いものとして、技術分野の成長性を推定する。例えば、公開装置１０は、ベイズ推定におけるベイズ最適化の技術を用いて、売上値から、技術分野の成長性を示す値の最適値を推定する。すなわち、公開装置１０は、プログラムの売上値に基づいてベイズ推定における事後確率を特定し、特定した事後確率から、成長性を示すより確度の高い確率分布を推定すればよい。
【００６７】
〔２．公開装置の構成〕
以下、上記した提供処理を実現する公開装置１０が有する機能構成の一例について説明する。図２は、実施形態に係る公開装置の構成例を示す図である。図２に示すように、公開装置１０は、通信部２０、記憶部３０、および制御部４０を有する。
【００６８】
通信部２０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部２０は、ネットワークＮと有線または無線で接続され、管理装置１００、利用者端末３００、および事業者装置２００との間で情報の送受信を行う。
【００６９】
記憶部３０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部３０は、文献データベース３１、拡張単語データベース３２、ニューラルチューリングマシン３３、、技術グラフデータベース３４およびサービス情報データベース３５を記憶する。
【００７０】
文献データベース３１には、コンテンツとしての文献の情報が登録される。例えば、図３は、実施形態に係る文献データベースに登録される情報の一例を示す図である。図３に示すように、文献データベース３１には、「文献ＩＤ（Identifier）」、「文章データ」、および「分野」といった情報が対応付けて登録されている。
【００７１】
ここで、「文献ＩＤ」とは、文献を示す識別子である。また、「文章データ」とは、文献に含まれるテキスト、すなわち、文章のデータである。また、「分野」とは、対応付けられた「文献ＩＤ」が示す文献が属する技術分野（すなわち、カテゴリ）を示す情報である。例えば、図３に示す例では、文献データベース３１には、文献ＩＤ「文献＃１」、文章データ「データ＃１」、分野「分野＃１」が対応付けて登録されている。このような情報は、文献ＩＤ「文献＃１」が示す文献に含まれるテキストが文章データ「データ＃１」であり、文献ＩＤ「文献＃１」が示す文献が分野「分野＃１」に属する文献である旨を示す。
【００７２】
なお、図３に示す例では、「文献＃１」、「データ＃１」、「分野＃１」等といった概念的な値について記載したが、実際には、文献を識別する文字列や数値、文章を構成する文字列、技術分野を示す数値や文字列等が登録されることとなる。また、図３に示す情報は、あくまで一例であり、文献データベース３１には、図３に示す情報以外にも任意の情報が登録されていてよい。
【００７３】
図２に戻り、説明を続ける。拡張単語データベース３２は、単語組を拡張する際に用いる操作的動詞が登録されている。例えば、拡張単語データベース３２には、コバーク＆バクナールの操作的動詞を含む操作的動詞リストが予め登録されている。
【００７４】
ニューラルチューリングマシン３３は、入力データから出力データを生成するためのプログラムを生成するモデルであり、例えば、ＲＮＮやＬＳＴＭ等のニューラルネットワークと、ニューラルネットワークがアクセス可能なメモリとにより構成される。
【００７５】
技術グラフデータベース３４には、技術グラフが登録されている。例えば、図４は、実施形態に係る技術グラフデータベースに登録される情報の一例を示す図である。図４に示す例では、技術グラフデータベース３４には、「カテゴリ」、「パラメータ」、「リンクＩＤ（Identifier）」、「第１ノードＩＤ」、および「第２ノードＩＤ」等といった項目を有する情報が、技術グラフごとに登録される。  
【００７６】
ここで、「カテゴリ」とは、技術グラフと対応する対応カテゴリを示す情報である。また、「パラメータ」とは、対応する技術グラフにおいてノードやリンクの数がどのように増加していくかを示すパラメータである。また、「リンクＩＤ」とは、技術グラフに含まれるリンクを識別するための情報である。また、「第１ノードＩＤ」および「第２ノードＩＤ」とは、対応付けられた「リンクＩＤ」が示すリンクによって接続されたノード、すなわち、関連性を有する２つの技術要素を示すノードを識別する情報である。  
【００７７】
例えば、図４に示す例では、「技術グラフ＃１」が示す技術グラフの情報として、カテゴリ「カテゴリ＃１」、パラメータ「パラメータ＃１」、リンクＩＤ「リンク＃１」、第１ノードＩＤ「ノード＃１」、および第２ノードＩＤ「ノード＃２」が対応付けて登録されている。このような情報は、「技術グラフ＃１」が示す技術グラフが、「カテゴリ＃１」と対応する技術グラフであり、上述したρやｖの値として、パラメータ「パラメータ＃１」が設定され、リンクＩＤ「リンク＃１」が示すリンクにより、第１ノードＩＤ「ノード＃１」が示すノードと、第２ノードＩＤ「ノード＃２」が示すノードとが接続されている旨を示す。
【００７８】
なお、図４に示す例では、「カテゴリ＃１」、「リンク＃１」、「ノード＃１」等といった概念的な値について記載したが、実際には、カテゴリを示す文字列や数値、リンクやノードを示す文字列や数値等が登録されることとなる。また、図４に示す情報は、あくまで一例であり、技術グラフデータベース３１には、グラフ構造を有するデータであれば、任意の形式のデータが登録されていてよい。
【００７９】
図２に戻り、説明を続ける。サービス情報データベース３５には、プログラムと、そのプログラムの利用登録を行った利用者のユーザーリストとが対応付けて登録されている。例えば、図５は、実施形態に係るサービス情報データベースに登録される情報の一例を示す図である。図５に示す例では、サービス情報データベース３５には、「サービスＩＤ」、「プログラム」、および「ユーザーリスト」等といった項目を有する情報が対応付けて登録されている。
【００８０】
ここで、「サービスＩＤ」とは、サービス情報を識別するための識別子である。また、「プログラム」とは、公開装置１０が公開したプログラムである。また、「ユーザーリスト」とは、対応付けられた「プログラム」についての利用登録を行った利用者のリストであり、例えば、利用登録の際に登録された各種の利用者情報である。
【００８１】
例えば、図５に示す例では、サービス情報データベース３５には、サービスＩＤ「サービス＃１」、プログラム「プログラム＃１」、およびユーザーリスト「リスト＃１」といった情報が対応付けて登録されている。このような情報は、サービスＩＤ「サービス＃１」が示すサービス情報として、プログラム「プログラム＃１」とユーザーリスト「リスト＃１」とが対応付けられている旨を示す。
【００８２】
なお、図５に示す例では「サービス＃１」、「プログラム＃１」、および「リスト＃１」といった概念的な値を記載したが、実際には、サービス情報データベース３５には、サービス情報を識別するための文字列や数値、プログラムコード、および複数の利用者情報を対応付けたユーザーリストの情報等が登録されることとなる。また、サービス情報データベース３５には、図５に示す情報以外にも、任意の情報が登録されていてよい。
【００８３】
図２に戻り、説明を続ける。制御部４０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等のプロセッサによって、公開装置１０内部の記憶装置に記憶されている各種プログラムがＲＡＭ等を作業領域として実行されることにより実現される。また、制御部４０は、コントローラ（controller）であり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されてもよい。
【００８４】
図２に示すように、制御部４０は、収集部４１、推定部４２、選択部４３、抽出部４４、生成部４５、公開部４６、取得部４７、及び提供部４８を有する。
【００８５】
収集部４１は、単語組の抽出元となるコンテンツとして、各技術分野に属する文献を収集する。例えば、収集部４１は、管理装置１００が管理する文献を収集し、収集した文献を文献データベース３１に登録する。
【００８６】
推定部４２は、技術分野ごとに、技術分野に属するコンテンツの増加率に基づいて成長性を推定する。例えば、推定部４２は、ある技術分野に属する文章により示される技術要素をノードとし、各技術要素間の関係性をノード間のリンクとして示すグラフ構造において、ポリアの壺に基づく確率で既存のノードから、そのノードとリンクにより接続される新たなノードが発生するものとして、ノードの数とリンクの数との変化の傾向を推定する。
【００８７】
例えば、推定部４２は、カテゴリごとに技術グラフの初期グラフを生成する。例えば、推定部４２は、あるカテゴリに属する論文や特許発明等を技術要素とするとともに、技術要素間の関係性を特定する。例えば、推定部４２は、形態素解析や文章解析の各種公知技術を用いて、論文や特許発明の明細書に含まれる単語群を抽出し、抽出した単語群が示す技術要素と、技術要素同義の関係性とを特定する。このような特定は、例えば、各種意図解析の技術を用いて、イノベーションの単位となる技術を特定することにより実現されてもよい。また、推定した技術同士の関係性を単語群の共起姓に基づいて、技術要素間の関係性を特定してもよい。すなわち、推定部４２は、各種の意図解析技術を用いて、技術要素を特定し、単語群の類似性や共起性に基づいて単語群が示す意味同士の関係性を推定する推定技術を用いて、技術要素間の関係性を特定するのであれば、任意の意図解析技術や推定技術を採用してよい。
【００８８】
そして、推定部４２は、特定した技術要素をノードとし、技術要素間の関係性をリンクとした技術グラフを生成し、生成した技術グラフを技術グラフデータベース３４に登録する。なお、推定部４２は、バラバシ・アルバートモデルを用いて、グラフ情報の初期状態を生成し、生成したグラフ情報を技術グラフとして技術グラフデータベース３４に登録してもよい。
【００８９】
また、推定部４２は、技術グラフごとに、グラフの成長を示す各種パラメータの値を設定する。例えば、推定部４２は、実際の論文数や特許発明数等といった技術要素の数の変化に基づいて、単位時間あたりのノードの増加量を特定してもよい。また、推定部４２は、実際の技術要素間の関係性の変化に基づいて、単位時間あたりのリンクの増加量を特定してもよい。そして、推定部４２は、これらノードの増加量やリンクの増加量に基づいて、グラフの成長を示す各種パラメータを、技術グラフデータベース３４に登録する。
【００９０】
続いて、推定部４２は、技術文献に属する単語群で表される技術要素をノードとし、各要素間の関係性をノード間のリンクとして示すグラフ情報に含まれるノードの数とリンクの数との変化の傾向に基づいて、各技術分野における変化の傾向を推定する。例えば、推定部４２は、技術グラフデータベース３１に登録された各技術グラフごとに、対応するパラメータに基づいて、各技術グラフのノードやリンクの数を増加させる。すなわち、推定部４２は、パラメータに基づいて、技術グラフを成長させる。そして、推定部４２は、成長させた技術グラフを将来の技術グラフと見做すことで、ノードやリンクの数の増加量を特定し、特定した増加量に基づいて、対象分野の成長態様を推定する。
【００９１】
例えば、推定部４２は、対象分野における変化の傾向として、対象分野が成長するか否かを推定してもよい。また、推定部４２は、ノードの数の増加傾向に基づいて、対象分野に属する新たな技術の発生傾向を推定してもよい。また、推定部４２は、ノードの数の増加傾向と、リンクの数の増加傾向とに基づいて、対象分野に属する技術の発展のしやすさを推定してもよい。
【００９２】
なお、推定部４２は、ノードの数の増加傾向やリンクの数の増加傾向に基づいて、対象分野の成長速度がどの程度であるか、どのような態様で対象分野が成長するかを推定してもよい。例えば、推定部４２は、ノードの数の増加傾向と比較して、リンクの数の増加傾向が多い場合は、対象分野に属する技術が発展しやすい技術である旨を推定してもよい。
【００９３】
ここで、推定部４２は、冪分布に従って、既存のノードから、そのノードとリンクにより接続される新たなノードが発生するものとして、ノードの数とリンクの数との変化の傾向を推定する。例えば、推定部４２は、技術グラフデータベース３４に登録された技術グラフと、技術グラフと対応するパラメータとを読み出す。そして、推定部４２は、複数種別の要素の集合からいずれかの要素が選択された際に、選択された要素とともに選択された要素とは異なる種別の要素を集合に加えた後において各種別の要素が選択される確率に基づいて、既存のノードから、そのノードとリンクにより接続される新たなノードが発生するものとして、ノードの数とリンクの数との変化の傾向を推定する。すなわち、推定部４２は、ポリアの壺アルゴリズムに基づいて、ノードの数とリンクの数との変化の傾向を推定する。
【００９４】
選択部４３は、推定された成長性が所定の条件を満たす技術分野を選択する。例えば、選択部４３は、成長性が所定の閾値を超える技術分野を選択する。また、選択部４３は、ノードの数とリンクの数との増加率が所定の閾値を超える技術分野を選択する。例えば、選択部４３は、ノードの数の増加傾向やリンクの数の増加傾向が所定の閾値を超える技術分野、成長速度が所定の閾値を超える技術分野等、推定部４２によって発展しやすいと推定された技術分野を選択する。
【００９５】
抽出部４４は、所定の処理を示す文章に含まれる単語組であって、所定の構造を有する単語組を抽出する。例えば、抽出部４４は、選択部４３により選択された技術分野に属する文献を文献データベース３１から抽出し、抽出した文献に含まれる文章から所定の構造を有する単語組を抽出する。例えば、抽出部４４は、単語組として、名詞となる単語と、副詞句となる単語若しくは単語組と、前記名詞となる単語に関する動詞となる単語とを含む単語組を抽出する。
【００９６】
生成部４５は、抽出された単語組を用いて、所定の処理を実現するプログラムを生成する。例えば、生成部４５は、抽出した単語組に含まれる単語のうち、名詞となる単語が示す情報を入力した際に、動詞となる単語が示す情報を出力するように、ニューラルチューリングマシンを用いてプログラムを生成する。また、生成部４５は、抽出部４４が抽出した単語組を受付けると、抽出した単語組と、所定の操作を示す複数の単語とを組み合わせることで、抽出した単語組から新たな単語組を生成し、生成した単語組を用いて、プログラムを生成する。
【００９７】
例えば、生成部４５は、単語組に含まれる単語を拡張単語データベース３２に登録された単語に置き換えることで、抽出部４４が抽出した単語組から新たな単語組を生成する。そして、生成部４５は、生成した単語組に基づいて、入力データおよび出力データを取得する。例えば、生成部４５は、単語組の名詞と対応する情報、若しくは、単語組の名詞および副詞句と対応する情報を入力データとして収集するとともに、単語組の動詞と対応する情報を収集する。
【００９８】
そして、生成部４５は、収集した情報を用いて、ニューラルチューリングマシン３３の学習を行う。このような処理の結果、ニューラルチューリングマシン３３のメモリには、入力データから出力データを生成するプログラムが格納されることとなる。このため、生成部４５は、ニューラルチューリングマシン３３のメモリに格納されたプログラムを生成されたプログラムとして取得する。
【００９９】
公開部４６は、生成部４５により生成されたプログラムを公開する。例えば、公開部４６は、生成部４５により生成されたプログラムの内容を示す情報を利用者端末３００に対して配信する。そして、公開部４６は、例えば、利用者がプログラムの利用登録を行った場合は、利用登録の対象となるプログラムを利用者端末３００に配信する。
【０１００】
取得部４７は、公開されたプログラムを利用する利用者の情報を取得する。より具体的には、取得部４７は、利用者からプログラムの利用登録を受付ける。例えば、取得部４７は、利用登録が行われる際、利用者端末３００から利用者の氏名、年齢、住所等といった利用者情報を取得する。そして、取得部４７は、プログラムごとに、そのプログラムと、そのプログラムに対する利用登録を行った利用者情報とを対応付けたサービス情報を生成し、生成したサービス情報をサービス情報データベース３５に登録する。
【０１０１】
提供部４８は、プログラムに関する情報と、プログラムを利用する利用者の情報とを対応付けたサービス情報を、販売可能なサービスに関する情報として提供する。例えば、提供部４８は、サービス情報データベース３５を参照し、各種のサービス情報を示すサムネイルを生成する。なお、このようなサムネイルには、例えば、サービス情報に含まれるプログラムの一部や、プログラムが実現する処理の内容等を示す文字列が含まれていてもよい。そして、提供部４８は、販売可能なサービスを示す情報として、生成したサムネイルを事業者装置２００に送信する。
【０１０２】
また、例えば、提供部４８は、事業者装置２００からいずれかのサービスを購入する旨の通知を受付けた場合や、図示を省略した決済サーバによりサービスの購入に関する決済処理が完了した場合は、購入対象となったサービスのサービス情報、すなわち、購入対象となったプログラムとそのプログラムを利用する利用者のユーザーリストとを、事業者装置２００に対して送信する。
【０１０３】
〔３．公開装置が実行する処理の流れの一例〕
次に、図６を用いて、公開装置１０が実行する処理の流れの一例について説明する。図６は、実施形態に係る公開装置が実行する処理の流れの一例を説明するフローチャートである。
【０１０４】
まず、公開装置１０は、技術グラフを生成し（ステップＳ１０１）、ポリアの壺アルゴリズムによる各パラメータに基づいて、各技術グラフのノードとリンクとの数の増加傾向を推定する（ステップＳ１０２）。続いて、公開装置１０は、推定結果に基づいて、成長性が所定の閾値を超える技術分野を特定し（ステップＳ１０３）、特定した技術分野に属する文章から所定の構造を有する単語群を抽出する（ステップＳ１０４）。そして、公開装置１０は、所定の操作単語を用いて、単語群の拡張を行い（ステップＳ１０５）、公開装置１０は、単語群に含まれる単語を入力データおよび出力データと見做し、ニューラル
チューリングマシンの学習を行うことで、プログラムの生成を行う（ステップＳ１０６）。
【０１０５】
また、公開装置１０は、生成したプログラムを公開し（ステップＳ１０７）、プログラムを利用する利用者の情報を収集する（ステップＳ１０８）。そして、公開装置１０は、利用者の情報とプログラムとの組を販売可能なサービス情報として提供し（ステップＳ１０９）、処理を終了する。
【０１０６】
〔４．変形例〕
上記では、公開装置１０による処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、公開装置１０が実行する処理のバリエーションについて説明する。
【０１０７】
〔４−１．装置構成〕
上述した例では、公開装置１０は、公開装置１０内で公開処理および提供処理を実行した。しかしながら、実施形態は、これに限定されるものではない。例えば、公開装置１０は、プログラムを自動生成する生成サーバと、公開処理を実行する公開サーバと、提供処理を実行する提供サーバとが協調することで実現されてもよい。このような場合、生成サーバは、図２に示す収集部４１、推定部４２、選択部４３、抽出部４４および生成部４５を有し、公開サーバは、図２に示す公開部４６および取得部４７を有し、提供サーバは、図２に示す提供部４８を有することとなる。
【０１０８】
〔４−２．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０１０９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１１０】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１１１】
〔４−３．プログラム〕
また、上述してきた実施形態に係る公開装置１０は、例えば図７に示すような構成のコンピュータ１０００によって実現される。図７は、ハードウェア構成の一例を示す図である。コンピュータ１０００は、出力装置１０１０、入力装置１０２０と接続され、演算装置１０３０、一次記憶装置１０４０、二次記憶装置１０５０、出力ＩＦ（Interface）１０６０、入力ＩＦ１０７０、ネットワークＩＦ１０８０がバス１０９０により接続された形態を有する。
【０１１２】
演算装置１０３０は、一次記憶装置１０４０や二次記憶装置１０５０に格納されたプログラムや入力装置１０２０から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置１０４０は、ＲＡＭ等、演算装置１０３０が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置１０５０は、演算装置１０３０が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ＲＯＭ(Read  Only  Memory)、ＨＤＤ、フラッシュメモリ等により実現される。
【０１１３】
出力ＩＦ１０６０は、モニタやプリンタといった各種の情報を出力する出力装置１０１０に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、ＵＳＢ（Universal  Serial  Bus）やＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High  Definition  Multimedia  Interface）といった規格のコネクタにより実現される。また、入力ＩＦ１０７０は、マウス、キーボード、およびスキャナ等といった各種の入力装置１０２０から情報を受信するためのインタフェースであり、例えば、ＵＳＢ等により実現される。
【０１１４】
なお、入力装置１０２０は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置１０２０は、ＵＳＢメモリ等の外付け記憶媒体であってもよい。
【０１１５】
ネットワークＩＦ１０８０は、ネットワークＮを介して他の機器からデータを受信して演算装置１０３０へ送り、また、ネットワークＮを介して演算装置１０３０が生成したデータを他の機器へ送信する。
【０１１６】
演算装置１０３０は、出力ＩＦ１０６０や入力ＩＦ１０７０を介して、出力装置１０１０や入力装置１０２０の制御を行う。例えば、演算装置１０３０は、入力装置１０２０や二次記憶装置１０５０からプログラムを一次記憶装置１０４０上にロードし、ロードしたプログラムを実行する。
【０１１７】
例えば、コンピュータ１０００が公開装置１０として機能する場合、コンピュータ１０００の演算装置１０３０は、一次記憶装置１０４０上にロードされたプログラムまたはデータを実行することにより、制御部４０の機能を実現する。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムまたはデータを記録媒体１８００から読み取って実行するが、他の例として、他の装置からネットワークＮを介してこれらのプログラムを取得してもよい。
【０１１８】
〔５．効果〕
上述したように、公開装置１０は、所定の処理を示す文章に含まれる単語組であって、所定の構造を有する単語組を抽出する。また、公開装置１０は、抽出された単語組を用いて、所定の処理を実現するプログラムを生成する。そして、公開装置１０は、生成されたプログラムを公開する。この結果、公開装置１０は、サービスの起案から提供までを自動化することができる。
【０１１９】
また、公開装置１０は、公開されたプログラムを利用する利用者の情報を取得する。そして、公開装置１０は、プログラムに関する情報と、そのプログラムを利用する利用者の情報とを対応付けたサービス情報を、販売可能なサービスに関する情報として提供する。このため、公開装置１０は、自動生成したサービスの販売までを自動化することができる。
【０１２０】
また、公開装置１０は、技術分野ごとに、その技術分野に属するコンテンツの増加率に基づいて成長性を推定し、推定された成長性が所定の条件を満たす技術分野を選択する。そして、公開装置１０は、選択された技術分野に属するコンテンツから抽出された文章に含まれる単語組を抽出する。例えば、公開装置１０は、成長性が所定の閾値を超える技術分野を選択する。また、公開装置１０は、ある技術分野に属する文章により示される技術要素をノードとし、各技術要素間の関係性をノード間のリンクとして示すグラフ構造において、ポリアの壺に基づく確率で既存のノードから、そのノードとリンクにより接続される新たなノードが発生するものとして、ノードの数とリンクの数との変化の傾向を推定し、ノードの数とリンクの数との増加率が所定の閾値を超える技術分野を選択する。また、公開装置１０は、公開されたプログラムの売上げ値に基づいて、プログラムと関連する技術分野の成長性を推定する。すなわち、公開装置１０は、公開した後の売上げ値を反映させた状態で、成長性の推定を行う。例えば、公開装置１０は、ベイズ最適化により成長性を示す値の最適値を推定する。このため、公開装置１０は、より先進的な概念を実現するプログラム、すなわち、利用者が興味を有するプログラムを自動生成することができる。
【０１２１】
また、公開装置１０は、単語組として、名詞となる単語と、副詞句となる単語若しくは単語組と、名詞となる単語に関する動詞となる単語とを含む単語組を抽出する。そして、公開装置１０は、抽出した名詞となる単語が示す情報を入力した際に、動詞となる単語が示す情報を出力するように、ニューラルチューリングマシンを用いてプログラムを生成する。また、公開装置１０は、抽出した単語組と、所定の操作を示す複数の単語とを組み合わせることで、抽出した単語組から新たな単語組を生成し、生成した単語組を用いて、プログラムを生成する。このため、公開装置１０は、ある分野に属するコンテンツから、その分野に属する概念を実現するプログラムの自動生成を実現することができる。
【０１２２】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１２３】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、生成手段や生成回路に読み替えることができる。
【符号の説明】
【０１２４】
１０  公開装置
２０  通信部
３０  記憶部
３１  文献データベース
３２  拡張単語データベース
３３  ニューラルチューリングマシン
３４  技術グラフデータベース
３５  サービス情報データベース
４０  制御部
４１  収集部
４２  推定部
４３  選択部
４４  抽出部
４５  生成部
４６  公開部
４７  取得部
４８  提供部
１００  管理装置
２００  事業者装置
３００  利用者端末
【図１】
2020013395.tif 000003
【図２】
2020013395.tif 000004
【図３】
2020013395.tif 000005
【図４】
2020013395.tif 000006
【図５】
2020013395.tif 000007
【図６】
2020013395.tif 000008
【図７】
2020013395.tif 000009