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

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

▶ 株式会社ユニオンプレイスの特許一覧

<>
  • 特開-人工知能を用いたコード生成方法 図1
  • 特開-人工知能を用いたコード生成方法 図2
  • 特開-人工知能を用いたコード生成方法 図3
  • 特開-人工知能を用いたコード生成方法 図4
  • 特開-人工知能を用いたコード生成方法 図5
  • 特開-人工知能を用いたコード生成方法 図6
  • 特開-人工知能を用いたコード生成方法 図7
  • 特開-人工知能を用いたコード生成方法 図8
  • 特開-人工知能を用いたコード生成方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024086509
(43)【公開日】2024-06-27
(54)【発明の名称】人工知能を用いたコード生成方法
(51)【国際特許分類】
   G06F 8/38 20180101AFI20240620BHJP
   G06F 40/279 20200101ALI20240620BHJP
   G06N 3/044 20230101ALI20240620BHJP
   G06N 3/0442 20230101ALI20240620BHJP
   G06N 3/0464 20230101ALI20240620BHJP
【FI】
G06F8/38
G06F40/279
G06N3/044
G06N3/0442
G06N3/0464
【審査請求】有
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2022204414
(22)【出願日】2022-12-21
(11)【特許番号】
(45)【特許公報発行日】2023-11-16
(31)【優先権主張番号】10-2022-0176696
(32)【優先日】2022-12-16
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】517419179
【氏名又は名称】株式会社ユニオンプレイス
【氏名又は名称原語表記】UNIONPLACE CO., LTD.
【住所又は居所原語表記】Suites 1302&1303, 11 Digital-ro 33-gil, Guro-gu, Seoul, Republic of Korea
(74)【代理人】
【識別番号】100166372
【弁理士】
【氏名又は名称】山内 博明
(72)【発明者】
【氏名】パン・ソンチョル
(72)【発明者】
【氏名】シン・ヨンギュ
(72)【発明者】
【氏名】キム・ヒョジョン
(72)【発明者】
【氏名】イ・サンギュ
(72)【発明者】
【氏名】シン・ゴンシク
(72)【発明者】
【氏名】シン・ヒソン
(72)【発明者】
【氏名】キム・ミジ
(72)【発明者】
【氏名】アン・テスン
【テーマコード(参考)】
5B091
5B376
【Fターム(参考)】
5B091EA01
5B376BC06
5B376BC31
(57)【要約】      (修正有)
【課題】人工知能を用いたコード生成方法を提供する。
【解決手段】方法は、グラフィックユーザインターフェースを構成する多数のオブジェクトの各々の名称情報を基に生成した属性情報を用いて、グラフィックユーザインターフェース構造を生成する段階と、多数のオブジェクトの各々の属性情報を基に多数のオブジェクトの各々に対して画像分析モデルおよびテキスト分析モデルのうちいずれか一つを人工知能を用いて行うことによって、グラフィックユーザインターフェースに対応する第1モデリング情報を生成する段階と、グラフィックユーザインターフェース構造および第1モデリング情報を基に第1コードを人工知能を用いて生成する段階と、を有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
コンピューティング装置によって行われ、
(a)グラフィックユーザインターフェースを構成する多数のオブジェクトの各々の名称情報を基に生成した属性情報を用いて、グラフィックユーザインターフェース構造を生成する段階と、
(b)前記多数のオブジェクトの各々の前記属性情報を基に前記多数のオブジェクトの各々に対して画像分析モデルおよびテキスト分析モデルのうちいずれか一つを人工知能を用いて行うことによって、前記グラフィックユーザインターフェースに対応する第1モデリング情報を生成する段階と、
(c)前記グラフィックユーザインターフェース構造および前記第1モデリング情報を基に、第1コードを前記人工知能を用いて生成する段階と、
を有する人工知能を用いたコード生成方法。
【請求項2】
前記多数のオブジェクトの各々の前記属性情報は、前記多数のオブジェクトの各々のデータ属性を基に抽出された付加情報をさらに有する、請求項1の人工知能を用いたコード生成方法。
【請求項3】
前記多数のオブジェクトの各々の前記名称情報は、予め指定されたオブジェクトネーミング規則に基づいて指定される、請求項1の人工知能を用いたコード生成方法。
【請求項4】
多数のオブジェクトのうち第1オブジェクトの名称情報は、前記オブジェクトネーミング規則に基づいて自動的に生成および指定される、請求項3の人工知能を用いたコード生成方法。
【請求項5】
前記画像分析モデルは、CNN(Convolutional Neural Network)基盤モデル、R-CNN(Region-based Convolutional Neural Network)基盤モデルおよびRNN(Recurrent Neural Network)基盤モデルのうち少なくとも一つを有する、請求項1の人工知能を用いたコード生成方法。
【請求項6】
前記テキスト分析モデルは、LSTM(Long Short-Term Memory)階層モデルを有する、請求項1の人工知能を用いたコード生成方法。
【請求項7】
前記多数のオブジェクトのうち第1オブジェクトの前記名称情報は、前記第1オブジェクトが画像オブジェクトなのか、或いはテキストオブジェクトなのかを示すオブジェクト分類情報、および前記第1オブジェクトに関するアクション情報のうち少なくとも一つをさらに有する、請求項1の人工知能を用いたコード生成方法。
【請求項8】
前記段階(b)は、
(b-1)前記第1オブジェクトの前記オブジェクト分類情報が前記画像オブジェクトを示せば、前記第1オブジェクトに対して前記画像分析モデルを行う段階と、
(b-2)前記第1オブジェクトの前記オブジェクト分類情報が前記テキストオブジェクトを示せば、前記第1オブジェクトに対して前記テキスト分析モデルを行う段階と、
を有する、請求項7の人工知能を用いたコード生成方法。
【請求項9】
前記第1オブジェクトの前記名称情報は、前記第1オブジェクトの前記オブジェクト分類情報が前記テキストオブジェクトを示せば、テキスト情報をさらに有する、請求項7の人工知能を用いたコード生成方法。
【請求項10】
前記第1オブジェクトの前記アクション情報は、提供対象である装置の仕様およびブラウザの仕様のうち少なくとも一つに従って指定される、請求項7の人工知能を用いたコード生成方法。
【請求項11】
(d)前記第1オブジェクトを、前記第1オブジェクトの前記テキスト情報を第1言語から第2言語に翻訳した第2テキスト情報を有する第2オブジェクトに代替することによって、前記第1モデリング情報を第2モデリング情報に変換する段階と、
(e)前記グラフィックユーザインターフェース構造および前記第2モデリング情報を基に第2言語で提供される第2コードを前記人工知能を用いて生成する段階と、
をさらに有する、請求項9の人工知能を用いたコード生成方法。
【請求項12】
(f)前記第1オブジェクトを有する第1オブジェクトグループを、前記多数のオブジェクトとは異なる第3オブジェクトを有する第2オブジェクトグループに代替することによって、前記第1モデリング情報を第3モデリング情報に変換する段階と、
(g)前記グラフィックユーザインターフェース構造および前記第3モデリング情報を基に、第3コードを前記人工知能を用いて生成する段階と、
をさらに有する、請求項7の人工知能を用いたコード生成方法。
【請求項13】
前記第2オブジェクトグループ内の一つ以上のオブジェクトは、予め保存された多数のオブジェクトの中から選択される、請求項12の人工知能を用いたコード生成方法。
【請求項14】
前記第2オブジェクトグループ内の一つ以上のオブジェクトは、画像オブジェクトである、請求項12の人工知能を用いたコード生成方法。
【請求項15】
前記第1モデリング情報は、前記多数のオブジェクトの各々に対する学習された特徴情報を有する、請求項1の人工知能を用いたコード生成方法。
【請求項16】
前記第1モデリング情報は、前記多数のオブジェクトの各々に対する学習された特徴情報を有し、
前記第2オブジェクトグループ内に含まれた一つ以上のオブジェクトに対する学習された特徴情報は、予め保存され、
前記第3モデリング情報は、前記多数のオブジェクトのうち前記第1オブジェクトグループを除くオブジェクトに対する学習された特徴情報と、前記第2オブジェクトグループ内の一つ以上のオブジェクトに対する学習された特徴情報とを有する、請求項13の人工知能を用いたコード生成方法。
【請求項17】
前記第1コードは、HTMLコードおよびアプリケーションコードのうち少なくとも一つを有する、請求項1の人工知能を用いたコード生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能を用いたコード生成方法に関するものである。
【0002】
本願で説明される技術(以下、「本願技術」という)は、情報通信企画評価院(IITP)によって管理される科学技術情報通信部の研究課題の支援を受けて開発されたものである(研究課タイトル:「AI認知推論基盤のWEB.APPパブリッシングAIアシストプラットホーム技術開発(Implementation WEB,APP Publishing AI assist Platform Based AI Inference Engine)」、課題固有番号:1711152522)。
【背景技術】
【0003】
デザイナがウェブページ、またはアプリケーション(以下、単に「アプリ」ともいう。)のグラフィカルユーザインタフェース(以下、単に「GUI」ともいう。)を作成すれば、開発者はGUIを基に実際に作動するコードを作成する。すなわち、開発者はウェブページまたはアプリのコードを作成する。
【0004】
このような作業をより円滑かつ迅速に行うために、例えば人工知能を用いてコードを生成する、例えば「Pix2Code」などの方式が開発されている。
【0005】
Pix2Codeは、GUIの画像(「スクリーンショット」ともいう。)を、学習された神経網(人工知能)を用いて分析し、それに適したコードを自動的に生成する方式を指す。例えば、Tony Beltramelliによって発表された「pix2code: Generating Code from a Graphical User Interface Screenshot」という名称の論文(https://arxiv.org/abs/1705.07962参照)では、Pix2Codeの概要が説明されている。
【0006】
Pix2Codeは、深層神経網(deep neural network)を用いてGUIのスクリーンショットに対応するコードを見て、コード作成方法を自ら学習する方式、すなわち学習基盤方式(learning-based method)である。したがって、Pix2Codeは、GUIコーディングのパターンや規則を自動化プログラムに入力して自動化していた方式、すなわち、規則基盤方式(rule-based method)とは異なる。
【0007】
より具体的には、既存の自動化方式(例えば、規則基盤方式)が言語内部構造、或いは内部API(Application Programming Interface)を通じて具現されるのに対し、Pix2Codeは実際のフロントエンド開発者が行う作業のように、ピクセルで表現されているGUIのスクリーンショットを用いてコードを作成するという点で異なる。
【0008】
Pix2Codeによれば、学習(training)処理とサンプリング(sampling)処理とが実行される。
【0009】
学習処理によれば、GUIのスクリーンショットは、CNN(Convolutional Neural Network)基盤(based)ビジョン(vision)モデルによってエンコーディングされ、コンテクスト(context)は、LSTM(Long short-term Memory)階層(layer)のスタック(stack)から構成される言語モデルによってエンコーディングされる。
【0010】
コンテクストは、DSL(Domain Specific Language)に該当する一連のエンコーディングされたトークン(token)である。CNN基盤ビジョンモデルによってエンコーディングされた結果(例えば、特徴ベクタ)と言語モデルによってエンコーディングされた結果(例えば、特徴ベクタ)とは結合され、LSTM階層の第2スタック(デコーダとして作用する)として提供される。ソフトマックス(softmax)階層は一度に一つのトークンをサンプリングし、ソフトマックス階層の出力サイズはDSL語彙(vocabulary)サイズに該当する。したがって、画像とトークンとのシークエンス(sequence of tokens)が与えられたら、勾配下降(gradient descent)を通じて終端間(end-to-end)最適化され、シークエンス内の次のトークンを予測することができる。サンプリング処理では、最後の予測トークンを有するよう、各予測に対して入力コンテクストがアップデートされる。DSLトークンの結果シークエンスは、既存コンパイラ設計技術を用いて所望の対象言語にコンパイルされる。
【0011】
しかし、Pix2Codeは、複雑な構造のGUIのスクリーンショットに対しては処理が難しく、具体的な情報を抽出することができないという短所がある。
【0012】
またPix2Codeを用いても、円滑な処理のためにはGUIのスクリーンショットを基に画像の部分とコンテクストの部分を分離する前処理が必要となる。前処理では、例えばGUIのスクリーンショットを分割して、分割された部分別に特定値(feature value)を定める方法を用いて外郭線(境目)を把握することによって、GUIのスクリーンショットに含まれるオブジェクトが画像オブジェクトなのか、コンテクストオブジェクトなのかを分類する。しかし、このような作業にはたくさんの処理時間がかかってしまう。特に、例えば前処理にエラーが生じた場合、CNN基盤ビジョンモデルを用いて特定オブジェクトを処理していて、特定オブジェクトがテキストオブジェクトに該当するのであれば、再び特定オブジェクトをLSTM階層のスタックを用いて処理しなければならない。したがって、不要な処理が行われることもあり得る。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】韓国公開特許公報第10-2022-0125282号
【非特許文献1】https://arxiv.org/abs/1705.07962
【発明の概要】
【発明が解決しようとする課題】
【0014】
本願技術の目的は、オブジェクトの名称情報を基に生成した属性情報を用いることによって、オブジェクトの分析に必要な処理負荷を最小化し、複雑な構造を有するGUIに対しても、コードを人工知能を用いて自動的に、より正確にコードを生成することのできる人工知能を用いたコード生成方法を提供することにある。
【課題を解決するための手段】
【0015】
前記技術的課題を達成するために、本願技術の一態様によれば、コンピューティング装置によって行われ、(a)グラフィックユーザインターフェースを構成する多数のオブジェクトの各々の名称情報を基に生成した属性情報を用いて、グラフィックユーザインターフェース構造を生成する段階と、(b)前記多数のオブジェクトの各々の前記属性情報を基に前記多数のオブジェクトの各々に対して画像分析モデルおよびテキスト分析モデルのうちいずれか一つを人工知能を用いて行うことによって、前記グラフィックユーザインターフェースに対応する第1モデリング情報を生成する段階と、(c)前記グラフィックユーザインターフェース構造および前記第1モデリング情報を基に、第1コードを前記人工知能を用いて生成する段階と、を有する人工知能を用いたコード生成方法が提供される。
【発明の効果】
【0016】
本願技術によれば、オブジェクトの名称情報を基に生成した属性情報を用いることによって、オブジェクトの分析に必要な処理負荷を最小化し、複雑な構造を有するGUIに対してもコードを人工知能を用いて自動的に、より正確にコードを生成することができる。
【図面の簡単な説明】
【0017】
図1】本願技術の第1実施例に係る人工知能を用いたコード生成方法の例示的なフローチャートである。
図2】本願技術の第1実施例に係る人工知能を用いたコード生成方法を実行するコンピューティング装置の模式的な構成を示す図面である。
図3】本願技術の第1実施例に係る人工知能を用いたコード生成方法において、グラフィックユーザインターフェースを構成する多数のオブジェクトを例示的に示す図面である。
図4】本願技術の第1実施例に係る人工知能を用いたコード生成方法において、オブジェクトの名称情報の例を示す図面である。
図5】本願技術の第1実施例に係る人工知能を用いたコード生成方法において、グラフィックユーザインターフェース構造の例を示す図面である。
図6】本願技術の第2実施例に係る人工知能を用いたコード生成方法の例示的なフローチャートである。
図7】本願技術の第2実施例に係る人工知能を用いたコード生成方法において、グラフィックユーザインターフェースを構成する多数のオブジェクトを例示的に示す図面である。
図8】本願技術の第3実施例に係る人工知能を用いたコード生成方法の例示的なフローチャートである。
図9】本願技術の第3実施例に係る人工知能を用いたコード生成方法において、グラフィックユーザインターフェースを構成する多数のオブジェクトを例示的に示す図面である。
【発明を実施するための形態】
【0018】
以下、本願技術に係る人工知能を用いたコード生成方法の実施例を、添付図面を参照しながらより具体的に説明する。一方、本願技術の実施例を説明するための図面において、説明の便宜上、実際の構成の一部のみが図示されたり、一部が省略されて図示されたり、変形して図示されたり、または縮尺が異なって図示されることがある。
【0019】
<第1実施例>
図1は、本願技術の第1実施例に係る人工知能を用いたコード生成方法の例示的なフローチャートであり、図2は、本願技術の第1実施例に係る人工知能を用いたコード生成方法を実行するコンピューティング装置の模式的な構成を示す図面である。
【0020】
まず、図2を参照して、本願技術の第1実施例に係る人工知能を用いたコード生成方法を実行するコンピューティング装置100を説明する。
【0021】
図2を参照すれば、本願技術の第1実施例に係る人工知能を用いたコード生成方法を実行するコンピューティング装置100は、通信インターフェース110と、演算処理部130と、保存部150とを有することができる。
【0022】
通信インターフェース110は、有無線通信方式を基とする通信インターフェースである。通信インターフェース110は、通信チップなどの半導体素子によって具現され得る。
【0023】
演算処理部130は、例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit)およびASIC(Application Specific Integrated Circuit)などの半導体素子によって具現され得る。
【0024】
演算処理部130は、例えば複数の半導体素子を用いて具現され得る。例えば演算処理部130は、通信機能を行う第1半導体素子、後述の画像分析モデルを人工知能を用いて行う第2半導体素子、および後述のテキスト分析モデルを人工知能を用いて行う第3半導体素子を用いても具現され得る。
【0025】
演算処理部130は、第1実施例に係る人工知能を用いたコード生成方法を実行し、第1実施例に係る人工知能を用いたコード生成方法を実行するために通信インターフェース110と保存部150とを制御することもできる。
【0026】
保存部150は、データを保存する。保存部150は、例えば半導体メモリーなどの半導体素子によって具現され得る。保存部150には、例えば後述のオブジェクト、グラフィックユーザインターフェース構造、第1モデリング情報などのモデリング情報、第1コードなどのコードが保存され得る。
【0027】
保存部150は、例えば複数の半導体素子を用いても具現され得る。以下、図1を参照して、本願技術の第1実施例に係る人工知能を用いたコード生成方法をより詳しく説明する。
【0028】
まず、コンピューティング装置100、より具体的に、演算処理部130は、グラフィックユーザインターフェースを構成する多数のオブジェクトの各々の名称情報を基に生成した属性情報を用いて、グラフィックユーザインターフェース構造を生成する(段階S110)。
【0029】
図3は、本願技術の第1実施例に係る人工知能を用いたコード生成方法において、グラフィックユーザインターフェースを構成する多数のオブジェクトを例示的に示す図面である。
【0030】
以下、例えばウェブページを製作する場合のグラフィックインターフェースを基により詳しく説明する。
【0031】
図3を参照すれば、多数のオブジェクト、例えばオブジェクト210~オブジェクト250が図示される。
【0032】
オブジェクト210は、例えば背景画像である。オブジェクト220は、例えばページのタイトルを示す画像である。オブジェクト230は、例えば「赤ん坊」を示す画像である。オブジェクト240は、例えば「犬」を示す画像である。オブジェクト250は、例えばコンテンツ再生のためのインターフェースを示す画像である。
【0033】
多数のオブジェクトの各々の名称情報は、予め指定されたオブジェクトネーミング規則に基づいて指定される。
【0034】
オブジェクトネーミング規則は、例えばオブジェクトの名称情報をオブジェクト分類情報およびオブジェクトに関するアクション情報のうち少なくとも一つをさらに有することができるよう指定することである。
【0035】
例えばデザイナは、オブジェクトを生成する場合、予め指定されたネーミング規則に基づいて、オブジェクトの名称情報を指定することができる。
【0036】
または、多数のオブジェクトのうち少なくとも第1オブジェクトの名称情報は、オブジェクトネーミング規則に基づいて、自動的に生成および指定され得る。
【0037】
すなわち、デザイナが、第1オブジェクトの名称、第1オブジェクトの配置状態、第1オブジェクトに対応するアクション情報などの特徴を、オブジェクト名称情報を生成するためのユーザインタフェースを通じて指定すれば、第1オブジェクトの名称情報はオブジェクトネーミング規則に基づいて、自動的に生成および指定され得る。特に、複雑なオブジェクトの名称情報をデザイナが直接入力する場合、エラーが発生し得るため、オブジェクト名称情報を生成するためのユーザインタフェースを通じて、第1オブジェクトの名称情報を自動的に生成および指定することが望ましい。
【0038】
図4は、本願技術の第1実施例に係る人工知能を用いたコード生成方法において、オブジェクトの名称情報の例を示す図面である。
【0039】
例えば、オブジェクト210の名称情報は、<BackgroundImage001>のように指定され得る。或いは、オブジェクト210の名称情報は<Page001_BackgroundImage001>のように指定され得る。<Page001_BackgroundImage001>は、オブジェクト210が「Page001」に配置される背景画像(「BackgroundImage001」)であることを示す。ただし、「Page001」などの情報は、オブジェクト210のデータ属性(例えば、配置状態)を分析して抽出することができるため、省略されることもある。
【0040】
オブジェクト分類情報は、オブジェクトが画像オブジェクトなのか、テキストオブジェクトなのかを示す情報である。例えば、オブジェクト220は、画像上にテキストが表示されるテキストオブジェクトである。
【0041】
したがって、オブジェクト220の名称情報は、<BackgroundImage001_ButtonImage001_over_text001_font_arial_10_"BABY AND DOG">のように指定され得る。
【0042】
オブジェクト220の名称情報を基に、オブジェクト220は、「BackgroundImage001」(すなわちオブジェクト210)上に配置される「ButtonImage001」であり、「ButtonImage001」上に「BABY AND DOG」というテキストが、フォントArial、フォントサイズ10と表示されることがわかる。
【0043】
オブジェクト220がテキストオブジェクトである場合、<ver_text001_font_arial_10_"BABY AND DOG">のようにテキストのフォント、サイズおよび「BABY AND DOG」というテキスト情報が含まれ得る。ただし、「font_arial_10」などのテキストの属性は、オブジェクト220のデータ属性を基に抽出され得るため、オブジェクト220の名称情報では省略され得る。
【0044】
「over_text001」のようにテキストオブジェクトを示す部分がなければ、当該オブジェクトは、テキストオブジェクトではない画像オブジェクトを示す。
【0045】
オブジェクトに関するアクション情報は、オブジェクトと関連して、ユーザ入力を受信した時にどのような作業を行うのかを示す情報である。
【0046】
例えば、オブジェクト230を押す場合、他のページ(例えば、「Page002」)に移動する場合、オブジェクト230の名称情報は<BackgroundImage001_Image001_clickto_PAGE002>などの形態で指定され得る。
【0047】
例えば、オブジェクト240を押す場合、他のウェブページ(例えばabdc.com)に移動する場合、オブジェクト240の名称情報は<BackgroundImage001_Image002_clickto_http://abdc.com/>のように指定され得る。
【0048】
例えば、オブジェクト250を押す場合、コンテンツ(例えば「abcd.mp4」)が再生される場合、オブジェクト250の名称情報は<BackgroundImage001_ButtonImage002_clickto_PLAY_"abcd.mp4">のように指定され得る。
【0049】
例えば、名称情報<Page006_ButtonImage001_clickto_ButtonImage004_DB-001A_BackgroundImage003>は、「Page006」の「ButtonImage001」をクリックすれば、「ButtonImage004」を表示し、「DB-001A」データベースに連結して「BackgroundImage003」を表示するということを示す。
【0050】
例えば、名称情報<BackgroundImage003_ButtonImage002_over_text_t001_font_arial_10_"PASSWORD"_clickto_ButtonImage001_http://abdc.com/support/main.html>は、「BackgroundImage003」の「ButtonImage002」(その上にテキスト「PASSWORD」がフォントArial、フォントサイズ10と表示される)をクリックすれば、「ButtonImage001」を表示して、URL http://abdc.com/support/main.htmlに移動せよということを示す。
【0051】
<BackgroundImage004_ButtonImage003_over_text_t001_font_arial_10_"SUBSCRIBE"_clickto_splash_ButtonImage002_http://abdc.com/support/join.html>は、「BackgroundImage004」の「ButtonImage003」(その上にテキスト「SUBSCRIBE」がフォントArial、フォントサイズ10と表示される)をクリックすれば、「ButtonImage002」をスプラッシュ形態で表示して、URL http://abdc.com/support/join.htmlに移動せよということを示す。
【0052】
前述の名称情報において、「_」は区切り文字を表し、「&」、「or」、「except」、「case」などの様々な区切り文字を追加的に使用することができる。
【0053】
前述の名称情報において、「clickto」は命令(アクション情報)を表し、「goto」、「popup」、「rotate」などの様々な命令語を追加的に使用することもできる。
【0054】
例えば、名称情報内の「_case_webaccess」は、ウェブブラウザを通じて接近する時を表し、「_case_mobileaccess_」は、モバイル装置を通じて接近する時を表す。
【0055】
例えば、名称情報<BackgroundImage004_ButtonImage003_over_text_t001_font_arial_10_"SUBSCRIBE"_clickto__case_mobileaccess_http://abdc.com/join_m.html>は、「BackgroundImage004」の「ButtonImage003」(その上にテキスト「SUBSCRIBE」がフォントArial、フォントサイズ10と表示される)をクリックすれば、モバイル装置を通じて接近する際には、http://abdc.com/join_m.htmlに移動せよということを示す。
【0056】
図4を参照して説明したオブジェクトの名称情報およびオブジェクトネーミング規則は、単なる例示に過ぎず、様々な形態に変更され得る。
【0057】
ただし、前述のように、オブジェクトの名称情報は名称を有しており、オブジェクトが画像オブジェクトなのか、或いはテキストオブジェクトなのかを示すオブジェクト分類情報(図4を参照した例示では「_over_text_」などの部分)およびオブジェクトに関するアクション情報(図4を参照した例示では「_clickto_」、「_splash_」などの部分)のうち少なくとも一つをさらに有することができる。
【0058】
また、オブジェクトがテキストオブジェクトである場合、オブジェクトの名称情報はテキスト情報をさらに有することができる。例えば、図4を参照した例では、オブジェクト220の名称情報は「BABY AND DOG」などのテキスト情報をさらに有することができる。
【0059】
また、オブジェクトのアクション情報は、提供対象である装置の仕様およびブラウザの仕様のうち少なくとも一つに基づいて指定され得る。
【0060】
例えば、図4を参照した例では、「_clickto__case_mobileaccess_」のようにモバイル装置を通じて接近する時に適したアクション情報が指定され得る。
【0061】
図4を参照して説明した例において、オブジェクトの名称情報が指定されていれば、段階S110で、オブジェクトの名称情報を基にオブジェクトの属性情報を容易に抽出することができる。
【0062】
オブジェクトの属性情報は、オブジェクトの名称情報を基に生成される。すなわち、オブジェクトの属性情報は、オブジェクトの名称情報に含まれたオブジェクト分類情報およびアクション情報(およびオブジェクト分類情報がテキストオブジェクトを示せば、テキスト情報)を有することができる。また前述のとおり、「_font_arial_10_」などの属性が名称情報に含まれているのであれば、オブジェクトの属性情報は当該属性も有する。
【0063】
また、オブジェクトの属性情報は、オブジェクトの名称情報に含まれていない付加情報をさらに有することもできる。
【0064】
例えば、オブジェクトが画像オブジェクトである場合、オブジェクトの属性情報は、オブジェクトの配置位置、画像のフォントサイズ、色などのオブジェクトのデータ属性を基に抽出された付加情報をさらに有することができる。
【0065】
また、オブジェクトがテキストオブジェクトである場合、そして「_font_arial_10_」などの属性が名称情報に含まれていない場合、オブジェクトの属性情報は、オブジェクトの属性を基に抽出されたテキストのフォントおよびフォントサイズなどの付加情報をさらに有することもできる。
【0066】
演算処理部130は、前述のとおり、グラフィックユーザインターフェースを構成する多数のオブジェクトの各々の名称情報を基に生成した属性情報を用いて、グラフィックユーザインターフェース構造を生成する。
【0067】
図5は、本願技術の第1実施例に係る人工知能を用いたコード生成方法において、グラフィックユーザインターフェース構造の例を示す図面である。
【0068】
グラフィックユーザインターフェース構造は、例えば複数の画面(ページ)、複数の画面内で配置されるオブジェクトの属性情報、オブジェクトの対応関係およびアクション情報などのデータで構成された構造である。
【0069】
グラフィックユーザインターフェース構造は、例えばウェブページの場合、所謂「サイトマップ」に多数のオブジェクトに対する情報が連結された形態を有することができる。
【0070】
例えば、図5を参照すれば、画面(「Women」、「Men」等)に表示されるカテゴリ(「New Arrival」等)とサブカテゴリ(「Sweater」等)に対して、対応する多数のオブジェクトに対する情報が連結された形態のグラフィックユーザインターフェース構造が図示される。
【0071】
このように、段階S110を通じてグラフィックユーザインターフェース構造を生成すれば、例えば複雑な構造のGUIのスクリーンショットに対しては処理が難しく、具体的な情報を抽出することができないというPix2Codeの短所を改善することができる。
【0072】
つぎに、演算処理部130は、多数のオブジェクトの各々の属性情報を基に多数のオブジェクトの各々に対して画像分析モデルおよびテキスト分析モデルのうちいずれか一つを人工知能を用いて行うことによって、グラフィックユーザインターフェースに対応する第1モデリング情報を生成する(段階S120)。
【0073】
画像分析モデルは、CNN(Convolutional Neural Network)基盤モデル、R-CNN(Region-based Convolutional Neural Network)基盤モデル、およびRNN(Recurrent Neural Network)基盤モデルのうち少なくとも一つを有することができる。
【0074】
テキスト分析モデルは、LSTM(Long Short-Term Memory)階層モデルを有することができる。
【0075】
前述のとおり、オブジェクトの属性情報は、オブジェクトの名称情報に含まれたオブジェクト分類情報を有する。したがって、オブジェクトが画像オブジェクトなのか、或いはテキストオブジェクトなのかを明確に確認することができる。
【0076】
Pix2Codeを用いる場合、GUIの画像(スクリーンショット)を基に、画像の部分とコンテクストの部分を分離する前処理が必要となる。すなわち、オブジェクトがテキストオブジェクトなのか、或いは画像オブジェクトなのかを確認するためには、スクリーンショットの各部分の外郭線(境目)を把握する処理をピクセル単位で行わなくてはならない。
【0077】
ところが、段階S120では、既にオブジェクトの属性情報を基にオブジェクトが画像オブジェクトなのか、或いはテキストオブジェクトなのかを明確に確認することができるため、オブジェクトを分析する処理を容易に行うことができる。
【0078】
以下、多数のオブジェクトのうちいずれか一つである第1オブジェクトを基に説明する。
【0079】
演算処理部130は、第1オブジェクトの属性情報を用いて(すなわち、第1オブジェクトのオブジェクト分類情報を用いて)、第1オブジェクトが画像オブジェクトを示せば、第1オブジェクトに対して画像分析モデルを行う。
【0080】
演算処理部130は、第1オブジェクトの属性情報を用いて(すなわち、第1オブジェクトのオブジェクト分類情報を用いて)、第1オブジェクトがテキストオブジェクトを示せば、第1オブジェクトに対してテキスト分析モデルを行う。
【0081】
したがって、オブジェクトを、人工知能を用いて分析することに所要される処理負荷を最小化することができる。
【0082】
多数のオブジェクトに対して人工知能を用いて分析することによって、グラフィックユーザインターフェースに対応する第1モデリング情報を生成する。
【0083】
第1モデリング情報は、多数のオブジェクトの各々に対する学習された特徴情報を有する。
【0084】
例えば、前述のオブジェクト230に対する学習された特徴情報は、「おむつをしている赤ん坊」などの情報であり得る。オブジェクト230に対する学習された特徴情報は、赤ん坊の髪の色情報などの学習された特徴情報をさらに有することができる。
【0085】
例えば、前述のオブジェクト240に対する学習された特徴情報は、「犬」などの情報であり得る。オブジェクト240に対する学習された特徴情報は、犬の毛の色情報などの学習された特徴情報をさらに有することができる。
【0086】
つぎに、演算処理部130は、段階S110を通じて生成されたグラフィックユーザインターフェース構造、および段階S120を通じて生成された第1モデリング情報を基に、第1コードを人工知能を用いて生成する(段階S130)。
【0087】
段階S110を通じてグラフィックユーザインターフェース構造をより正確に生成することができ、また、段階S120を通じて生成された第1モデリング情報(すなわち、多数のオブジェクトに対する学習された特徴情報)を処理負荷を最小化しながら生成することができるため、第1コードは容易かつより正確に生成され得る。
【0088】
第1コードは、ウェブページ、またはアプリケーションに対応してHTMLコードおよびアプリケーションコードのうち少なくとも一つを有する。
【0089】
このように、第1実施例によれば、オブジェクトの名称情報を基に生成した属性情報を用いることによって、オブジェクトを分析するために必要な処理負荷を最小化し、複雑な構造を有するグラフィックユーザインターフェースに対しても人工知能を用いて自動的に、より正確にコードを生成することができる。
【0090】
<第2実施例>
図6は、本願技術の第2実施例に係る人工知能を用いたコード生成方法の例示的なフローチャートである。
【0091】
本願技術の第2実施例に係る人工知能を用いたコード生成方法は、前述の第1実施例に係る人工知能を用いたコード生成を行った後に実行される。
【0092】
第2実施例に係る人工知能を用いたコード生成方法は、テキスト情報を基に様々な言語に適用可能なウェブページ、またはアプリケーションのためのコード(第2コード)を生成するのために使用される。
【0093】
以下、第1オブジェクトがテキストオブジェクトである場合を仮定して、第2実施例を説明する。
【0094】
演算処理部130は、第1オブジェクトを第1オブジェクトのテキスト情報を第1言語から第2言語に翻訳した第2テキスト情報を有する第2オブジェクトに代替することによって、第1モデリング情報を第2モデリング情報に変換する(段階S210)。
【0095】
図7は、本願技術の第2実施例に係る人工知能を用いたコード生成方法において、グラフィックユーザインターフェースを構成する多数のオブジェクトを例示的に示す図面である。
【0096】
例えば、図3を参照して例示されたオブジェクト220の属性情報は、「BABY AND DOG」というテキスト情報を有する。すなわち、第1言語である英語に対応して、「BABY AND DOG」というテキスト情報を有する。
【0097】
例えば、英語でない第2言語、例えばドイツ語でウェブページ、またはアプリケーションを提供するには、第2言語であるドイツ語に対応して「BABY UND HUND」というテキスト情報を有さなければならない。
【0098】
したがって、段階S210を通じて、オブジェクト220は「BABY AND DOG」というテキスト情報を有するオブジェクト320に代替される。第1実施例に係る第1モデリング情報は、オブジェクト220の代わりにオブジェクト320に代替された第2モデリング情報に変換される。
【0099】
つぎに、演算処理部130は、グラフィックユーザインターフェース構造、および段階S210で生成された第2モデリング情報を基に第2言語で提供される第2コードを人工知能を用いて生成する(段階S220)。
【0100】
グラフィックユーザインターフェース構造は、オブジェクト220がオブジェクト320に代替されることによって、一部変動され得る。
【0101】
図7を参照に、オブジェクト220がオブジェクト320に代替される例が説明されたが、第2実施例に係る人工知能を用いたコード生成方法は、これに限らない。例えば、多数のオブジェクトのテキスト情報が第2言語に変換された形態で、第2コードは生成され得る。
【0102】
このように第2実施例によれば、第1実施例に係る前述の効果に加えて、様々な言語に適用可能な第2コードを自動的に生成することができる。
【0103】
<第3実施例>
図8は、本願技術の第3実施例に係る人工知能を用いたコード生成方法の例示的なフローチャートである。
【0104】
本願技術の第3実施例に係る人工知能を用いたコード生成方法は、前述の第1実施例に係る人工知能を用いたコード生成方法を行った後に実行される。
【0105】
第3実施例に係る人工知能を用いたコード生成方法は、第1コードを基に、様々な主題に適用可能なウェブページ、またはアプリケーションのためのコード(第3コード)を生成するために使われる。
【0106】
演算処理部130は、第1オブジェクトを有する第1オブジェクトグループを多数のオブジェクトとは異なる第3オブジェクトを有する第2オブジェクトグループに代替することによって、第1モデリング情報を第3モデリング情報に変換する(段階S310)。
【0107】
図9は、本願技術の第3実施例に係る人工知能を用いたコード生成方法において、グラフィックユーザインターフェースを構成する多数のオブジェクトを例示的に示す図面である。
【0108】
図9を参照すれば、図3を参照して例示されたオブジェクト220の代わりにオブジェクト420が配置され、図3を参照して例示されたオブジェクト240の代わりにオブジェクト440が配置される。すなわち、オブジェクト220およびオブジェクト240で構成された第1オブジェクトグループの代わりに、オブジェクト420およびオブジェクト440で構成された第2オブジェクトグループが配置される。
【0109】
オブジェクト420の属性情報は、「BABY AND CAT」というテキスト情報を有する。オブジェクト440は、「猫」に対応する画像オブジェクトである。
【0110】
第2オブジェクトグループに含まれたオブジェクトは、予め保存された多数のオブジェクトの中から選択され得る。
【0111】
すなわち、保存部150には、オブジェクト420およびオブジェクト440が予め保存され、段階S310ではオブジェクト220およびオブジェクト240をオブジェクト420およびオブジェクト440に代替することによって、第1モデリング情報を第3モデリング情報に変換する。
【0112】
オブジェクト420およびオブジェクト440に対する学習された特徴情報もまた、予め保存部150に保存され得る。
【0113】
または第2オブジェクトグループに含まれたオブジェクト420は、「BABY AND CAT」というテキスト情報を有するよう生成され得る。
【0114】
第1モデリング情報から変換された第3モデリング情報は、多数のオブジェクトのうち、第1オブジェクトグループを除いたオブジェクトに対する学習された特徴情報と、第2オブジェクトグループに含まれたオブジェクトに対する学習された特徴情報とを有する。
【0115】
つぎに、演算処理部130は、グラフィックユーザインターフェース構造および段階S310で生成された第3モデリング情報を基に、第3コードを人工知能を用いて生成する(段階S320)。
【0116】
グラフィックユーザインターフェース構造は、第1オブジェクトグループが第2オブジェクトグループに代替されることによって、一部変動され得る。
【0117】
したがって、「赤ん坊と犬」を主題とするウェブページ(またはアプリケーション)に対するコードである第1コードを基に、段階S320を通じて、「赤ん坊と猫」を主題とするウェブページ(またはアプリケーション)に対するコードである第3コードを、容易に人工知能を用いて生成することができる。
【0118】
このように第3実施例によれば、第1実施例に係る前述の効果に加えて、様々な主題に適用可能な第3コードを自動的に生成することができる。
【0119】
<その他の実施例>
本願技術の実施例が具体的に説明されたが、これは単に本願技術を例示的に説明したに過ぎず、本願技術が属する技術分野において通常の知識を有する者であれば、本願技術の本質的な特性から逸しない範囲内で様々な変形が可能である。
【0120】
例えば、本願技術は、人工知能を用いたコード生成装置に適用することもできる。
【0121】
本願技術に係る人工知能を用いたコード生成装置は、例えば前述のコンピューティング装置100によって具現され得る。
【0122】
すなわち、本願技術の他の一形態によれば、通信インターフェース110と、演算処理部130と、保存部150とを有し、前記演算処理部130は、(a)グラフィックユーザインターフェースを構成する多数のオブジェクトの各々の名称情報を基に生成した属性情報を用いて、グラフィックユーザインターフェース構造を生成する処理と、(b)前記多数のオブジェクトの各々の前記属性情報を基に前記多数のオブジェクトの各々に対して画像分析モデルおよびテキスト分析モデルのうちいずれか一つを人工知能を用いて行うことによって、前記グラフィックユーザインターフェースに対応する第1モデリング情報を生成する処理と、(c)前記グラフィックユーザインターフェース構造および前記第1モデリング情報を基に、第1コードを前記人工知能を用いて生成する処理とを行うよう構成される、人工知能を用いたコード生成装置が提供される。本願技術に係る人工知能を用いたコード生成方法の他の特徴もまた、本願技術に係る人工知能を用いたコード生成装置においても同様に適用され得る。
【0123】
したがって、本明細書に説明される実施例は、本願技術を限定するためのものでなく説明するためのものであって、このような実施例によって本願技術の思想と範囲が限定されるわけではない。本願技術の権利範囲は、以下の請求範囲によって解釈されるべきであり、それと同等の範囲内にある全ての技術は本願技術の権利範囲に含まれるものとして解釈されるべきである。
【産業上の利用可能性】
【0124】
本願技術によれば、オブジェクトの名称情報を基に生成した属性情報を用いることによって、オブジェクトを分析するために必要な処理負荷を最小化し、複雑な構造を有するGUIに対しても、コードを人工知能を用いて自動的に、より正確にコードを生成することができる。
【符号の説明】
【0125】
100 コンピューティング装置
110 通信インターフェース
130 演算処理部
150 保存部
210、220、230、240、250、320、420、440 オブジェクト
図1
図2
図3
図4
図5
図6
図7
図8
図9