JP2020191076A - Apiドキュメンテーションからのapiエンドポイント記述の予測 - Google Patents
Apiドキュメンテーションからのapiエンドポイント記述の予測 Download PDFInfo
- Publication number
- JP2020191076A JP2020191076A JP2020055857A JP2020055857A JP2020191076A JP 2020191076 A JP2020191076 A JP 2020191076A JP 2020055857 A JP2020055857 A JP 2020055857A JP 2020055857 A JP2020055857 A JP 2020055857A JP 2020191076 A JP2020191076 A JP 2020191076A
- Authority
- JP
- Japan
- Prior art keywords
- endpoint
- description
- true
- sentences
- name
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 claims abstract description 94
- 238000012549 training Methods 0.000 claims abstract description 83
- 238000010801 machine learning Methods 0.000 claims description 121
- 239000013598 vector Substances 0.000 claims description 93
- 238000013528 artificial neural network Methods 0.000 claims description 35
- 238000013527 convolutional neural network Methods 0.000 claims description 15
- 238000013459 approach Methods 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 5
- 230000006403 short-term memory Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 239000008186 active pharmaceutical agent Substances 0.000 abstract 6
- 238000004891 communication Methods 0.000 description 21
- 238000010606 normalization Methods 0.000 description 19
- 230000009471 action Effects 0.000 description 15
- 230000015654 memory Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000006399 behavior Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 6
- 238000003058 natural language processing Methods 0.000 description 6
- 230000002085 persistent effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000877 morphologic effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000011524 similarity measure Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101150083648 Sav1 gene Proteins 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
【課題】APIドキュメンテーションからAPIエンドポイント記述を予測する方法等を提供する。【解決手段】方法は、複数のウェブAPIに関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出し、複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すことを含む。方法は、ドキュメンテーションコーパス及び複数の真のエンドポイント記述に基づき、複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することを更に含む。方法は、複数のウェブAPIに関連した特徴情報を取り出し特徴情報に基づき訓練データセットを生成し、訓練データセットに基づきMLモデルを取得することを更に含む。方法は、入力の組をMLモデルへ供給し、入力の組を、供給された入力の組についてのMLモデルの予測結果に基づき、エンドポイントに関連した真記述又は偽記述の1つとして分類することを更に含む。【選択図】図3
Description
本開示で議論される実施形態は、APIドキュメンテーションからアプリケーションプログラミングインターフェイス(Application Programming Interface,API)エンドポイント記述を予測することに関係がある。
多くの企業及び組織は、音声処理及びソーシャルメディア解析のようないくつかのアプリケーションのための異なるウェブAPIを提供するウェブAPI基盤をサードパーティ開発者及び/又はサードパーティ組織に提供する。一般的に、ウェブAPIは、公開されたエンドポイントとのプログラマチックインターフェイスであり、サードパーティソフトウェアによってリソースがアクセスされ得る場所を特定する。ウェブAPIの利用及び関連するコードの例に関する詳細は、通常はウェブAPIドキュメンテーションで提供される。一般的に、ウェブAPIドキュメンテーションでは、エンドポイント記述は、通常はエンドポイント名を囲んでいるが、ウェブAPIドキュメンテーションのための標準テンプレートは存在せず、APIドキュメンテーションの品質は大いに変わる。いくつかのうまく構造化されたAPIドキュメンテーションでは、エンドポイント記述は容易に見つけることができるが、一方で、特定のそれほど構造化されていないAPIドキュメンテーションでは、エンドポイント記述は、見つけることが難しい。一例として、多くのAPIドキュメンテーションで、エンドポイント名と正確なエンドポイント記述との間のセンテンススパンに関して特定のパターンは存在しない。よって、APIの急速な成長とともに、うまく構造化されたAPIドキュメンテーション又はそれほど構造化されていないAPIドキュメンテーションのどちらか一方を含むウェブAPIドキュメンテーションから正確なエンドポイント記述を予測することができる自動アプローチに対する長年にわたる切実な要望がある。
本願で請求される対象は、上記のような環境でしか動作しない実施形態又は上記の如何なる欠点も解決する実施形態に限られない。むしろ、この背景は、本願で記載されるいくつかの実施形態が実施され得る技術分野の一例を説明するためにのみ与えられている。
実施形態の一態様によれば、動作は、複数のウェブアプリケーションプログラミングインターフェイス(API)に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すこととを含んでよい。動作は、読み出されたドキュメンテーションコーパス及び取り出された複数の真のエンドポイント記述に基づいて、複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することを更に含んでよい。動作は、取り出された複数の真のエンドポイント記述、読み出されたドキュメンテーションコーパス、及び決定された複数の偽のエンドポイント記述に基づいて、複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すことを更に含んでよい。動作は、取り出された特徴情報に基づいて訓練データセットを生成することと、生成された訓練データセットに基づいて機械学習(ML)モデルを取得することとを更に含んでよい。更には、動作は、入力の組をMLモデルへ供給することと、供給された入力の組を、供給された入力の組についてのMLモデルの予測結果に基づいて、エンドポイントに関連した真記述又は偽記述の1つとして分類することとを含んでよい。入力の組は、複数のウェブAPIの中の特定のウェブAPIのエンドポイントに関連してよい。
実施形態の目的及び利点は、少なくとも、特許請求の範囲で特に示されている要素、特徴、及び組み合わせによって、実現及び達成されるだろう。
上記の概要及び下記の詳細な説明は両方とも、単に例及び説明であり、請求される発明の制限でない点が理解されるべきである。
例となる実施形態は、添付の図面の使用を通じて更なる特定及び詳細をもって記載及び説明されることになる。
本開示の実施形態は、添付の図面を参照して説明される。
本開示で記載されるいくつかの実施形態は、APIドキュメンテーションからアプリケーションプログラミングインターフェイス(API)エンドポイント記述を予測する方法及び非一時的なコンピュータ可読媒体に関する。本開示は、複数のウェブAPIに関連した真のエンドポイント記述をラベル付きリポジトリから取り出し、複数のウェブAPIに関連した文書を含むドキュメンテーションコーパスから偽のエンドポイント記述を決定するための予測システムの使用に関する。更には、本開示は、複数のウェブAPIに関連した複数の特徴に対応する特徴情報を含む訓練データセットを生成し、訓練データセットに基づいて機械学習(ML)モデルを取得するための予測システムの使用に関する。更には、本開示は、MLモデルを用いて、所与のエンドポイント記述が真記述又は偽記述であるかどうかを示す予測結果を出力するための予測システムの使用に関する。
本開示の1つ以上の実施形態によれば、ウェブ/ソフトウェアアプリケーション開発及びディープラーニングの技術分野は、予測システムが、文書内のウェブAPIのエンドポイントの所与のエンドポイント記述が真記述又は偽記述であるかどうかを示すように予測結果を出力することができるように、予測システムに対してMLモデル(すなわち、訓練されたMLモデル)を提供することによって、改善され得る。予測結果は、予測システムがドキュメンテーションコーパス内の文書から直接に所与のエンドポイント記述を取り出すべきかどうかを決定することを助ける。更には、MLモデルは、文書内の他の情報を真又は偽であると分類するよう更に訓練されてよい。これは更に、予測システムが、入力パラメータ記述又は出力パラメータ記述のような他の情報をドキュメンテーションコーパス内の文書から取り出すべきかどうかを決定することを助け得る。
本開示の1つ以上の実施形態によれば、MLモデルは、ディープニューラルネットワーク(Deep Neural Networks,DNN)と人工ニューラルネットワーク(Artificial Neural Networks,ANN)とのハイブリッドアーキテクチャに基づくディープラーニングモデルであってよい。本開示の全体にわたって、ANNは、1つ以上のDense層と、任意のDropout及びBatch Normalization層とをニューラルネットワークに示し、DNNを使用して、畳み込みニューラルネットワーク(Convolutional Neural Networks,CNN)、回帰型ニューラルネットワーク(Recurrent Neural Networks,RNN)、長短期記憶(Long Short-Term Memory,LSTM)、などのような他のニューラルネットワークを示すために使用される。ハイブリッドアーキテクチャにより、MLモデルは、標準の学習モデルと比較して高い分類精度を達成し得る。実験データにより、「〜90.31%」及び「〜98.13%」の分類精度が、DNNとして畳み込みニューラルネットワーク(CNN)を、及びDNNとして長短期記憶(LSTM)を夫々使用して、達成される。
文書内の所与のエンドポイント記述を真記述又は偽記述の1つとして確かに且つ効率的に分類する能力は、コンピュータ自体の動作に対する多数の利点と、関連するコンピュータプログラミングの分野に対する改善とをもたらし得る。コンピュータ自体に関して、文書内のどの記述が正確なエンドポイント記述であるかを識別するための訓練されたMLモデルの使用と、ユーザ(例えば、開発者)のためのそのような正確なエンドポイント記述の取り出しとは、改善された機能をコンピュータにもたらし得る。この改善された機能性は、以前は存在していなかった新しい機能性を読み出し及び/又は実装することをコンピュータに可能にし、そのような機能性を自動的に生成し得る。例えば、本開示は、開発者などのユーザが適切なウェブAPI及びエンドポイントの機能性を所望のソフトウェアアプリケーションに組み込むことを可能にするために、真記述又は偽記述の1つとしての文書内の所与のエンドポイント記述の分類を助け得る。
コンピュータプログラミングを改善することに関して、本開示は、ソフトウェア開発者のための強化された機能を提供し得る。例えば、本開示は、ソフトウェア開発者が彼らのクライアントに対してより効率的に且つ確かにソフトウェアソリューションを提供することを可能にするために、ユーザが、エンドポイントが彼のソフトウェアアプリケーションに関連するかどうかを決定し、更には、彼/彼女のソフトウェアアプリケーションに所望のウェブAPIのコンピュータコードを組み込むことを助け得るウェブAPIの関連するエンドポイント記述を示す関連する予測結果を提供し得る。
図1は、本開示で記載される少なくとも1つの実施形態に従って配置される、ウェブAPI及び関連するエンドポイントを推薦することに関連した環境の例を表す図である。図1を参照して、例となる環境100が示されている。例となる環境100には、予測システム102、ラベル付きリポジトリ104、ドキュメンテーションコーパス106、及び通信ネットワーク108が示されている。予測システム102、ラベル付きリポジトリ104、及びドキュメンテーションコーパス106は、通信ネットワーク108を介して互いへ通信上結合され得る。
予測システム102は、機械学習(以降、ML)モデル102Aを含んでよい。予測システム102は、ソフトウェアプロセス、コンピューティングデバイス上の機械実行可能な命令の組、又はデバイスやソフトウェアコードを含むコンピューティングシステム、あるいは、それらの組み合わせのうちの1つ以上であってよい。予測システム102は、MLモデル102Aへの入力の組がウェブAPIのエンドポイントに関連した真記述又は偽記述の1つであるかどうかを示し得る予測結果を出力するためにMLモデル102Aを用いるよう構成されてよい。MLモデル102Aを用いるために、MLモデル102Aは、訓練データセットに対して最初に訓練される必要があり得る。訓練データセットは、インターネットネットワーク又はイントラネットネットワークを介してアクセス可能な公に利用可能な情報から取り出され得る情報に基づき取得されてよい。
予測システム102は、ラベル付きリポジトリ104を含み得る公に利用可能な情報の検索を実行する必要があり得る。検索は、インターネットネットワーク又はイントラネットネットワークを介してウェブ上で実行されてよい。例えば、予測システム102は、複数のウェブAPIに関連した公に利用可能な情報を、公に利用可能な情報をウェブ上で記憶している1つ以上のコンピュータベースのソースから見つけて収集するよう構成され得るウェブクローラー(crawler)又はウェブスクレーパー(scraper)(例えば、クローラーボット又はスクレーパーボット)を含んでよい。
ラベル付きリポジトリ104は、複数のウェブAPIに関連した複数の構造化された仕様文書110を含んでよい。複数の構造化された仕様文書110の中の各API仕様文書は、複数のウェブAPIの中の対応するウェブAPIに関連した複数のフィールドにマッピングされた情報を含んでよい。複数のフィールドは、APIタイトルフィールド、エンドポイント名フィールド、及びエンドポイント記述フィールドを含んでよい。その上、ある実施形態では、複数のフィールドは、例えば、API記述フィールドと、入出力パラメータ、一次カテゴリ、二次カテゴリ、及び1つ以上のタグのためのフィールドとを含んでもよい。
1つ以上の実施形態で、予測システム102は、エンドポイント記述フィールドにマッピングされた情報の部分を、複数の真のエンドポイント記述の中の真のエンドポイント記述として識別(又はマーク)するよう構成されてよい。更には、予測システム102は、複数のウェブAPIに関連した複数の真のエンドポイント記述を、ラベル付きリポジトリ104から取り出すよう構成されてよい。いくつかの真のエンドポイント記述が取り出されるための構造化された仕様文書のいくつかの例は、例えば、図4A及び図4Bで与えられている。
ラベル付きリポジトリ104は、複数のウェブAPIに関連した公に利用可能な情報について1つ以上のコンピュータベースのソースからアクセスされてよい。1つ以上のコンピュータベースのソースは、制限なしに、ウェブサーバ、クライアントコンピュータ、専用のAPIストア、APIドキュメンテーションを記憶しているファイルサーバ、及びAPI検索プラットフォームを含んでよい。1つ以上のコンピュータベースのソース内の複数の構造化された仕様文書110は、如何なる電子フォーマットにあってもよく、機械読み出し可能な及び/又は人間が読むことができるフォーマットであってよく、例えば、英語、日本語、ドイツ語、などのような如何なる言語でも利用可能であってよい。1つ以上の実施形態で、少なくとも1つのコンピュータベースのソースは、所望のウェブAPIに関連した情報を調べて見つけることをユーザに可能にし得る。
予測システム102は、複数のウェブAPIに関連したドキュメンテーションコーパス106を読み出すよう更に構成されてよい。1つ以上の実施形態で、予測システム102は、1つ以上のコンピュータベースのソースに記憶されている公に利用可能な情報からドキュメンテーションコーパス106を探して読み出すためにウェブクローラー又はウェブスクレーパー(例えば、クローラーボット又はスクレーパーボット)を使用するよう更に構成されてよい。ドキュメンテーションコーパス106は、対応するウェブAPIの集合に関連した文書の集合112を含んでよい。文書の例には、制限なしに、APIドキュメンテーション、API仕様文書、APIリポジトリ上のウェブページ、APIマップアップ、及び使用ガイドがある。ドキュメンテーションコーパス106内の文書の集合112は、構造化されていない様態で配置されている複数のウェブAPIに関連した情報を有してよい。例えば、構造化された仕様では、エンドポイント名についてのエンドポイント記述は、エンドポイントの位置を囲むセンテンスに存在してよく、一方、構造化されていない仕様では、エンドポイント名を囲むセンテンスは、エンドポイントの偽記述である可能性がある情報を含むことがある。
予測システム102は、読み出されたドキュメンテーションコーパス106及び取り出された複数の真のエンドポイント記述に基づいて、複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定するよう更に構成されてよい。複数の偽のエンドポイント記述は、センテンス類似性メソッドのような1つ以上の自然言語処理(Natural Language Processing,NLP)技術を用いてドキュメンテーションコーパス106から決定されてよい。複数の偽のエンドポイント記述の決定の詳細は、例えば、図5A、図5B、及び図5Cで与えられている。
予測システム102は、取り出された複数の真のエンドポイント記述、読み出されたドキュメンテーションコーパス106、及び決定された複数の偽のエンドポイント記述に基づいて、複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すよう更に構成されてよい。取り出された特徴情報は、制限なしに、エンドポイントベクトル、記述ベクトル、ハイパーテキスト転送プロトコル(HTTP)メソッド、コサイン類似性スコア、spacy類似性スコア、セッションセグメント値、記述タグ値、トークン数、エンドポイント名の数を含んでよい。特徴情報を取り出す方法の詳細は、例えば、図3で与えられている。
予測システム102は、取り出された特徴情報に基づいて訓練データセットを生成し、生成された訓練データセットに基づいてMLモデル102Aを取得するよう更に構成されてよい。訓練データセットは、MLモデル102Aに関連したコスト関数/訓練エラーが最小限にされるまで、MLモデル102Aを訓練するために使用されてよい。取得されたMLモデル102Aは、エンドポイントに関連した入力の組についての予測結果(例えば、“0”又は“1”)を出力し、それによって、入力が真記述又は偽記述に対応するかどうかを示し得る分類器(classifier)であってよい。
予測システム102は、入力の組をMLモデル102Aへ供給するよう更に構成されてよい。入力の組は、複数のウェブAPIの中の特定のウェブAPIについてのエンドポイントに関連してよい。一例として、入力の組は、ドキュメンテーションコーパス106に存在する文書(例えば、テスト文書/見知らぬ/分類されていない文書)内でエンドポイント名を囲む1つ以上のセンテンスについての特徴情報(すなわち、訓練データセット内の特徴情報と類似)であってよい。MLモデル102Aは、予測結果を出力するよう構成されてよく、予測システム102は、供給された入力の組を、供給された入力の組についてのMLモデル102Aの予測結果に基づいて、エンドポイントに関連した真記述又は偽記述の1つとして分類するよう構成されてよい。
文書内でエンドポイント名を囲む1つ以上のセンテンスを含む入力の組がエンドポイントに関連した真記述(すなわち、予測結果は“1”である)に対応する1つ以上の実施形態で、予測システム102は、文書から真記述として1つ以上のセンテンスを取り出すよう構成されてよく、取り出された1つ以上のセンテンスを使用して、構造化された仕様又は適切なデータ構造を構築してよい。構造化された仕様又は適切なデータ構造は、いくつかのアプリケーションのために、例えば、アプリケーション開発者が彼/彼女の所望のソフトウェアアプリケーションにおいてエンドポイントの使用に関して情報に基づいたより良い決断を下すことを助けるために、アプリケーション開発者に真記述を表示するために使用されてよい。
予測システム102、ラベル付きリポジトリ104、及びドキュメンテーションコーパス106の間の通信は、通信ネットワーク108を介して実行されてよいことがここで留意されるべきである。通信ネットワーク108は、予測システム102がウェブを介してラベル付きリポジトリ104にアクセスし且つ異なるデバイス(図示せず。)と通信し得るための通信媒体を含んでよい。通信ネットワーク108の例には、制限なしに、インターネット、クラウドネットワーク、ワイヤレスフィデリティ(Wi−Fi)ネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、及び/又はメトロポリタンエリアネットワーク(MAN)がある。例となる環境100内の様々なデバイスは、様々な有線及び無線通信プロトコルに従って、通信ネットワーク108へ接続するよう構成されてよい。そのような有線及び無線通信プロトコルの例には、制限なしに、伝送制御プロトコル及びインターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、ZigBee(登録商標)、EDGE、IEEE802.11、ライトフィデリティ(Li−Fi)、802.16、IEEE802.11s、IEEE802.11g、マルチホップ通信、無線アクセスポイント(AP)、デバイス間(device to device)通信、セルラー通信プロトコル、及び/又はBluetooth(登録商標)(BT)通信プロトコル、あるいは、それらの組み合わせがある。
本開示の適用範囲から逸脱することなしに、予測システム102に対して変更、追加、又は削除が行われてよい。例えば、予測システム102は、複数のウェブAPIの中の特定のウェブAPIについてのエンドポイントに関連した真記述又は偽記述の1つとして入力の組を分類するよう集合的に動作し得るサーバの分散ネットワークであってよい。
図2は、本開示で記載される少なくとも1つの実施形態に従って配置される、APIドキュメンテーションからAPIエンドポイント記述を予測する予測システムの例のブロック図である。図2は、図1からの要素との関連で説明される。図2を参照して、例となる予測システム202のブロック図200が示されている。例となる予測システム202は、プロセッサ204、メモリ206、永続性データストレージ208、及びネットワークインターフェイス210を含んでよい。例となる予測システム202は、図1の予測システム102に対応してよい。
プロセッサ204は、例となる予測システム202によって実行される種々の動作に関連したプログラム命令を実行するよう構成され得る適切なロジック、回路構成、及び/又はインターフェイスを有してよい。例えば、動作のいくつかは、ラベル付きリポジトリ104からウェブAPIに関連した複数の真のエンドポイント記述を取り出すこと、ドキュメンテーションコーパスを読み出すこと、読み出されたドキュメンテーションコーパスから複数の偽のエンドポイント記述を決定すること、訓練データセットを構成すること、訓練データセットに基づいてMLモデル102Aを取得して、所与の入力をエンドポイントに関連した真記述又は偽記述の1つとして分類すること、などを含んでよい。プロセッサ204は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な特別目的又は汎用のコンピュータ、コンピューティングエンティティ、又はプロセッシングデバイスを含んでよく、任意の適用可能なコンピュータ可読記憶媒体に記憶されている命令を実行するよう構成されてよい。例えば、プロセッサ204は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは、プログラム命令を解釈及び/若しくは実行するよう並びに/又はデータを処理するよう構成された任意の他のデジタル又はアナログ回路構成を含んでよい。図2には単一のプロセッサとして表されているが、プロセッサ204は、本開示で記載される例となる予測システム202の任意数の動作を個別的に又は集合的に実行するか又はその実行を指示するよう構成された任意数のプロセッサを含んでよい。更には、1つ以上のプロセッサが、異なるサーバのような、1以上の異なる電子デバイスに存在してもよい。
いくつかの実施形態で、プロセッサ204は、メモリ206及び/又は永続性データストレージ208に記憶されているプログラム命令を解釈及び/若しくは実行するよう並びに/又は記憶されているデータを処理するよう構成されてよい。いくつかの実施形態で、プロセッサ204は、データストレージ208からプログラム命令をフェッチし、プログラム命令をメモリ206にロードしてよい。プログラム命令がメモリ206内にロードされた後、プロセッサ204はプログラム命令を実行してよい。プロセッサ204の例のいくつかは、GPU、CPU、RISCプロセッサ、ASICプロセッサ、CISCプロセッサ、コプロセッサ、及び/又はそれらの組み合わせであってよい。
メモリ206は、プロセッサ204によって実行可能なプログラム命令を記憶するよう構成され得る適切なロジック、回路構成、及び/又はインターフェイスを有してよい。特定の実施形態で、メモリ206は、オペレーティングシステム及び関連するアプリケーション固有情報を記憶するよう構成されてよい。メモリ206は、コンピュータ実行可能な命令又はデータ構造を運ぶか又は記憶しているコンピュータ可読記憶媒体を含んでよい。かようなコンピュータ可読記憶媒体は、プロセッサ204のような汎用又は特別目的のコンピュータによってアクセスされ得る任意の利用可能な媒体を含んでよい。
一例として、制限なしに、かようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能なプログラム可能リードオンリーメモリ(EEPROM)、コンパクトディスク・リードオンリーメモリ(CD−ROM)若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)、あるいは、コンピュータ実行可能な命令又はデータ構造の形で特定のプログラムコードを搬送又は記憶するために使用され得且つ汎用又は特別目的のコンピュータによってアクセスされ得る任意の他の記憶媒体を含む有形な又は非一時的なコンピュータ可読記憶媒体を含んでよい。上記のものの組み合わせも、コンピュータ可読記憶媒体の範囲内に含まれ得る。コンピュータ実行可能命令は、例えば、プロセッサ204に、例となる予測システム202に関連した特定の動作又は動作群を実行させるよう構成された命令及びデータを含んでよい。
永続性データストレージ208は、プロセッサ204によって実行可能なプログラム命令、オペレーティングシステム、並びに/又はログ及びアプリケーション固有データベースのようなアプリケーションを記憶するよう構成され得る適切なロジック、回路構成、及び/又はインターフェイスを有してよい。永続性データストレージ208は、コンピュータ実行可能な命令又はデータ構造を運ぶか又は記憶しているコンピュータ可読記憶媒体を含んでよい。かようなコンピュータ可読記憶媒体は、プロセッサ204のような汎用又は特別目的のコンピュータによってアクセスされ得る任意の利用可能な媒体を含んでよい。
一例として、制限なしに、かようなコンピュータ可読記憶媒体は、コンパクトディスク・リードオンリーメモリ(CD−ROM)若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス(例えば、ハードディスクドライブ(HDD))、フラッシュメモリデバイス(例えば、ソリッドステートドライブ(SSD)、セキュアデジタル(SD)カード、他のソリッドステートメモリデバイス)、あるいは、コンピュータ実行可能な命令又はデータ構造の形で特定のプログラムコードを搬送又は記憶するために使用され得且つ汎用又は特別目的のコンピュータによってアクセスされ得る任意の他の記憶媒体を含む有形な又は非一時的なコンピュータ可読記憶媒体を含んでよい。上記のものの組み合わせも、コンピュータ可読記憶媒体の範囲内に含まれ得る。コンピュータ実行可能命令は、例えば、プロセッサ204に、例となる予測システム202に関連した特定の動作又は動作群を実行させるよう構成された命令及びデータを含んでよい。
ネットワークインターフェイス210は、通信ネットワーク108を介した、例となる予測システム202及びラベル付きリポジトリ104の間の通信を確立するよう構成され得る適切なロジック、回路構成、インターフェイス、及び/又はコードを有してよい。ネットワークインターフェイス210は、通信ネットワーク108を介した例となる予測システム202の有線又は無線通信をサポートするように様々な既知の技術の使用によって実装されてよい。ネットワークインターフェイス210は、制限なしに、アンテナ、無線周波数(RF)トランシーバ、1つ以上の増幅器、チューナ、1つ以上の発振器、デジタル信号プロセッサ、コーダ−デコーダ(CODEC)チップセット、加入者識別モデル(Subscriber Identity Module,SIM)カード、及び/又はローカルバッファを含んでよい。
ネットワークインターフェイス210は、インターネット、イントラネット、並びに/又は無線ネットワーク、例えば、セルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)及び/若しくはメトロポリタンエリアネットワーク(MAN)のようなネットワークと無線通信を介して通信してよい。無線通信は、GSM(登録商標)(Global System for Mobile Communications)、EDGE(Enhanced Data GSM Environment)、広帯域符号分割多重アクセス(Wideband Code Division Multiple Access,W−CDMA)、ロングタームエボリューション(Long Term Evolution,LTE)、符号分割多重アクセス(CDMA)、時分割多重アクセス(Time Division Multiple Access,TDMA)、Bluetooth、ワイヤレスフィデリティ(Wi−Fi)(例えば、IEEE802.11a、IEEE802.11b、IEEE802.11g及び/又はIEEE802.11n)、ボイスオーバーインターネットプロトコル(Voice over Internet Protocol,VoIP)、ライトフィデリティ(Li−Fi)、あるいはWi−MAXのような、複数の通信規格、プロトコル及び技術のいずれかを使用してよい。
特定の実施形態で、例となる予測システム202は、フロントエンドサブシステムとバックエンドサブシステムとに分けられてよい。フロントエンドサブシステムは、もっぱら、サードパーティサーバ、ウェブサーバ、クライアントマシン、ユーザエンドデバイス、及びバックエンドサブシステムのうちの1つ以上から要求/命令を受信するよう構成されてよい。そのような要求はバックエンドサブシステムへ返送されてもよく、バックエンドサブシステムはそのような要求に従って動作するよう構成されてよい。例えば、例となる予測システム202が複数のサーバを含む場合に、2、3のサーバは、バックエンドサブシステムに関連した残りのサーバへ要求/命令を中継するよう構成されたフロントエンドサーバであってよい。バックエンドサブシステムはまた、訓練データセットに対して訓練されるとMLモデル102Aを記憶してよい。本開示の適用範囲から逸脱することなしに、例となる予測システム202に対して変更、追加、又は削除が行われてよい。例えば、いくつかの実施形態で、例となる予測システム202は、明示的には図示又は記載されていないことがある任意数の他のコンポーネントを含んでもよい。
図3は、本開示で記載される少なくとも1つの実施形態に従って、APIドキュメンテーションからAPIエンドポイント記述を予測する方法の例のフローチャートを表す。図3は、図1及び図2からの要素との関連で説明される。図3を参照して、フローチャート300が示されている。フローチャート300で表されている方法は302から開始してよく、任意の適切なシステム、装置、又はデバイスによって、例えば、図2の例となる予測システム202によって、実行されてよい。
302で、複数のウェブAPIに関連した複数の真のエンドポイント記述が、ラベル付きリポジトリ104から取り出されてよい。1つ以上の実施形態で、プロセッサ204は、複数のウェブAPIに関連した複数の真のエンドポイント記述をラベル付きリポジトリ104から取り出すよう構成されてよい。ラベル付きリポジトリ104は、複数のウェブAPIに関連した複数の構造化された仕様文書110を含んでよい。複数の構造化された仕様文書110の中の各構造化された仕様文書は、ファイルタイプに関連してよい。文書タイプの例には、制限なしに、ハイパーテキストマークアップ言語(HTML)、ポータブルドキュメントフォーマット(PDF)、ユニコードプレーンテキスト(TxT)、オープンXMLドキュメント(DOCX)、コンマ区切り値(CSV)、拡張可能マークアップ言語(XML)、及びリッチテキストドキュメント(RTF)がある。更には、各構造化された仕様文書は、複数のウェブAPIの中の対応するウェブAPIに関連した複数のフィールドにマッピングされた情報を含んでよい。情報は、制限なしに、APIタイトル、エンドポイント名、及びエンドポイント記述を含んでよい。また、ある実施形態では、情報は、API記述、入力パラメータ記述、出力パラメータ記述、一次カテゴリ、二次カテゴリ、及び1つ以上のタグを含んでもよい。更には、エンドポイント記述フィールドにマッピングされた情報の部分は、真のエンドポイント記述としてマークされてよく、更には、構造化された仕様文書から取り出されてもよい。同様に、他の構造化された仕様文書からの真のエンドポイント記述が識別され取り出されてもよい。例となる構造化された仕様文書内の真のエンドポイント記述の例は、図4A及び図4Bで与えられている。
304で、複数のウェブAPIに関連したドキュメンテーションコーパス106が読み出されてよい。1つ以上の実施形態で、プロセッサ204は、1つ以上のコンピュータベースのソースからドキュメンテーションコーパス106を読み出すよう構成されてよい。ドキュメンテーションコーパス106は、対応するウェブAPIの集合に関連した文書の集合112を含んでよい。文書の集合112内の文書の例には、制限なしに、APIドキュメンテーション、API仕様文書、APIリポジトリ上のウェブページ、APIマップアップ、及び使用ガイドがある。
一例として、ドキュメンテーションコーパス106は、APIプロバイダのウェブサイトからのAPI文書(例えば、htmlページ)の集合を含むAPIドキュメンテーションのコーパスに対応してよい。ドキュメンテーションコーパス106内の文書の集合は、構造化されていない様態で配置されている複数のウェブAPIに関連した情報を有してよい。例えば、構造化された仕様では、エンドポイント名についてのエンドポイント記述は、エンドポイントの位置を囲むセンテンスに存在してよく、一方、構造化されていない仕様では、エンドポイント名を囲むセンテンスのいくつかは、エンドポイントの偽記述を含むことがある。
306で、複数のウェブAPIに関連した複数の偽のエンドポイント記述が、読み出されたドキュメンテーションコーパス106及び取り出された複数の真のエンドポイント記述に基づいて決定されてよい。一般に、偽のエンドポイント記述は、所与のエンドポイントについての真のエンドポイント記述のそれとは意味的及び/又は文脈的に異なっているセンテンス(又はセンテンスの組)に対応してよい。1つ以上の実施形態で、プロセッサ204は、読み出されたドキュメンテーションコーパス106及び取り出された複数の真のエンドポイント記述に基づいて、複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定するよう構成されてよい。複数の偽のエンドポイント記述を決定するために、ウェブAPIに関連する、ドキュメンテーションコーパス106内の複数の文書の中の各文書は、パースされてよく、その文書内でエンドポイント名を囲む特定のテキスト部分が集められてよい。更には、例えば、集められた特定のテキスト部分と対応するウェブAPIについての真のエンドポイント記述との間のセンテンス類似性演算のような、1つ以上の自然言語処理動作が、実行されてもよい。集められた特定のテキスト部分内のセンテンスは、センテンス類似度が低い場合に、対応するウェブAPIについての偽のエンドポイント記述として識別され得る。複数の偽のエンドポイント記述の決定のプロセスの詳細は、例えば、図5A、図5B、及び図5Cで与えられている。
特定の実施形態で、プロセッサ204は、複数のウェブAPIに関連した初期データセットを構成するよう構成されてよい。初期データセットは、取り出された複数の真のエンドポイント記述、読み出されたドキュメンテーションコーパス106、及び決定された複数の偽のエンドポイント記述に基づいて構成されてよい。初期データセットは、複数のカテゴリ変数及びバイナリ変数(すなわち、MLモデル102Aを訓練するための出力ラベル)を有するデータベーステーブルに対応してよい。複数のカテゴリ変数は、制限なしに、API名、エンドポイント名、及びエンドポイント記述を含んでよい。同様に、バイナリ変数は、エンドポイント記述がエンドポイント名の真記述であるかどうかを示してよい。初期データセットは、MLモデル102Aを訓練するために使用され得る訓練データセットについての異なる特徴を取り出すために、構築されてよい。
一例として、真(True)及び偽(False)のエンドポイント記述を有するデータセットの例が、表1に与えられている。真及び偽のエンドポイント記述の数は同様であると仮定される。表1は、次のように与えられる:
308で、複数のウェブAPIに関連した複数の特徴に対応する特徴情報が、取り出された複数の真のエンドポイント記述、読み出されたドキュメンテーションコーパス、及び決定された複数の偽のエンドポイント記述に基づいて取り出されてよい。ある実施形態では、複数のウェブAPIに関連した複数の特徴に対応する特徴情報は、構成された初期データセットに基づいて取り出されてよい。
1つ以上の実施形態で、プロセッサ204は、複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すよう構成されてよい。複数の特徴は、制限なしに、エンドポイントベクトル特徴、記述ベクトル特徴、HTTPメソッド特徴、コサイン類似性特徴、spacy類似性特徴、セッションセグメント特徴、記述タグ特徴、トークン数特徴、又はエンドポイント名数特徴を含んでよい。
実施形態において、構成された初期データセット内の各エンドポイント名のエンドポイントベクトルが計算されてよい。エンドポイントベクトルは、構成された初期データセット内の対応するエンドポイント名のワードベクトル表現(すなわち、ワード埋め込み(word embedding))として計算されてよい。エンドポイントベクトルは、エンドポイントベクトル内のワードの組にわたって統語的及び意味的関係を捕らえてよい。より具体的には、エンドポイントベクトルは、エンドポイント名内のワードを多次元の連続した浮動小数点として表し、意味的に類似したワードは、幾何学空間において近接した点にマッピングされる。別の言い方をすれば、エンドポイントベクトルは、実数値数の行として表されてよく、各点は、ワードの意味の次元を捕らえてよく、意味的に類似したワードは、類似したワードベクトルを有してよい。例えば、「タイヤ」(tire)及び「ホイール」(wheel)のワードベクトルは、「車両」(vehicle)のそれと類似するはずである。更に、構成された初期データセット内の各エンドポイント記述の記述ベクトルが計算されてよい。エンドポイントベクトルと同様に、記述ベクトルも、エンドポイント記述のワードベクトル表現(すなわち、ワード埋め込み)であってよい。
実施形態において、コサイン類似性スコアは、各エンドポイントベクトルと、構成された初期データセット内の対応するエンドポイント記述についての計算された記述ベクトルとの間で、計算されてよい。よって、コサイン類似性スコアは、2つの非ゼロベクトル、すなわち、エンドポイントベクトル及び記述ベクトルの間の類似性の指標であってよい。類似性の指標は、エンドポイントベクトルと記述ベクトルとの間の角度のコサインを測定する内積から取得されてよい。一例として、コサイン類似性スコアは、エンドポイントベクトルと記述ベクトルとの相対的な向きの指標であってよく、大きさではない。従って、エンドポイントベクトル及び記述ベクトルが同じ向きを有している場合に、コサイン類似性スコアは“1”であってよい。一方、エンドポイントベクトル及び記述ベクトルが互いに対して“90°”で方向付けられている場合には、コサイン類似性スコアは“0”であってよい。更には、実施形態において、spacy類似性スコアは、構成された初期データセット内の各エンドポイント名と対応するエンドポイント記述との間で計算されてよい。コサイン類似性スコアと同様に、spacy類似性スコアは、ワードベクトルの平均(例えば、ワード表現のためのグローバルベクトル(Global vectors,Glove)のword2vecモデルを使用して取得される。)に対する類似性の指標を提供し得る。ある場合に、spacy類似性スコアは、見知らぬ(unseen)/クリーンでない(unclean)テキストが構成された初期データセット内のエンドポイント名又は対応するエンドポイント記述のどちら一方に存在するときにゼロ(“0”)と計算されてよい。
実施形態において、対応するエンドポイント名についてのHTTPメソッドの存在が、読み出されたドキュメンテーションコーパス106において決定されてよい。更には、読み出されたドキュメンテーションコーパス106内の対応するエンドポイント名についてHTTPメソッドが存在するとの決定に基づいて、対応するエンドポイント名についてのHTTPメソッドが識別されてよい。また、読み出されたドキュメンテーションコーパス106内の対応するエンドポイント名についてHTTPメソッドが不存在であるとの決定に基づいて、HTTPメソッドは、対応するエンドポイント名について“NONE”と設定されてよい。バイナリ変数としてHTTPメソッドを使用することに代えて、それはカテゴリ変数と見なされてもよい。例えば、“7”つの異なるカテゴリがある。例えば、HTTPメソッドは、GET、POST、PUT、PATCH、DELETE、OPTIONS、又はHEADのうちの1つであってよい。
実施形態において、読み出されたドキュメンテーションコーパス106からの対応するエンドポイント名についての対応するエンドポイント記述の1つ以上のセンテンスの存在が、対応するエンドポイント名のそれと同じセッションにあると決定されてよい。更には、1つ以上のセンテンスが対応するエンドポイント名のそれと同じセッションに存在するとの決定に基づいて、セッションセグメント値はイチ(“1”)と設定されてよい。一方、セッションセグメント値は、1つ以上のセンテンスが対応するエンドポイント名のそれと同じセッションに存在しないとの決定に基づいてゼロ(“0”)と設定されてよい。
実施形態において、対応するエンドポイント名についてのエンドポイント記述タグの存在が、読み出されたドキュメンテーションコーパス106において決定されてよい。更には、読み出されたドキュメンテーションコーパス106内の対応するエンドポイント名についてエンドポイント記述タグが存在しないとの決定に基づいて、記述タグ値は、対応するエンドポイント名についてゼロと設定されてよい。一方、読み出されたドキュメンテーションコーパス106内の対応するエンドポイント名についてエンドポイント記述タグが存在するとの決定に基づいて、エンドポイント記述タグのワードベクトル表現が生成されてよい。あるシナリオでは、文書においてワード“Description”(記述)を単に調べることに代えて、APIドキュメンテーションがワード“Descritpion”よりもむしろHTMLタグについての他のワードをしばしば含むということで、記述タグ特徴は、より一般的な特徴に拡張されてよい。そのようなHTMLタグ(すなわち、エンドポイント名に対してセンテンスの前の“M”及びセンテンスの後の“N”の範囲内にある。)は取り出されて、ワード埋め込みモデルを用いて各々のワードベクトル表現に変換されてよい。それらのベクトル自体は、モデルを訓練するために特徴として使用され得る。一例として、ワードベクトル表現は、GloVeのword2vecモデルを用いて取得されてよい。その後に、生成されたワードベクトル表現は、記述タグ値として設定されてよい。
実施形態において、トークンの数は、構成された初期データセット内の対応するエンドポイント名についての対応するエンドポイント記述から推定されてよい。トークンの数は、対応するエンドポイント記述内のワードの数及び特殊文字の数を含んでよい。更には、実施形態において、対応するエンドポイント名の出現数が、対応するエンドポイント記述において推定されてよい。
1つ以上の実施形態で、プロセッサ204は、エンドポイントベクトル、記述ベクトル、コサイン類似性スコア、及びspacy類似性スコアを計算し、HTTPメソッドを決定し、セッションセグメント値、記述タグ値、及びエンドポイント名の出現数を決定し、トークンの数を推定するよう構成されてよい。
310で、取り出された特徴情報に基づいて訓練データセットが生成されてよい。1つ以上の実施形態で、プロセッサ204は、取り出された特徴情報に基づいて訓練データセットを生成するよう構成されてよい。より具体的には、訓練データセットは、計算されたエンドポイントベクトル、計算された記述ベクトル、計算されたコサイン類似性スコア、計算されたspacy類似性スコア、識別されたHTTPメソッド、設定されたセッションセグメント値、設定された記述タグ値、推定されたトークンの数、及び対応するエンドポイント名の決定された出現数に基づいて、生成されてよい。例となる訓練データセットは、次のように、表2で与えられている:
ここで、表2中、「endpoint_vector」は、計算されたエンドポイントベクトルに対応し、「desc_vector」は、計算された記述ベクトルに対応し、“http path”は、識別されたHTTPメソッドに対応し、“spacy_score”は、計算されたspacy類似性スコアに対応し、“token_count”は、推定されたトークンの数に対応し、“ses_seg”は、設定されたセッションセグメント値に対応し、“desc tag”は、設定された記述タグ値に対応し、“desc count”は、推定された出現数に対応し、“cos_sc”は、計算されたコサイン類似性スコアに対応する。また、表2中、“is desc”は、対応するエンドポイント記述が“偽”である場合に“0”であり、対応するエンドポイント記述が“真”である場合に“1”である出力ラベルに対応し、表1中の“IsDescription”フィールドに基づいて取得されてよい。
312で、生成された訓練データセットに基づいてMLモデル102Aが取得されてよい。より具体的には、MLモデル102Aは、生成された訓練データセット内の取り出された特徴情報に基づいて、訓練されてよい。1つ以上の実施形態で、プロセッサ204は、生成された訓練データセットに基づいてMLモデル102Aを取得するよう構成されてよい。MLモデル102Aは、訓練データセット内の特徴情報のような入力と、偽記述については“0”及び真記述については“1”のような出力ラベルとの間の関係を識別するように訓練され得る、ディープラーニングに基づく分類器に対応してよい。訓練データセット内の特徴情報に対する訓練のいくつかのエポック後に、MLモデル102Aについて、全てのハイパーパラメータがチューニングされ、重みが調整される(MLモデル102Aについてのコスト関数の最小値に近づくことによって最適化される)と、MLモデル102Aは、入力の組についての予測結果(例えば、“1”又は“0”)を出力するよう訓練されてよい。予測結果は、MLモデル102Aへの入力の組(例えば、ドキュメンテーションコーパス106内の新しい/見知らぬ文書から取り出された入力特徴)がエンドポイントに関連した真記述又は偽記述に対応するかどうかを示してよい。
1つ以上の実施形態で、MLモデル102Aは、第1段階及び第2段階を含む多段階ニューラルネットワークに基づくモデルであってよい。第1段階は、人工ニューラルネットワーク(ANN)と並列に配置されたディープニューラルネットワーク(DNN)の対を含んでよく、第2段階は、DNNの対からの第1出力の対と、ANNからの第2出力とをマージするマージ層を含んでよい。第2段階からの出力は、MLモデル102Aの最終の出力、すなわち、予測結果であってよい。訓練動作は、MLモデル102Aの訓練エラー又はコスト費用が最小限にされるまで、MLモデル102Aに対して実行されてよい。MLモデル102Aに対応するMLモデルの例は、例えば、図7で、与えられている。
314で、MLモデル102A(すなわち、訓練されたMLモデル)が、例となる予測システム202で展開されてよい。1つ以上の実施形態で、プロセッサ204は、例となる予測システム202でMLモデル102Aを展開するよう構成されてよい。展開されると、MLモデル102Aは、特定のウェブAPIについてのエンドポイントに関連した入力の組を受け取り、受け取られた入力の組がエンドポイントに関連した真記述又は偽記述に対応するかどうかを示す予測結果を出力するよう構成されてよい。
316で、入力の組がMLモデル102Aへ供給されてよい。入力の組は、複数のウェブAPIの中の特定のウェブAPIについてのエンドポイントに関連してよい。1つ以上の実施形態で、プロセッサ204は、入力の組をMLモデル102Aへ供給するよう構成されてよい。例えば、入力の組は、エンドポイントベクトル、記述ベクトル、及び他の入力特徴(例えば、表2に示される。)のような入力特徴であってよく、MLモデル102Aに対する新しい/見知らぬ文書から取得されてよい。すなわち、入力の組は、出力ラベルが指定されていない文書内のセンテンスから導出されてよい。一方、初期データセット内の各センテンスは、対応するセンテンスがウェブAPIのエンドポイントについて真記述又は偽記述であるかどうかを示すように真(True)又は偽(False)のような出力ラベルと関連付けられてよい。
318で、供給された入力の組は、供給された入力の組についての訓練されたMLモデルの予測結果に基づいて、エンドポイントに関連した真記述又は偽記述の1つとして分類されてよい。1つ以上の実施形態で、プロセッサ204は、供給された入力の組を、エンドポイントに関連した真記述又は偽記述の1つとして分類するよう構成されてよい。
一例として、ドキュメンテーションコーパス106内の文書から、エンドポイント名「/oauth/token」を囲む2つの異なった例となるセンテンスが、取り出されてよい。これら2つの異なった例となるセンテンスは、次のように、表3に示される:
センテンス1及びセンテンス2(すなわち、2つの異なった例となるセンテンス)の夫々について、対応する入力の組が導出され、MLモデル102Aへ供給されてよい。対応する入力の組は、例えば、制限なしに、記述ベクトル及びエンドポイントベクトルのような、特徴を含んでよい。MLモデル102Aは、センテンス1及びセンテンス2の夫々についての予測結果を出力するよう構成されてよい。予測結果は、次のように、表4に示され得る:
表4から、予測結果は、センテンス1については“0”であり、センテンス2については“1”であることが分かる。これは、センテンス1が「/oauth/token」エンドポイントに対する偽記述であり、センテンス2が「/oauth/token」エンドポイントに対する真記述であることを示し得る。更に、制御は終了に移ってよい。フローチャート300は、302、304、306、308、310、312、314、316、及び318のような別個の動作として表されているが、特定の実施形態では、かような別個の動作は更に、開示される実施形態の本質から外れることなしに、特定の実施に応じて、更なる動作に分けられても、より少ない動作へとまとめられても、あるいは削除されてもよい。
図4A及び図4Bは集合的に、本開示で記載される少なくとも1つの実施形態に従って、ラベル付きリポジトリ内の文書の例を表す。図4A及び図4Bは、図1、図2及び図3からの要素との関連で説明される。図4A及び図4Bを参照して、。例となるウェブAPI(ここでは説明のためにMusified APIと呼ばれる。)についての第1の構造化された仕様文書400A及び第2の構造化された仕様文書400Bを含む構造化された仕様文書の組が示されている。第1の構造化された仕様文書400A及び第2の構造化された仕様文書400Bの夫々は、例となるラベル付きリポジトリから読み出されてよい。
第1の構造化された仕様文書400Aは、Musified APIに属するウェブ文書であってよく、マークアップ/コード内でMusified APIに関連した第1情報部分を含んでよい。より具体的には、Musified APIに関連した第1情報部分は、第1の構造化された仕様文書400Aにおいて1つ以上のマークアップタグ及び/マークアップカテゴリによって指定されてよい。図示されるように、第1の構造化された仕様文書400Aは、「title: Musified」としてのAPIタイトル402及び「description: Our Web API lets your applications fetch data from Musified music catalog and manage user’s playlists and saved music.」(記述:私たちのウェブAPIは、あなたのアプリケーションがMusified音楽カタログからデータを取得し、ユーザのプレイリスト及びセーブされた音楽を管理できるようにします。)としてのAPI記述404を含む。
第2の構造化された仕様文書400Bも、Musified APIに属するウェブ文書であってよく、マークアップ/コード内でMusified APIに関連した第2情報部分を含んでよい。より具体的には、Musified APIに関連した第2情報部分も、第2の構造化された仕様文書400Bにおいて1つ以上のマークアップタグ及び/マークアップカテゴリによって指定されてよい。図示されるように、第2の構造化された仕様文書400Bは、「albums/{id}」としてのエンドポイント名406、「[Get an album] (https://developer.musified.com/web-api/get-album/)」としてのエンドポイント記述408、及び「The Musified ID for the album」としてのAPI入出力パラメータ記述410を含む。
1つ以上の実施形態で、プロセッサ204は、第1の構造化された仕様文書400A及び第2の構造化された仕様文書400Bの夫々をパースして、エンドポイント名406についてのエンドポイント記述408を取り出すよう構成されてよい。取り出されたエンドポイント記述408は、エンドポイント名406についての真のエンドポイント記述として識別(又はマーク)されてよい。
図5A、図5B、及び図5Cは集合的に、本開示で記載される少なくとも1つの実施形態に従って、ウェブAPIに関連した偽のエンドポイント記述を決定する方法の例のフローチャートを表す。図5A、図5B、及び図5Cは、図1、図2、図3、図4A、及び図4Bからの要素との関連で説明される。図5A、図5B、及び図5Cを参照して、フローチャート500が示されている。フローチャート500で表されている方法は502から開始してよく、任意の適切なシステム、装置、又はデバイスによって、例えば、図2の例となる予測システム202によって、実行されてよい。
502で、対応する複数のウェブAPIに関連した複数の文書が、読み出されたドキュメンテーションコーパス106から識別されてよい。ドキュメンテーションコーパス106は、対応するAPIの集合に関連した文書の集合112を含んでよい。1つ以上の実施形態で、プロセッサ204は、対応する複数のウェブAPIに関連した複数の文書を、読み出されたドキュメンテーションコーパス106から識別するよう構成されてよい。
504で、識別された複数の文書の中の各文書においてエンドポイント名の位置が識別されてよい。エンドポイント名は、複数のAPIの中の対応するウェブAPIの対応するエンドポイントのためのものであってよい。1つ以上の実施形態で、プロセッサ204は、識別された複数の文書の中の各文書においてエンドポイント名の位置を識別するよう構成されてよい。例となる文書からのエンドポイント名の位置の例は、例えば、図6で、与えられている。
506で、エンドポイント名の決定された位置に先行する第1の組のセンテンスが、識別された複数の文書の中の各文書から読み出されてよい。1つ以上の実施形態で、プロセッサは、エンドポイント名の決定された位置に先行する第1の組のセンテンスを、識別された複数の文書の中の各文書から読み出すよう構成されてよい。
508で、エンドポイント名の前記決定された位置の後に続く第2の組のセンテンスが、識別された複数の文書の中の各文書から読み出されてよい。1つ以上の実施形態で、プロセッサ204は、エンドポイント名の前記決定された位置の後に続く第2の組のセンテンスを、識別された複数の文書の中の各文書から読み出すよう構成されてよい。
1つ以上の実施形態で、第1の組のセンテンス及び第2の組のセンテンスは、更に、複数の文書の中の対応する文書に対するセンテンストークナイゼーション(tokenization)動作(例えば、自然言語ツールキット(Natural Language Toolkit,NLTK)、Spacy又は他の類似したNLPツールを使用することによる。)の適用に基づき、読み出されてもよい。センテンストークナイゼーション動作において、テキストのストリーム(例えば、センテンス)は、複数のセンテンス・トークン(又は複数のセンテンス)とも呼ばれ得るセンテンス、ワード、フレーズ、シンボル、又は他の有意味な要素に分解されてよい。更に、センテンストークナイゼーション動作の適用後、複数のセンテンスの中の各センテンスは、ストップワード(stopping word)、シンボル、特殊文字、2つの文字の間のスペース、又は短文センテンス、エンドポイント記述として使用され得ないいくつかの明らかに“悪い”センテンス、及び短すぎるフレーズ/ワード(例えば、“1”ワード)のうちの1つ以上の除去に基づいて、フィルタをかけられてよい。また、ステミング(stemming)動作が、フィルタをかけられた複数のセンテンスの中の各センテンスに対して適用されてもよい。ステミング動作において、語根(root)/基体(base)ワードの形態的変異が、フィルタをかけられた複数のセンテンスの中の各センテンス内の対応するワードについて取得されてよい。より具体的には、ステミング動作は、フィルタをかけられた複数のセンテンスの中の各センテンス内のワードを語根ワード又は語根ワードの形態的変異に減らし得る。更には、いくつかの実施形態で、取り出された複数の真のエンドポイント記述の中の対応する真のエンドポイント記述で特定されたセンテンスの数(スパンとも呼ばれる。)が、対応するウェブAPIの対応するエンドポイントについて決定されてもよい。
510で、対応する真のエンドポイント記述で特定されたセンテンスの数がイチ(“1”)であるかどうかが決定されてよい。1つ以上の実施形態で、プロセッサ204は、対応する真のエンドポイント記述で特定されたセンテンスの数がイチ(“1”)であるかどうかを決定するよう構成されてよい。対応する真のエンドポイント記述で特定されたセンテンスの数がイチ(“1”)である場合に、制御は512へ移ってよい。そうでない場合には、制御は518へ移ってよい。
512で、読み出された第1の組のセンテンスの中の各センテンスと対応する真のエンドポイント記述との間、及び読み出された第2の組のセンテンスの中の各センテンスと対応する真のエンドポイント記述との間で、センテンス類似性スコアが計算されてよい。センテンス類似性スコアは、対応する真のエンドポイント記述において特定されたセンテンスの数が1であるとの決定に基づいて計算されてよい。一例として、センテンス類似性は、読み出された第1の組のセンテンスの中の各センテンスのワードベクトル表現(ワード埋め込みによるベクトル空間に関する。)と対応する真のエンドポイント記述との間、及び読み出された第2の組のセンテンスの中の各センテンスのワードベクトル表現と対応する真のエンドポイント記述との間のspacy類似性又はコサイン類似性のような、NLPツールに基づいて計算されてよい。
514で、計算された類似性スコアが最大である第1センテンスが、読み出された第1の組のセンテンス及び読み出された第2の組のセンテンスから決定されてよい。1つ以上の実施形態で、プロセッサ204は、計算された類似性スコアが最大である第1センテンスを、読み出された第1の組のセンテンス及び読み出された第2の組のセンテンスから決定するよう構成されてよい。
516で、複数の偽のエンドポイント記述が、読み出された第1の組のセンテンス及び読み出された第2の組のセンテンスの一方からの決定された第1センテンスの除去に基づいて、読み出された第1の組のセンテンス及び読み出された第2の組のセンテンスから決定されてよい。すなわち、読み出された第1の組のセンテンス(例えば、“M”個のセンテンス)及び読み出された第2の組のセンテンス(例えば、“N”個のセンテンス)の中の第1センテンスを除いた全てのセンテンス(すなわち、“N+M−1”個のセンテンス)は、対応するエンドポイントについての偽のエンドポイント記述と見なされ得る。一方、第1センテンス(すなわち、最も類似度が高いセンテンス)は、真のエンドポイント記述と見なされ得る。1つ以上の実施形態で、プロセッサ204は、読み出された第1の組のセンテンス及び読み出された第2の組のセンテンスから複数の偽のエンドポイント記述を決定するよう構成されてよい。
518で、第1の組のn−gramが、読み出された第1の組のセンテンスから生成されてよく、第2の組のn−gramが、読み出された第2の組のセンテンスから生成されてよい。第1の組のn−gram及び第2の組のn−gramは、対応する真のエンドポイント記述において特定されたセンテンスの数が1よりも大きいとの決定に基づいて、生成されてよい。例えば、第1の組のセンテンス、第2の組のセンテンス、及び真のエンドポイント記述についての例となるテンプレートは、次のように、表5で与えられる:
表5に基づき、真のエンドポイント記述は2つのセンテンス(すなわち、真のセンテンス1及び真のセンテンス2)を含み、従って、第1の組のバイグラム(bi-gram)(n=2)及び第2の組のバイグラムは生成され得ることが分かる。第1の組のバイグラム及び第2の組のバイグラムについての例となるテンプレートは、次のように、表6で与えられる:
520で、生成された第1の組のn−gramの中の各n−gramと対応する真のエンドポイント記述との間で、第1の組のセンテンス類似性スコアが推定されてよい。1つ以上の実施形態で、プロセッサ204は、生成された第1の組のn−gramの中の各n−gramと対応する真のエンドポイント記述との間で第1の組のセンテンス類似性スコアを推定するよう構成されてよい。ある事例では、各n−gramと対応する真のエンドポイント記述との間のセンテンス類似性スコアは、各n−gramのワードベクトル表現と対応する真のエンドポイント記述との間の類似性尺度に対応してよい。類似性尺度は、制限なしに、コサイン類似性、spacy類似性、又は他のNLPに基づく類似性尺度方法であってよい。
一例として、表6中のバイグラム(センテンス31,センテンス21)について、対応するセンテンス類似性スコアは、次のように推定され得る:
センテンス類似性スコア(S1)
=Similarity(センテンス31,TS1) (1)
センテンス類似性スコア(S2)
=Similarity(センテンス31,TS2) (2)
センテンス類似性スコア(S3)
=Similarity(センテンス21,TS1) (3)
センテンス類似性スコア(S4)
=Similarity(センテンス21,TS2) (4)
ここで、類似度(.)は、センテンス類似性関数(例えば、spacy類似性及びコサイン類似性)である。
センテンス類似性スコア(S1)
=Similarity(センテンス31,TS1) (1)
センテンス類似性スコア(S2)
=Similarity(センテンス31,TS2) (2)
センテンス類似性スコア(S3)
=Similarity(センテンス21,TS1) (3)
センテンス類似性スコア(S4)
=Similarity(センテンス21,TS2) (4)
ここで、類似度(.)は、センテンス類似性関数(例えば、spacy類似性及びコサイン類似性)である。
522で、生成された第2の組のn−gramの中の各n−gramと対応する真のエンドポイント記述との間で、第2の組のセンテンス類似性スコアが推定されてよい。1つ以上の実施形態で、プロセッサ204は、生成された第2の組のn−gramの中の各n−gramと対応する真のエンドポイント記述との間で第2の組のセンテンス類似性スコアを推定するよう構成されてよい。
一例として、表6中のバイグラム(センテンス32,センテンス22)について、対応するセンテンス類似性スコアは、次のように推定され得る:
センテンス類似性スコア(S1’)
=Similarity(センテンス32,TS1) (5)
センテンス類似性スコア(S2’)
=Similarity(センテンス32,TS2) (6)
センテンス類似性スコア(S3’)
=Similarity(センテンス22,TS1) (7)
センテンス類似性スコア(S4’)
=Similarity(センテンス22,TS2) (8)
ここで、類似度(.)は、センテンス類似性関数(例えば、spacy類似性及びコサイン類似性)である。
センテンス類似性スコア(S1’)
=Similarity(センテンス32,TS1) (5)
センテンス類似性スコア(S2’)
=Similarity(センテンス32,TS2) (6)
センテンス類似性スコア(S3’)
=Similarity(センテンス22,TS1) (7)
センテンス類似性スコア(S4’)
=Similarity(センテンス22,TS2) (8)
ここで、類似度(.)は、センテンス類似性関数(例えば、spacy類似性及びコサイン類似性)である。
524で、推定された第1の組のセンテンス類似性スコアに基づいて、生成された第1の組のn−gramの中の各n−gramについて、第1平均類似性スコアが計算されてよい。1つ以上の実施形態で、プロセッサ204は、生成された第1の組のn−gramの中の各n−gramについて第1平均類似性スコアを計算するよう構成されてよい。一般に、平均センテンス類似性スコア(Sav)は、例えば、次のような式(9)によって、与えられ得る:
Sav=ΣiSi/N (9)
ここで、
Siは、n−gramのi番目のセンテンスと、対応する真のエンドポイント記述内のセンテンスとの間のセンテンス類似度に対応してよく、
Nは、n−gramについてのセンテンス類似度計算の総数に対応してよく、
iは、n−gram内のあるセンテンスについてのインデックス(又は識別子)に対応してよい。
一例として、式(1)、(2)、(3)及び(4)から、S1、S2、S3及びS4は、次のような式(10)によって与えられる第1平均センテンス類似性スコア(Sav1)を計算するために使用されてよい:
Sav1=(S1+S2+S3+S4)/4 (10)
Sav=ΣiSi/N (9)
ここで、
Siは、n−gramのi番目のセンテンスと、対応する真のエンドポイント記述内のセンテンスとの間のセンテンス類似度に対応してよく、
Nは、n−gramについてのセンテンス類似度計算の総数に対応してよく、
iは、n−gram内のあるセンテンスについてのインデックス(又は識別子)に対応してよい。
一例として、式(1)、(2)、(3)及び(4)から、S1、S2、S3及びS4は、次のような式(10)によって与えられる第1平均センテンス類似性スコア(Sav1)を計算するために使用されてよい:
Sav1=(S1+S2+S3+S4)/4 (10)
526で、推定された第2の組のセンテンス類似性スコアに基づいて、生成された第2の組のn−gramの中の各n−gramについて、第2平均類似性スコアが計算されてよい。1つ以上の実施形態で、プロセッサ204は、生成された第2の組のn−gramの中の各n−gramについて第2平均類似性スコアを計算するよう構成されてよい。一例として、式(5)、(6)、(7)及び(8)から、S5、S6、S7及びS8は、次のような式(11)によって与えられる第2平均センテンス類似性スコア(Sav2)を計算するために使用されてよい:
Sav2=(S5+S6+S7+S8)/4 (11)
Sav2=(S5+S6+S7+S8)/4 (11)
528で、計算された平均類似性スコアが最大である第1n−gramが、生成された第1の組のn−gram及び生成された第2の組のn−gramから決定されてよい。1つ以上の実施形態で、プロセッサ204は、計算された平均類似性スコアが最大である第1n−gramを、生成された第1の組のn−gram及び生成された第2の組のn−gramから決定するよう構成されてよい。
530で、生成された第1の組のn−gram及び生成された第2の組のn−gramの一方からの決定された第1n−gramの除去に基づいて、n−gramの組が、生成された第1の組のn−gram及び生成された第2の組のn−gramから選択されてよい。1つ以上の実施形態で、プロセッサ204は、生成された第1の組のn−gram及び生成された第2の組のn−gramからn−gramの組を選択するよう構成されてよい。第1n−gramは、類似度が最も高いn−gramに対応してよく、特定のウェブAPIのエンドポイントに関連した真記述と見なされてよい。一方、残りのn−gram(すなわち、選択されたn−gramの組)は、エンドポイントに関連した偽記述と見なされてよい。
532で、複数の偽のエンドポイント記述が、選択されたn−gramの組に基づいて計算されてよい。1つ以上の実施形態で、プロセッサ204は、選択されたn−gramの組に基づいて複数の偽のエンドポイント記述を決定するよう構成されてよい。具体的に、選択されたn−gramの組の中の各n−gram内の各センテンスは、対応するエンドポイントに関連した偽のエンドポイント記述と見なされ得る。更には、制御は終了に移ってよい。フローチャート500は、502、504、506、508、510、512、514、516、518、520、524、526、528、530、及び532のような別個の動作として表されているが、特定の実施形態では、かような別個の動作は更に、開示される実施形態の本質から外れることなしに、特定の実施に応じて、更なる動作に分けられても、より少ない動作へとまとめられても、あるいは削除されてもよい。
図6は、本願で記載される少なくとも1つの実施形態に従って、ドキュメンテーションコーパス内の文書の例を表す。図6は、図1、図2、図3、図4A、図4B、図5A、図5B及び図5Cからの要素との関連で説明される。図6を参照して、ドキュメンテーションコーパス106に存在し得る、例となる文書600が示されている。
例となる文書600は、「DropB API」に属するウェブAPIであってよく、「Description」(記述)、「URL Structure」(URL構造)、「Method」(メソッド)、及び「Parameters」(パラメータ)のような異なったカテゴリ内の「DropB API」に関連した情報を含んでよい。プロセッサ204は、例となる文書600内のエンドポイント名602(すなわち、「/oauth2/token」)の位置を識別するよう構成されてよい。エンドポイント名602は、特定のウェブAPI(「DropB API」)の特定のエンドポイント(すなわち、「token」)のためのものであってよい。その後に、プロセッサ204は、エンドポイント名602の決定された位置に先行する第1の組のセンテンス604を例となる文書600から読み出し、エンドポイント名602の決定された位置の後に続く第2の組のセンテンスを例となる文書600から読み出すよう構成されてよい。
第1の組のセンテンス604は、次のように与えられる3つのセンテンスを含む:{“error String An error code per Section 4.1.2.1 of Oauth 2.0 Spec.”,“error_description String A user-friendly description of the error that occurred.”,“state String The state content, if any, originally passed to /oauth2/authorize.”}。
同様に、第2の組のセンテンス606は、次のように与えられる4つのセンテンスを含む:{“This endpoint only applies to apps using the authorization code flow.”,“An app calls this endpoint to acquire a bearer token once the user has authorized the app.”,“Calls to /oauth2/token need to be authenticated using the apps’s key and secret.”,“These can either be passed as application/x-www-form-url-encoded POST parameters (see parameters below) or via HTTP basic authentication.”}。第1の組のセンテンス604及び第2の組のセンテンス606からの偽のエンドポイント記述の決定の詳細は、例えば、図5A、図5B及び図5Cで記載されているのと同じであってよい。
図7は、本開示で記載される少なくとも1つの実施形態に従って、例となるMLモデルのブロック図を表す。図7は、図1、図2、図3、図4A、図4B、図5A、図5B、図5C及び図6からの要素との関連で説明される。図7を参照して、例となるMLモデル702のブロック図700が示されている。例となるMLモデル702は、MLモデル102Aに対応してよい。また、例となるMLモデル702は、例となる訓練データセット704の複数の特徴に対応する特徴情報を入力として例となるMLモデル702へ供給することによって、取得(すなわち、訓練)されてよい。例となる訓練データセット704内の複数の特徴は、制限なしに、エンドポイントベクトル特徴、記述ベクトル特徴、HTTPメソッド特徴、コサイン類似性特徴、spacy類似性特徴、セッションセグメント特徴、記述タグ特徴、トークン数特徴、及びエンドポイント名数特徴を含んでよい。
1つ以上の実施形態で、例となるMLモデル702は、例えば、ソフトウェアプログラム、ソフトウェアプログラムのコード、ライブラリ、アプリケーション、スクリプト、又はプロセッサ204のようなプロセッシングデバイスによる実行のための他のロジック若しくは命令のような電子データを含んでよい。例となるMLモデル702は、プロセッサ204のようなコンピューティングデバイスが、特定のウェブAPIのエンドポイントに関連した真記述又は偽記述の1つへの1つ以上の入力(APIドキュメンテーション内のセンテンスからの特徴)の分類のための1つ以上の動作を実行することを可能にするよう構成されたコード及びルーチンを含んでよい。追加的に、又は代替的に、例となるMLモデル702は、プロセッサ、マイクロプロセッサ(例えば、1つ以上の動作を実行する又はその実行を制御する)、フィールドプログラマブルゲートアレイ(FPGA)、又は特定用途向け集積回路(ASIC)を含むハードウェアを用いて実装されてよい。いくつかの他の事例では、例となるMLモデル702は、ハードウェアとソフトウェアとの組み合わせを用いて実装されてもよい。
例となるMLモデル702は、多段階ニューラルネットワークに基づくモデルであってよく、第1段階706及び第2段階708を含んでよい。第1段階706は、ANN714と並列に配置されたDNN710、712の対を含んでよい。DNN710、712の対は、第1DNN710及び第2DNN712を含んでよい。更には、第2段階708は、DNN710712の対からの第1出力の対と、ANN714からの第2出力とをマージするマージ層716を含んでよい。一例として、マージ層716は、全て同じ形状のテンソルのリストを入力としてとり、(やはり同じ形状の)単一のテンソルを返してよい。ある実施形態では、DNN710、712の対の各DNNは、CNN又はLSTMに基づくDNNの1つであってよい。
実施形態に従って、例となるMLモデル702は、「CNN+ANNハイブリッドネットワーク」であってよく、ここで、第1DNN710は第1CNNであってよく、第2DNN712は第2CNNであってよい。第1CNN及び第2CNNの夫々は、直列構成で結合された層の第1シーケンスを含んでよい。層の第1シーケンスは、制限なしに、埋め込み層、1次元(1D)畳み込み層、第1ドロップアウト(dropout)層、1D最大プーリング(max pooling)層、平坦化(flattening)層、第1デンス(dense)層、第1バッチ正規化(batch normalization)層、第2ドロップアウト層、第2デンス層、第2バッチ正規化層、第3ドロップアウト層、第3デンス層、第3バッチ正規化層、第4ドロップアウト層、及び第4デンス層を含んでよい。層の第1シーケンス内の前の層の出力は、層の第1シーケンス内の次の層への入力として供給されてよい。同様に、ANN714は、直列構成で結合された層の第2シーケンスを含んでよい。層の第2シーケンスは、制限なしに、第1デンス層、第1バッチ正規化層、第1ドロップアウト層、第2デンス層、第2バッチ正規化層、第2ドロップアウト層、第3デンス層、第3バッチ正規化層、第3ドロップアウト層、第4デンス層、第4バッチ正規化層、第4ドロップアウト層、及び第5デンス層を含んでよい。層の第2シーケンス内の前の層の出力も、層の第2シーケンス内の次の層への入力として供給されてよい。
マージ層716は、制限なしに、第1デンス層、第1バッチ正規化層、第1ドロップアウト層、第2デンス層、第2バッチ正規化層、第2ドロップアウト層、第3デンス層、第3バッチ正規化層、第3ドロップアウト層、第4デンス層、第4バッチ正規化層、第4ドロップアウト層、及び第5デンス層を含む層の第3シーケンスの組み合わせであってよい。層の第3シーケンス内の前の層の出力は、層の第3シーケンス内の次の層への入力として供給されてよい。
層の第1シーケンス、層の第2シーケンス、及び層の第3シーケンスにおける各層は、前の層からの入力に対して実行される計算動作又は計算動作の組に対応してよい。また、層の第1シーケンス、層の第2シーケンス、及び層の第3シーケンスにおける各層は、制限なしに、バッチサイズ、入力長さ、語彙サイズ、デンス埋め込みの次元、正則化(regularization)関数、制約関数、又はそれらの組み合わせのような1つ以上のパラメータに関連してよい。
実施形態に従って、例となるMLモデル702は、「LSTM+ANNハイブリッドネットワーク」であってよい。ここで、第1DNN710及び第2DNN712の夫々は、LSTMに基づくDNNであってよい。「LSTM+ANNハイブリッドネットワーク」の第1DNN710及び第2DNN712の夫々は、埋め込み層、LSTMネットワーク、ドロップアウト層、及びデンス層の順次的な配置を含んでよい。デンス層の出力は、マージ層716の入力へ直接結合されてよい。更には、ANN714の出力は、マージ層716へ直接結合されてよい。ANN714は、制限なしに、第1デンス層、第1バッチ正規化層、第1ドロップアウト層、第2デンス層、第2バッチ正規化層、第2ドロップアウト層、第3デンス層、第3バッチ正規化層、第3ドロップアウト層、第4デンス層、第4バッチ正規化層、第4ドロップアウト層、及び第5デンス層を含む層のシーケンスを含んでよい。同様に、マージ層716は、制限なしに、第1デンス層、第1バッチ正規化層、第1ドロップアウト層、第2デンス層、第2バッチ正規化層、第2ドロップアウト層、第3デンス層、第3バッチ正規化層、第3ドロップアウト層、第4デンス層、第4バッチ正規化層、第4ドロップアウト層、及び第5デンス層を含む層のシーケンスの組み合わせであってよい。ここで、マージ層716の第5層からの出力は、例となるMLモデル702の最終の出力であってよい。
本明細書では、例となるMLモデル702(すなわち、訓練されたMLモデル)を取得する方法の例が与えられる。例となる方法は、任意の適切なシステム、装置、又はデバイスによって、例えば、図2の例となる予測システム202のプロセッサ204によって、実行されてよい。例となる方法では、例となる訓練データセット704のエンドポイントベクトル特徴に対応するエンドポイントベクトルの組が、DNN710、712の対のうちの第1DNN710へ供給されてよい。更には、例となる訓練データセット704の記述ベクトル特徴に対応する記述ベクトルの組が、DNN710、712の対のうちの第2DNN712へ供給されてよい。生成された訓練データセットの残りの特徴の組に対応する特徴情報の部分は、ANN714への入力として供給されてよい。特徴情報のその部分は、例えば、HTTPメソッド、コサイン類似性スコア、spacy類似性スコア、セッションセグメント値、記述タグ値、トークンの数、エンドポイント名の数を含んでよい。
DNN710、712の対からの第1出力の対、及びANN714からの第2出力は、マージ層716へ供給されてよく、そして、訓練動作が、例となるMLモデル702(すなわち、訓練されたMLモデル)を取得するために、DNN710、712の対及びANN714に対して実行されてよい。訓練動作は、供給されたエンドポイントベクトルの組、供給された記述ベクトルの組、残りの特徴の組に対応する供給された特徴情報の部分、供給された第1出力の対、及び第2出力に基づいて、実行されてよい。訓練動作の実行中、「IsDescription」特徴(例えば、表3を参照)は、例となるMLモデル702についてのコスト関数の大域的最小化が特定の数のエポックで達成されるまで、例となるMLモデル702の重みをアップデートするためにグラウンドトゥルース(ground truth)値として使用されてよい。更には、訓練動作の実行中、例となるMLモデル702のための1つ以上のハイパーパラメータ、例えば、ネットワーク構造/サイズ、学習速度、などは、コスト関数の大域的最小化が達成されるまで、特定の数のエポックについて再帰的にアップデートされてよい。
実施形態に従って、訓練されると、例となるMLモデル702は、エンドポイントに関連した真記述又は偽記述の1つとしての入力の組の分類のために、例となる予測システム202で(例えば、例となる予測システム202のバックエンドサブシステムで)展開されてよい。一例として、展開されると、例となる予測システム202のフロントエンドインターフェイス(例えば、フロントエンドサーバ)は、例えば、ドキュメンテーションコーパス106内の他の文書(例えば、ラベルなし/未処理/テスト文書)から読み出され得るエンドポイント名及びセンテンスの組を受け取るよう構成されてよい。更には、特徴情報が、受け取られたエンドポイント名及び受け取られたセンテンスの組に基づいて、受け取られたセンテンスの組について取り出されてよい。特徴情報は、制限なしに、エンドポイントベクトル、記述ベクトル、HTTPメソッド、コサイン類似性、spacy類似性、セッションセグメント値、記述タグ値、受け取られた1つ以上のセンテンス内のトークンの数、又は受け取られた1つ以上のセンテンス内のエンドポイント名の数を含んでよい。更には、取り出された特徴情報は、展開された例となるMLモデル702への入力の組として供給されてよい。例となるMLモデル702は予測結果718(例えば、“0”又は“1”)を出力してよく、予測結果718は、受け取られたエンドポイント名に関連した真記述又は偽記述の1つとして1つ以上のセンテンスを分類してよい。
図8は、本開示で記載される少なくとも1つの実施形態に従って、アンサンブルアプローチを表すブロック図である。図8は、図1、図2、図3、図4A、図4B、図5A、図5B、図5C、図6及び図7からの要素との関連で説明される。図8を参照して、例となる訓練データセット802、複数のモデル(C1,C2,・・・,Cn)を含むMLモデル804、結合投票段階806、及び最終分類器段808を含むブロック図800が示されている。例となる訓練データセット802は、例となる訓練データセット704と同じであってよく、複数のMLモデルのための訓練データを含んでよい。MLでは、訓練データは、バランスがとれている必要がある。これは、訓練データセットが良い例及び悪い例を同程度含むべきであることを意味する。しかし、エンドポイント記述センテンスは、ごくわずかの割合のセンテンスしか正確なエンドポイント記述でない一方で、より多くの割合のセンテンスが誤った記述センテンスであるということで、アンバランスである。従って、正確なエンドポイント記述センテンスの収集と比べて、より多くの誤ったエンドポイント記述センテンスが集められる可能性がある。この理由により、特定のウェブAPIのエンドポイントに関連した真記述又は偽記述の1つとして所与の入力を分類するために、本開示では、アンサンブルアプローチが使用されてよい。
複数のモデル(C1,C2,・・・,Cn)の中の各モデルCi(i=1,2,・・・,n)は、1つの訓練されたモデル、例えば、図7の「CNN+ANN」ハイブリッドネットワーク又は「LSTM+ANN」ハイブリッドネットワークであってよい。各Ciは、例となる訓練データセット802からの正確なエンドポイント記述センテンス及び異なった不正確なエンドポイント記述センテンスにより訓練されてよい。これは、正確な記述センテンスよりも多くの不正確な記述センテンスが集められるので、達成可能である場合がある。従って、各Ciを訓練するために、正確なエンドポイント記述センテンス及び不正確なエンドポイント記述センテンスの数は同様であってもよい。この場合に、各モデルCiは、それが学習した特徴に基づいて異なった決定を下し得る。結合投票段階806では、各モデルCi(i=1,2,・・・,n)は、独立して予測を行い、所与の入力センテンスが正確なエンドポイント記述であるかどうかを決定するよう投票してよい。最終分類器段808では、所与の入力センテンスは、複数のモデル(C1,C2,・・・,Cn)の投票に基づいて、不正確なエンドポイント記述又は正確なエンドポイント記述と最終的に予測される。
例えば、7つのCiモデルが展開されてよく、夫々は異なった不正確なセンテンスにより訓練され、従って、異なった不正確なセンテンス特徴を学習している。所与の入力センテンスについて、4つのモデルは、所与の入力センテンスを不正確であると予測してよく、3つのモデルは、所与の入力センテンスを正確であると予測してよい。最終分類器段808では、所与の入力センテンスは、7つのCiモデルの投票に基づいて、不正確なエンドポイント記述として最終的に予測される。
1つ以上の実施形態で、例となる訓練データセット802は、所与の入力センテンスについての特徴情報を含んでよく、複数のモデル(C1,C2,・・・,Cn)への入力の組として供給されてよい。プロセッサ204は、供給された入力の組を、MLモデル804の複数の投票に依存するアンサンブルアプローチに基づいて、エンドポイントに関連した真記述又は偽記述の1つとして分類するよう構成されてよい。MLモデル804は、訓練データセットの異なるデータ点に対して訓練された複数のモデル(C1,C2,・・・,Cn)を含んでよい。
本開示の様々な実施形態は、実行されることに応答して予測システム(例えば、図2の例となる予測システム202)に動作を実行させる命令を記憶するよう構成された1つ以上の非一時的なコンピュータ可読記憶媒体を提供してもよい。動作は、複数のウェブAPIに関連した複数の真のエンドポイント記述をラベル付きリポジトリ(例えば、ラベル付きリポジトリ104)から取り出すことと、複数のウェブAPIに関連したドキュメンテーションコーパス(例えば、ドキュメンテーションコーパス106)を読み出すこととを含んでよい。動作は、読み出されたドキュメンテーションコーパス及び取り出された複数の真のエンドポイント記述に基づいて、複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することと、取り出された複数の真のエンドポイント記述、読み出されたドキュメンテーションコーパス、及び決定された複数の偽のエンドポイント記述に基づいて、複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すこととを更に含んでよい。動作は、取り出された特徴情報に基づいて訓練データセットを生成することと、生成された訓練データセットに基づいてMLモデル(例えば、MLモデル102A)を取得することとを更に含んでよい。動作は、入力の組をMLモデルへ供給することと、供給された入力の組を、供給された入力の組についてのMLモデルの予測結果に基づいて、エンドポイントに関連した真記述又は偽記述の1つとして分類することとを更に含んでよい。入力の組は、複数のウェブAPIの中の特定のウェブAPIについてのエンドポイントに関連してよい。
上述されたように、本開示で記載される実施形態は、以下でより詳細に論じられるように、様々なコンピュータハードウェア又はソフトウェアモジュールを含む特別目的又は汎用のコンピュータ(例えば、図2のプロセッサ204)の使用を含んでよい。更には、上述されたように、本開示で記載される実施形態は、コンピュータ実行可能な命令またはデータ構造を運ぶか又は記憶しているコンピュータ可読媒体(例えば、図2のメモリ206又は永続性データストレージ208)を用いて実装されてもよい。
本開示で使用されるように、「モジュール」又は「コンポーネント」との語は、モジュール若しくはコンポーネントの動作を実行するよう構成された特定のハードウェア実施、及び/又はコンピューティングシステムの汎用のハードウェア(例えば、コンピュータ可読媒体、プロセッシングデバイス、など)によって記憶及び/又は実行され得るソフトウェアオブジェクト若しくはソフトウェアルーチンを指し得る。いくつかの実施形態で、本開示で記載される種々のコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステムで(例えば、別個のスレッドとして)実行されるオブジェクト又はプロセスとして実施されてもよい。本開示で記載されるシステム及び方法の一部は、(汎用のハードウェアによって記憶及び/又は実行される)ソフトウェアにおいて実施されるものとして概して記載されているが、特定のハードウェア実施又はソフトウェアと特定のハードウェア実施との組み合わせも可能であり企図される。本明細書中、「コンピューティングエンティティ」は、本開示で先に定義されている任意のコンピューティングシステム、又はコンピューティングシステムで実行される任意のモジュール若しくはモジュールの組み合わせであってよい。
慣行に従って、図面に表されている様々な特徴は、実寸通りでないことがある。本開示で与えられている例示は、任意の特定の装置(例えば、デバイス、システム、など)又は方法の実際の図であるよう意図されず、本開示の様々な実施形態を記載するために用いられる理想的な表現にすぎない。従って、様々な特徴の寸法は、明りょうさのために任意に拡大又は縮小されてよい。その上、図面の一部は、明りょうのために簡略化されることがある。よって、図面は、所与の装置(例えば、デバイス)の全ての構成要素または特定の方法の全ての動作を表さないことがある。
本開示で、特に添付の特許請求の範囲(例えば、添付の特許請求の本文)で使用される語は、一般的に、“非限定的な(open)”用語として意図されている(例えば、語「含んでいる(including)」は、“〜を含んでいるが、〜に制限されない”との意に解釈されるべきであり、語「備えている(having)」は、「少なくとも〜を備えている」との意に解釈されるべきであり、語「含む(includes)」は、“〜を含むが、〜に制限されない”との意に解釈されるべきである、等。)。
更に、導入されたクレーム記載(introduced claim recitation)において特定の数が意図される場合、そのような意図は当該クレーム中に明確に記載され、そのような記載がない場合は、そのような意図も存在しない。例えば、理解を促すために、後続の添付された特許請求の範囲では、「少なくとも1つの(at least one)」及び「1以上の(one or more)」といった導入句を使用し、クレーム記載を導入することがある。
更には、導入されたクレーム記載において特定の数が明示されている場合であっても、そのような記載は、通常、少なくとも記載された数を意味するように解釈されるべきであることは、当業者には理解されるであろう(例えば、他に修飾語のない、単なる「2つの記載事項」という記載がある場合、この記載は、少なくとも2つの記載事項、又は2つ以上の記載事項を意味する。)。更に、「A、B及びC等のうち少なくとも1つ」又は「A、B及びC等のうちの1つ以上」に類する表記が使用される場合、一般的に、そのような構造は、Aのみ、Bのみ、Cのみ、AとBの両方、AとCの両方、BとCの両方、及び/又はAとBとCの全て、等を含むよう意図される。
更に、2つ以上の選択可能な用語を表す如何なる離接語及び/又は離接句も、明細書、特許請求の範囲、又は図面のいずれであろうと、それら用語のうちの1つ、それらの用語のうちのいずれか、あるいは、それらの用語の両方を含む可能性を意図すると理解されるべきである。例えば、「A又はB」という句は、「A又はB」、あるいは、「A及びB」の可能性を含むことが理解されるべきである。
しかし、このような句を使用するからといって、「a」又は「an」といった不定冠詞によりクレーム記載を導入した場合に、たとえ同一のクレーム内に、「1つ以上の」又は「少なくとも1つの」といった導入句と「a」又は「an」といった不定冠詞との両方が含まれるとしても、当該導入されたクレーム記載を含む特定のクレームが、当該記載事項を1しか含まない例に限定されるということが示唆されると解釈されるべきではない(例えば、「a」及び/又は「an」は、「少なくとも1つの」又は「1つ以上の」を意味すると解釈されるべきである。)。定冠詞を使用してクレーム記載を導入する場合にも同様のことが当てはまる。
加えて、語「第1(first)」、「第2(second)」、「第3(third)」などの使用は、要素の特定の順序又は数を示すために本願で必ずしも使用されているわけではない。一般に、語「第1」、「第2」、「第3」などは、異なる要素どうしを総称的な識別子として区別するために使用される。語「第1」、「第2」、「第3」などが特定の順序を示すとの明示がない限りは、それらの語が特定の順序を示すと理解されるべきではない。語「第1」、「第2」、「第3」などが特定の数の要素を示すとの明示がない限りは、それらの語が特定の数の要素を示すと理解されるべきではない。例えば、第1ウィジェットは、第1サイドを有していると記載されることがあり、第2ウィジェットは、第2サイドを有していると記載されることがある。第2ウィジェットに対する語「第2サイド」の使用は、第2ウィジェットのそのようなサイドを第1ウィジェットの「第1サイド」と区別するためであり、第2ウィジェットが2つのサイドを有していることを暗示するものではない。
ここで挙げられている全ての例及び条件付き言語は、当該技術の促進に本発明者によって寄与される概念及び本発明を読者が理解するのを助ける教育上の目的を意図され、そのような具体的に挙げられている例及び条件に制限されないと解釈されるべきである。本開示の実施形態が詳細に記載されてきたが、様々な変更、置換、及び代替が、本開示の主旨及び適用範囲から逸脱することなしに行われてよい。
上記の実施形態に加えて、以下の付記を開示する。
(付記1)
複数のウェブアプリケーションプログラミングインターフェイス(API)に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習(ML)モデルを取得することと、
前記複数のウェブAPIの中の特定のウェブAPIのエンドポイントに関連する入力の組を前記MLモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記MLモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の1つとして分類することと
を有する方法。
(付記2)
前記ラベル付きリポジトリは、前記複数のウェブAPIに関連した複数の構造化された仕様文書を有し、
各API仕様文書は、前記複数のウェブAPIの中の対応するウェブAPIに関連した複数のフィールドにマッピングされた情報を有し、
前記複数のフィールドは、APIタイトルフィールド、エンドポイント名フィールド、及びエンドポイント記述フィールドを有する、
付記1に記載の方法。
(付記3)
前記複数の偽のエンドポイント記述を決定することは、
対応する複数のウェブAPIに関連した複数の文書を前記読み出されたドキュメンテーションコーパスから識別することであり、前記ドキュメンテーションコーパスは、対応するAPIの集合に関連した文書の集合を有する、前記識別することと、
前記識別された複数の文書の中の各文書において、前記複数のAPIの中の対応するウェブAPIの対応するエンドポイントについてのエンドポイント名の位置を決定することと、
前記エンドポイント名の前記決定された位置に先行する第1の組のセンテンスを、前記識別された複数の文書の中の各文書から読み出すことと、
前記エンドポイント名の前記決定された位置の後に続く第2の組のセンテンスを、前記識別された複数の文書の中の各文書から読み出すことと、
前記対応するウェブAPIの前記対応するエンドポイントについて、前記取り出された複数の真のエンドポイント記述の中の対応する真のエンドポイント記述において特定されたセンテンスの数を決定することと
を更に有する、
付記1に記載の方法。
(付記4)
前記読み出された第1の組のセンテンスの中の各センテンスと前記対応する真のエンドポイント記述との間及び前記読み出された第2の組のセンテンスの中の各センテンスと前記対応する真のエンドポイント記述との間でセンテンス類似性スコアを計算することであり、センテンス類似性スコアは、前記対応する真のエンドポイント記述において特定された前記センテンスの数が1であるとの決定に基づいて計算される、前記計算することと、
前記計算された類似性スコアが最大である第1センテンスを、前記読み出された第1の組のセンテンス及び前記読み出された第2の組のセンテンスから決定することと、
前記読み出された第1の組のセンテンス及び前記読み出された第2の組のセンテンスの一方からの前記決定された第1センテンスの除去に基づいて、前記複数の偽のエンドポイント記述を、前記読み出された第1の組のセンテンス及び前記読み出された第2の組のセンテンスから決定することと
を更に有する、付記3に記載の方法。
(付記5)
前記対応する真のエンドポイント記述において特定された前記センテンスの数が1よりも大きいとの決定に基づいて、前記読み出された第1の組のセンテンスから第1の組のn−gramを、及び前記読み出された第2の組のセンテンスから第2の組のn−gramを生成することと、
前記生成された第1の組のn−gramの中の各n−gramと前記対応する真のエンドポイント記述との間で第1の組のセンテンス類似性スコアを推定することと、
前記生成された第2の組のn−gramの中の各n−gramと前記対応する真のエンドポイント記述との間で第2の組のセンテンス類似性スコアを推定することと、
前記推定された第1の組のセンテンス類似性スコアに基づいて、前記生成された第1の組のn−gramの中の各n−gramについて第1平均類似性スコアを計算することと、
前記推定された第2の組のセンテンス類似性スコアに基づいて、前記生成された第2の組のn−gramの中の各n−gramについて第2平均類似性スコアを計算することと、
前記計算された平均類似性スコアが最大である第1n−gramを、前記生成された第1の組のn−gram及び前記生成された第2の組のn−gramから決定することと、
前記生成された第1の組のn−gram及び前記生成された第2の組のn−gramの一方からの前記決定された第1n−gramの除去に基づいて、n−gramの組を、前記生成された第1の組のn−gram及び前記生成された第2の組のn−gramから選択することと、
前記選択されたn−gramの組に基づいて前記複数の偽のエンドポイント記述を決定することと
を更に有する、付記3に記載の方法。
(付記6)
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した初期データセットを構成すること
を更に有する、付記1に記載の方法。
(付記7)
前記初期データセットは、複数のカテゴリ変数及びバイナリ変数を有するデータベーステーブルに対応し、
前記複数のカテゴリ変数は、API名、エンドポイント名、及びエンドポイント記述を有し、
前記バイナリ変数は、前記エンドポイント記述が前記エンドポイント名の真記述であるかどうかを示す、
付記6に記載の方法。
(付記8)
前記構成された初期データセットに基づいて、前記複数のウェブAPIに関連した前記複数の特徴に対応する前記特徴情報を取り出すこと
を更に有する、付記6に記載の方法。
(付記9)
前記複数の特徴は、エンドポイントベクトル特徴、記述ベクトル特徴、ハイパーテキスト転送プロトコル(HTTP)メソッド特徴、コサイン類似性特徴、spacy類似性特徴、セッションセグメント特徴、記述タグ特徴、トークン数特徴、又はエンドポイント名数特徴を有する、
付記8に記載の方法。
(付記10)
前記構成された初期データセット内の各エンドポイント名のエンドポイントベクトルを計算することと、
前記構成された初期データセット内の各エンドポイント記述の記述ベクトルを計算することと、
前記構成された初期データセット内の各エンドポイント名と、前記構成された初期データセット内の対応するエンドポイント記述についての前記計算された記述ベクトルとの間で、コサイン類似性スコアを計算することと、
前記構成された初期データセット内の各エンドポイント名と前記対応するエンドポイント記述との間でspacy類似性スコアを計算することと、
前記計算されたエンドポイントベクトル、前記計算された記述ベクトル、前記計算されたコサイン類似性スコア、及び前記計算されたspacy類似性スコアに基づいて前記訓練データセットを生成することと
を更に有する、付記8に記載の方法。
(付記11)
前記読み出されたドキュメンテーションコーパス内の対応するエンドポイント名についてHTTPメソッドの存在を決定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記HTTPメソッドが存在するとの決定に基づいて、前記対応するエンドポイント名の前記HTTPメソッドを識別することであり、該HTTPメソッドは、GET、POST、PUT、PATCH、DELETE、OPTIONS、又はHEADの中の1つであり、前記HTTPメソッドを識別することは、前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記HTTPメソッドが不存在であるとの決定に基づいて、前記対応するエンドポイント名について前記HTTPメソッドをNONEと設定することを更に有する、前記HTTPメソッドを識別することと、
前記識別されたHTTPメソッドに基づいて前記訓練データセットを生成することと
を更に有する、付記8に記載の方法。
(付記12)
対応するエンドポイント名と同じセッションにおいて、該対応するエンドポイント名についての対応するエンドポイント記述の1つ以上のセンテンスの存在を、前記読み出されたドキュメンテーションコーパスから決定することと、
前記対応するエンドポイント名と同じセッションにおいて前記1つ以上のセンテンスが存在するとの決定に基づいて、セッションセグメント値を1と設定することと、
前記対応するエンドポイント名と同じセッションにおいて前記1つ以上のセンテンスが不存在であるとの決定に基づいて、前記セッションセグメント値を0と設定することと、
前記設定されたセッションセグメント値に基づいて前記訓練データセットを生成することと
を更に有する、付記8に記載の方法。
(付記13)
前記読み出されたドキュメンテーションコーパス内の対応するエンドポイント名についてエンドポイント記述タグの存在を決定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記エンドポイント記述タグが不存在であるとの決定に基づいて、前記対応するエンドポイント名について記述タグ値をゼロと設定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記エンドポイント記述タグが存在するとの決定に基づいて、前記エンドポイント記述タグのワードベクトル表現を生成することと、
前記生成されたワードベクトル表現を前記記述タグ値として設定することと、
前記記述タグ値に基づいて前記訓練データセットを生成することと
を更に有する、付記8に記載の方法。
(付記14)
前記構成された初期データセット内の対応するエンドポイント名について対応するエンドポイント記述からワードの数及び特殊文字の数を含むトークンの数を推定することと、
前記対応するエンドポイント記述内の前記対応するエンドポイント名の出現数を決定することと、
前記推定されたトークンの数及び前記対応するエンドポイント名の前記決定された出現数に基づいて前記訓練データセットを生成することと
を更に有する、付記8に記載の方法。
(付記15)
前記MLモデルは、第1段階及び第2段階を有する、多段階ニューラルネットワークに基づくモデルであり、
前記第1段階は、人工ニューラルネットワーク(ANN)と並列に配置されたディープニューラルネットワーク(DNN)の対を有し、
前記第2段階は、前記DNNの対からの第1出力の対と前記ANNからの第2出力とをマージするマージ層を有する、
付記1に記載の方法。
(付記16)
前記MLモデルを取得することは、
前記生成された訓練データセットのエンドポイントベクトル特徴に対応するエンドポイントベクトルの組を前記DNNの対の中の第1DNNへ供給することと、
前記生成された訓練データセットの記述ベクトル特徴に対応する記述ベクトルの組を前記DNNの対の中の第2DNNへ供給することと、
前記生成された訓練データセットの残りの特徴の組に対応する前記特徴情報の部分を前記ANNへ供給することと、
前記第1出力の対及び前記第2出力を前記マージ層へ供給することと、
前記供給されたエンドポイントベクトルの組と、前記供給された記述ベクトルの組と、前記供給された残りの特徴の組と、前記供給された第1出力の組及び第2出力とに基づいて前記MLモデルを取得するように、前記DNNの対及び前記ANNに対して訓練動作を実行することと
を有する、
付記15に記載の方法。
(付記17)
前記DNNの対の中の各DNNは、畳み込みニューラルネットワーク(CNN)又は長短期記憶(LSTM)に基づくDNNの一方である、
付記15に記載の方法。
(付記18)
前記訓練データセットの異なるデータ点に対して訓練された複数のモデルを有する前記MLモデルの複数の投票に依存するアンサンブルアプローチに基づいて、前記供給された入力の組を、前記エンドポイントに関連した前記真記述又は前記偽記述の1つとして分類すること
を更に有する、付記1に記載の方法。
(付記19)
実行されることに応答して、予測システムに、
複数のウェブアプリケーションプログラミングインターフェイス(API)に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習(ML)モデルを取得することと、
前記複数のウェブAPIの中の特定のウェブAPIのエンドポイントに関連する入力の組を前記MLモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記MLモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の1つとして分類することと
を有する動作を実行させる命令を記憶するよう構成された1つ以上の非一時的なコンピュータ可読記憶媒体。
(付記20)
複数のウェブアプリケーションプログラミングインターフェイス(API)に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習(ML)モデルを取得することと、
前記複数のウェブAPIの中の特定のウェブAPIのエンドポイントに関連する入力の組を前記MLモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記MLモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の1つとして分類することと
を実行するよう構成されるプロセッサを有する予測システム。
(付記1)
複数のウェブアプリケーションプログラミングインターフェイス(API)に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習(ML)モデルを取得することと、
前記複数のウェブAPIの中の特定のウェブAPIのエンドポイントに関連する入力の組を前記MLモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記MLモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の1つとして分類することと
を有する方法。
(付記2)
前記ラベル付きリポジトリは、前記複数のウェブAPIに関連した複数の構造化された仕様文書を有し、
各API仕様文書は、前記複数のウェブAPIの中の対応するウェブAPIに関連した複数のフィールドにマッピングされた情報を有し、
前記複数のフィールドは、APIタイトルフィールド、エンドポイント名フィールド、及びエンドポイント記述フィールドを有する、
付記1に記載の方法。
(付記3)
前記複数の偽のエンドポイント記述を決定することは、
対応する複数のウェブAPIに関連した複数の文書を前記読み出されたドキュメンテーションコーパスから識別することであり、前記ドキュメンテーションコーパスは、対応するAPIの集合に関連した文書の集合を有する、前記識別することと、
前記識別された複数の文書の中の各文書において、前記複数のAPIの中の対応するウェブAPIの対応するエンドポイントについてのエンドポイント名の位置を決定することと、
前記エンドポイント名の前記決定された位置に先行する第1の組のセンテンスを、前記識別された複数の文書の中の各文書から読み出すことと、
前記エンドポイント名の前記決定された位置の後に続く第2の組のセンテンスを、前記識別された複数の文書の中の各文書から読み出すことと、
前記対応するウェブAPIの前記対応するエンドポイントについて、前記取り出された複数の真のエンドポイント記述の中の対応する真のエンドポイント記述において特定されたセンテンスの数を決定することと
を更に有する、
付記1に記載の方法。
(付記4)
前記読み出された第1の組のセンテンスの中の各センテンスと前記対応する真のエンドポイント記述との間及び前記読み出された第2の組のセンテンスの中の各センテンスと前記対応する真のエンドポイント記述との間でセンテンス類似性スコアを計算することであり、センテンス類似性スコアは、前記対応する真のエンドポイント記述において特定された前記センテンスの数が1であるとの決定に基づいて計算される、前記計算することと、
前記計算された類似性スコアが最大である第1センテンスを、前記読み出された第1の組のセンテンス及び前記読み出された第2の組のセンテンスから決定することと、
前記読み出された第1の組のセンテンス及び前記読み出された第2の組のセンテンスの一方からの前記決定された第1センテンスの除去に基づいて、前記複数の偽のエンドポイント記述を、前記読み出された第1の組のセンテンス及び前記読み出された第2の組のセンテンスから決定することと
を更に有する、付記3に記載の方法。
(付記5)
前記対応する真のエンドポイント記述において特定された前記センテンスの数が1よりも大きいとの決定に基づいて、前記読み出された第1の組のセンテンスから第1の組のn−gramを、及び前記読み出された第2の組のセンテンスから第2の組のn−gramを生成することと、
前記生成された第1の組のn−gramの中の各n−gramと前記対応する真のエンドポイント記述との間で第1の組のセンテンス類似性スコアを推定することと、
前記生成された第2の組のn−gramの中の各n−gramと前記対応する真のエンドポイント記述との間で第2の組のセンテンス類似性スコアを推定することと、
前記推定された第1の組のセンテンス類似性スコアに基づいて、前記生成された第1の組のn−gramの中の各n−gramについて第1平均類似性スコアを計算することと、
前記推定された第2の組のセンテンス類似性スコアに基づいて、前記生成された第2の組のn−gramの中の各n−gramについて第2平均類似性スコアを計算することと、
前記計算された平均類似性スコアが最大である第1n−gramを、前記生成された第1の組のn−gram及び前記生成された第2の組のn−gramから決定することと、
前記生成された第1の組のn−gram及び前記生成された第2の組のn−gramの一方からの前記決定された第1n−gramの除去に基づいて、n−gramの組を、前記生成された第1の組のn−gram及び前記生成された第2の組のn−gramから選択することと、
前記選択されたn−gramの組に基づいて前記複数の偽のエンドポイント記述を決定することと
を更に有する、付記3に記載の方法。
(付記6)
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した初期データセットを構成すること
を更に有する、付記1に記載の方法。
(付記7)
前記初期データセットは、複数のカテゴリ変数及びバイナリ変数を有するデータベーステーブルに対応し、
前記複数のカテゴリ変数は、API名、エンドポイント名、及びエンドポイント記述を有し、
前記バイナリ変数は、前記エンドポイント記述が前記エンドポイント名の真記述であるかどうかを示す、
付記6に記載の方法。
(付記8)
前記構成された初期データセットに基づいて、前記複数のウェブAPIに関連した前記複数の特徴に対応する前記特徴情報を取り出すこと
を更に有する、付記6に記載の方法。
(付記9)
前記複数の特徴は、エンドポイントベクトル特徴、記述ベクトル特徴、ハイパーテキスト転送プロトコル(HTTP)メソッド特徴、コサイン類似性特徴、spacy類似性特徴、セッションセグメント特徴、記述タグ特徴、トークン数特徴、又はエンドポイント名数特徴を有する、
付記8に記載の方法。
(付記10)
前記構成された初期データセット内の各エンドポイント名のエンドポイントベクトルを計算することと、
前記構成された初期データセット内の各エンドポイント記述の記述ベクトルを計算することと、
前記構成された初期データセット内の各エンドポイント名と、前記構成された初期データセット内の対応するエンドポイント記述についての前記計算された記述ベクトルとの間で、コサイン類似性スコアを計算することと、
前記構成された初期データセット内の各エンドポイント名と前記対応するエンドポイント記述との間でspacy類似性スコアを計算することと、
前記計算されたエンドポイントベクトル、前記計算された記述ベクトル、前記計算されたコサイン類似性スコア、及び前記計算されたspacy類似性スコアに基づいて前記訓練データセットを生成することと
を更に有する、付記8に記載の方法。
(付記11)
前記読み出されたドキュメンテーションコーパス内の対応するエンドポイント名についてHTTPメソッドの存在を決定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記HTTPメソッドが存在するとの決定に基づいて、前記対応するエンドポイント名の前記HTTPメソッドを識別することであり、該HTTPメソッドは、GET、POST、PUT、PATCH、DELETE、OPTIONS、又はHEADの中の1つであり、前記HTTPメソッドを識別することは、前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記HTTPメソッドが不存在であるとの決定に基づいて、前記対応するエンドポイント名について前記HTTPメソッドをNONEと設定することを更に有する、前記HTTPメソッドを識別することと、
前記識別されたHTTPメソッドに基づいて前記訓練データセットを生成することと
を更に有する、付記8に記載の方法。
(付記12)
対応するエンドポイント名と同じセッションにおいて、該対応するエンドポイント名についての対応するエンドポイント記述の1つ以上のセンテンスの存在を、前記読み出されたドキュメンテーションコーパスから決定することと、
前記対応するエンドポイント名と同じセッションにおいて前記1つ以上のセンテンスが存在するとの決定に基づいて、セッションセグメント値を1と設定することと、
前記対応するエンドポイント名と同じセッションにおいて前記1つ以上のセンテンスが不存在であるとの決定に基づいて、前記セッションセグメント値を0と設定することと、
前記設定されたセッションセグメント値に基づいて前記訓練データセットを生成することと
を更に有する、付記8に記載の方法。
(付記13)
前記読み出されたドキュメンテーションコーパス内の対応するエンドポイント名についてエンドポイント記述タグの存在を決定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記エンドポイント記述タグが不存在であるとの決定に基づいて、前記対応するエンドポイント名について記述タグ値をゼロと設定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記エンドポイント記述タグが存在するとの決定に基づいて、前記エンドポイント記述タグのワードベクトル表現を生成することと、
前記生成されたワードベクトル表現を前記記述タグ値として設定することと、
前記記述タグ値に基づいて前記訓練データセットを生成することと
を更に有する、付記8に記載の方法。
(付記14)
前記構成された初期データセット内の対応するエンドポイント名について対応するエンドポイント記述からワードの数及び特殊文字の数を含むトークンの数を推定することと、
前記対応するエンドポイント記述内の前記対応するエンドポイント名の出現数を決定することと、
前記推定されたトークンの数及び前記対応するエンドポイント名の前記決定された出現数に基づいて前記訓練データセットを生成することと
を更に有する、付記8に記載の方法。
(付記15)
前記MLモデルは、第1段階及び第2段階を有する、多段階ニューラルネットワークに基づくモデルであり、
前記第1段階は、人工ニューラルネットワーク(ANN)と並列に配置されたディープニューラルネットワーク(DNN)の対を有し、
前記第2段階は、前記DNNの対からの第1出力の対と前記ANNからの第2出力とをマージするマージ層を有する、
付記1に記載の方法。
(付記16)
前記MLモデルを取得することは、
前記生成された訓練データセットのエンドポイントベクトル特徴に対応するエンドポイントベクトルの組を前記DNNの対の中の第1DNNへ供給することと、
前記生成された訓練データセットの記述ベクトル特徴に対応する記述ベクトルの組を前記DNNの対の中の第2DNNへ供給することと、
前記生成された訓練データセットの残りの特徴の組に対応する前記特徴情報の部分を前記ANNへ供給することと、
前記第1出力の対及び前記第2出力を前記マージ層へ供給することと、
前記供給されたエンドポイントベクトルの組と、前記供給された記述ベクトルの組と、前記供給された残りの特徴の組と、前記供給された第1出力の組及び第2出力とに基づいて前記MLモデルを取得するように、前記DNNの対及び前記ANNに対して訓練動作を実行することと
を有する、
付記15に記載の方法。
(付記17)
前記DNNの対の中の各DNNは、畳み込みニューラルネットワーク(CNN)又は長短期記憶(LSTM)に基づくDNNの一方である、
付記15に記載の方法。
(付記18)
前記訓練データセットの異なるデータ点に対して訓練された複数のモデルを有する前記MLモデルの複数の投票に依存するアンサンブルアプローチに基づいて、前記供給された入力の組を、前記エンドポイントに関連した前記真記述又は前記偽記述の1つとして分類すること
を更に有する、付記1に記載の方法。
(付記19)
実行されることに応答して、予測システムに、
複数のウェブアプリケーションプログラミングインターフェイス(API)に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習(ML)モデルを取得することと、
前記複数のウェブAPIの中の特定のウェブAPIのエンドポイントに関連する入力の組を前記MLモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記MLモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の1つとして分類することと
を有する動作を実行させる命令を記憶するよう構成された1つ以上の非一時的なコンピュータ可読記憶媒体。
(付記20)
複数のウェブアプリケーションプログラミングインターフェイス(API)に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習(ML)モデルを取得することと、
前記複数のウェブAPIの中の特定のウェブAPIのエンドポイントに関連する入力の組を前記MLモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記MLモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の1つとして分類することと
を実行するよう構成されるプロセッサを有する予測システム。
100 環境
102,202 予測システム
102A,702,804 MLモデル
104 ラベル付きリポジトリ
106 ドキュメンテーションコーパス
108 通信ネットワーク
110 構造化された仕様文書
112 文書の集合
204 プロセッサ
206 メモリ
208 永続性データストレージ
210 ネットワークインターフェイス
400 構造化された仕様文書
402 APIタイトル
404 API記述
406,602 エンドポイント名
408 エンドポイント記述
410 API入出力パラメータ記述
600 文書
604 第1の組のセンテンス
606 第2の組のセンテンス
704,802 訓練データセット
706 第1段階
708 第2段階
710,712 DNN
714 ANN
716 マージ層
718 予測結果
806 結合投票段階
808 最終分類器段
102,202 予測システム
102A,702,804 MLモデル
104 ラベル付きリポジトリ
106 ドキュメンテーションコーパス
108 通信ネットワーク
110 構造化された仕様文書
112 文書の集合
204 プロセッサ
206 メモリ
208 永続性データストレージ
210 ネットワークインターフェイス
400 構造化された仕様文書
402 APIタイトル
404 API記述
406,602 エンドポイント名
408 エンドポイント記述
410 API入出力パラメータ記述
600 文書
604 第1の組のセンテンス
606 第2の組のセンテンス
704,802 訓練データセット
706 第1段階
708 第2段階
710,712 DNN
714 ANN
716 マージ層
718 予測結果
806 結合投票段階
808 最終分類器段
Claims (20)
- 複数のウェブアプリケーションプログラミングインターフェイス(API)に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習(ML)モデルを取得することと、
前記複数のウェブAPIの中の特定のウェブAPIのエンドポイントに関連する入力の組を前記MLモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記MLモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の1つとして分類することと
を有する方法。 - 前記ラベル付きリポジトリは、前記複数のウェブAPIに関連した複数の構造化された仕様文書を有し、
各API仕様文書は、前記複数のウェブAPIの中の対応するウェブAPIに関連した複数のフィールドにマッピングされた情報を有し、
前記複数のフィールドは、APIタイトルフィールド、エンドポイント名フィールド、及びエンドポイント記述フィールドを有する、
請求項1に記載の方法。 - 前記複数の偽のエンドポイント記述を決定することは、
対応する複数のウェブAPIに関連した複数の文書を前記読み出されたドキュメンテーションコーパスから識別することであり、前記ドキュメンテーションコーパスは、対応するAPIの集合に関連した文書の集合を有する、前記識別することと、
前記識別された複数の文書の中の各文書において、前記複数のAPIの中の対応するウェブAPIの対応するエンドポイントについてのエンドポイント名の位置を決定することと、
前記エンドポイント名の前記決定された位置に先行する第1の組のセンテンスを、前記識別された複数の文書の中の各文書から読み出すことと、
前記エンドポイント名の前記決定された位置の後に続く第2の組のセンテンスを、前記識別された複数の文書の中の各文書から読み出すことと、
前記対応するウェブAPIの前記対応するエンドポイントについて、前記取り出された複数の真のエンドポイント記述の中の対応する真のエンドポイント記述において特定されたセンテンスの数を決定することと
を更に有する、
請求項1に記載の方法。 - 前記読み出された第1の組のセンテンスの中の各センテンスと前記対応する真のエンドポイント記述との間及び前記読み出された第2の組のセンテンスの中の各センテンスと前記対応する真のエンドポイント記述との間でセンテンス類似性スコアを計算することであり、センテンス類似性スコアは、前記対応する真のエンドポイント記述において特定された前記センテンスの数が1であるとの決定に基づいて計算される、前記計算することと、
前記計算された類似性スコアが最大である第1センテンスを、前記読み出された第1の組のセンテンス及び前記読み出された第2の組のセンテンスから決定することと、
前記読み出された第1の組のセンテンス及び前記読み出された第2の組のセンテンスの一方からの前記決定された第1センテンスの除去に基づいて、前記複数の偽のエンドポイント記述を、前記読み出された第1の組のセンテンス及び前記読み出された第2の組のセンテンスから決定することと
を更に有する、請求項3に記載の方法。 - 前記対応する真のエンドポイント記述において特定された前記センテンスの数が1よりも大きいとの決定に基づいて、前記読み出された第1の組のセンテンスから第1の組のn−gramを、及び前記読み出された第2の組のセンテンスから第2の組のn−gramを生成することと、
前記生成された第1の組のn−gramの中の各n−gramと前記対応する真のエンドポイント記述との間で第1の組のセンテンス類似性スコアを推定することと、
前記生成された第2の組のn−gramの中の各n−gramと前記対応する真のエンドポイント記述との間で第2の組のセンテンス類似性スコアを推定することと、
前記推定された第1の組のセンテンス類似性スコアに基づいて、前記生成された第1の組のn−gramの中の各n−gramについて第1平均類似性スコアを計算することと、
前記推定された第2の組のセンテンス類似性スコアに基づいて、前記生成された第2の組のn−gramの中の各n−gramについて第2平均類似性スコアを計算することと、
前記計算された平均類似性スコアが最大である第1n−gramを、前記生成された第1の組のn−gram及び前記生成された第2の組のn−gramから決定することと、
前記生成された第1の組のn−gram及び前記生成された第2の組のn−gramの一方からの前記決定された第1n−gramの除去に基づいて、n−gramの組を、前記生成された第1の組のn−gram及び前記生成された第2の組のn−gramから選択することと、
前記選択されたn−gramの組に基づいて前記複数の偽のエンドポイント記述を決定することと
を更に有する、請求項3に記載の方法。 - 前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した初期データセットを構成すること
を更に有する、請求項1に記載の方法。 - 前記初期データセットは、複数のカテゴリ変数及びバイナリ変数を有するデータベーステーブルに対応し、
前記複数のカテゴリ変数は、API名、エンドポイント名、及びエンドポイント記述を有し、
前記バイナリ変数は、前記エンドポイント記述が前記エンドポイント名の真記述であるかどうかを示す、
請求項6に記載の方法。 - 前記構成された初期データセットに基づいて、前記複数のウェブAPIに関連した前記複数の特徴に対応する前記特徴情報を取り出すこと
を更に有する、請求項6に記載の方法。 - 前記複数の特徴は、エンドポイントベクトル特徴、記述ベクトル特徴、ハイパーテキスト転送プロトコル(HTTP)メソッド特徴、コサイン類似性特徴、spacy類似性特徴、セッションセグメント特徴、記述タグ特徴、トークン数特徴、又はエンドポイント名数特徴を有する、
請求項8に記載の方法。 - 前記構成された初期データセット内の各エンドポイント名のエンドポイントベクトルを計算することと、
前記構成された初期データセット内の各エンドポイント記述の記述ベクトルを計算することと、
前記構成された初期データセット内の各エンドポイント名と、前記構成された初期データセット内の対応するエンドポイント記述についての前記計算された記述ベクトルとの間で、コサイン類似性スコアを計算することと、
前記構成された初期データセット内の各エンドポイント名と前記対応するエンドポイント記述との間でspacy類似性スコアを計算することと、
前記計算されたエンドポイントベクトル、前記計算された記述ベクトル、前記計算されたコサイン類似性スコア、及び前記計算されたspacy類似性スコアに基づいて前記訓練データセットを生成することと
を更に有する、請求項8に記載の方法。 - 前記読み出されたドキュメンテーションコーパス内の対応するエンドポイント名についてHTTPメソッドの存在を決定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記HTTPメソッドが存在するとの決定に基づいて、前記対応するエンドポイント名の前記HTTPメソッドを識別することであり、該HTTPメソッドは、GET、POST、PUT、PATCH、DELETE、OPTIONS、又はHEADの中の1つであり、前記HTTPメソッドを識別することは、前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記HTTPメソッドが不存在であるとの決定に基づいて、前記対応するエンドポイント名について前記HTTPメソッドをNONEと設定することを更に有する、前記HTTPメソッドを識別することと、
前記識別されたHTTPメソッドに基づいて前記訓練データセットを生成することと
を更に有する、請求項8に記載の方法。 - 対応するエンドポイント名と同じセッションにおいて、該対応するエンドポイント名についての対応するエンドポイント記述の1つ以上のセンテンスの存在を、前記読み出されたドキュメンテーションコーパスから決定することと、
前記対応するエンドポイント名と同じセッションにおいて前記1つ以上のセンテンスが存在するとの決定に基づいて、セッションセグメント値を1と設定することと、
前記対応するエンドポイント名と同じセッションにおいて前記1つ以上のセンテンスが不存在であるとの決定に基づいて、前記セッションセグメント値を0と設定することと、
前記設定されたセッションセグメント値に基づいて前記訓練データセットを生成することと
を更に有する、請求項8に記載の方法。 - 前記読み出されたドキュメンテーションコーパス内の対応するエンドポイント名についてエンドポイント記述タグの存在を決定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記エンドポイント記述タグが不存在であるとの決定に基づいて、前記対応するエンドポイント名について記述タグ値をゼロと設定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記エンドポイント記述タグが存在するとの決定に基づいて、前記エンドポイント記述タグのワードベクトル表現を生成することと、
前記生成されたワードベクトル表現を前記記述タグ値として設定することと、
前記記述タグ値に基づいて前記訓練データセットを生成することと
を更に有する、請求項8に記載の方法。 - 前記構成された初期データセット内の対応するエンドポイント名について対応するエンドポイント記述からワードの数及び特殊文字の数を含むトークンの数を推定することと、
前記対応するエンドポイント記述内の前記対応するエンドポイント名の出現数を決定することと、
前記推定されたトークンの数及び前記対応するエンドポイント名の前記決定された出現数に基づいて前記訓練データセットを生成することと
を更に有する、請求項8に記載の方法。 - 前記MLモデルは、第1段階及び第2段階を有する、多段階ニューラルネットワークに基づくモデルであり、
前記第1段階は、人工ニューラルネットワーク(ANN)と並列に配置されたディープニューラルネットワーク(DNN)の対を有し、
前記第2段階は、前記DNNの対からの第1出力の対と前記ANNからの第2出力とをマージするマージ層を有する、
請求項1に記載の方法。 - 前記MLモデルを取得することは、
前記生成された訓練データセットのエンドポイントベクトル特徴に対応するエンドポイントベクトルの組を前記DNNの対の中の第1DNNへ供給することと、
前記生成された訓練データセットの記述ベクトル特徴に対応する記述ベクトルの組を前記DNNの対の中の第2DNNへ供給することと、
前記生成された訓練データセットの残りの特徴の組に対応する前記特徴情報の部分を前記ANNへ供給することと、
前記第1出力の対及び前記第2出力を前記マージ層へ供給することと、
前記供給されたエンドポイントベクトルの組と、前記供給された記述ベクトルの組と、前記供給された残りの特徴の組と、前記供給された第1出力の組及び第2出力とに基づいて前記MLモデルを取得するように、前記DNNの対及び前記ANNに対して訓練動作を実行することと
を有する、
請求項15に記載の方法。 - 前記DNNの対の中の各DNNは、畳み込みニューラルネットワーク(CNN)又は長短期記憶(LSTM)に基づくDNNの一方である、
請求項15に記載の方法。 - 前記訓練データセットの異なるデータ点に対して訓練された複数のモデルを有する前記MLモデルの複数の投票に依存するアンサンブルアプローチに基づいて、前記供給された入力の組を、前記エンドポイントに関連した前記真記述又は前記偽記述の1つとして分類すること
を更に有する、請求項1に記載の方法。 - 実行されることに応答して、予測システムに、
複数のウェブアプリケーションプログラミングインターフェイス(API)に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習(ML)モデルを取得することと、
前記複数のウェブAPIの中の特定のウェブAPIのエンドポイントに関連する入力の組を前記MLモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記MLモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の1つとして分類することと
を有する動作を実行させる命令を記憶するよう構成された1つ以上の非一時的なコンピュータ可読記憶媒体。 - 複数のウェブアプリケーションプログラミングインターフェイス(API)に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブAPIに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブAPIに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習(ML)モデルを取得することと、
前記複数のウェブAPIの中の特定のウェブAPIのエンドポイントに関連する入力の組を前記MLモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記MLモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の1つとして分類することと
を実行するよう構成されるプロセッサを有する予測システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/417,262 US11163620B2 (en) | 2019-05-20 | 2019-05-20 | Predicting API endpoint descriptions from API documentation |
US16/417262 | 2019-05-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020191076A true JP2020191076A (ja) | 2020-11-26 |
Family
ID=73453789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020055857A Withdrawn JP2020191076A (ja) | 2019-05-20 | 2020-03-26 | Apiドキュメンテーションからのapiエンドポイント記述の予測 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11163620B2 (ja) |
JP (1) | JP2020191076A (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11029947B2 (en) * | 2019-08-30 | 2021-06-08 | Accenture Global Solutions Limited | Utilizing artificial intelligence to improve productivity of software development and information technology operations (DevOps) |
US11790302B2 (en) * | 2019-12-16 | 2023-10-17 | Nice Ltd. | System and method for calculating a score for a chain of interactions in a call center |
US11900074B2 (en) * | 2020-08-20 | 2024-02-13 | Jpmorgan Chase Bank, N.A. | Method and apparatus for implementing an end-to-end API design and development module integrating with firmwide tools and processes |
US20220382980A1 (en) * | 2021-06-01 | 2022-12-01 | Sap Se | Similarity scoring leveraging constrained greedy matching |
US20230086564A1 (en) * | 2021-09-20 | 2023-03-23 | Salesforce.Com, Inc. | System and method for automatic discovery of candidate application programming interfaces and dependencies to be published |
US20240202284A1 (en) * | 2021-12-15 | 2024-06-20 | Wysa Inc | System and method for monitoring and improving conversational alignment to develop an alliance between an artificial intelligence (ai) chatbot and a user |
US20230376687A1 (en) * | 2022-05-17 | 2023-11-23 | Adobe Inc. | Multimodal extraction across multiple granularities |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10127564B2 (en) * | 2011-09-15 | 2018-11-13 | Stephan HEATH | System and method for using impressions tracking and analysis, location information, 2D and 3D mapping, mobile mapping, social media, and user behavior and information for generating mobile and internet posted promotions or offers for, and/or sales of, products and/or services |
US8510762B1 (en) * | 2011-10-12 | 2013-08-13 | Google Inc. | Generate custom client library samples based on a machine readable API description |
US9104525B2 (en) * | 2013-01-22 | 2015-08-11 | Microsoft Technology Licensing, Llc | API usage pattern mining |
US20170316314A1 (en) * | 2013-08-23 | 2017-11-02 | Google Inc. | Automatic optimization of content items |
US10452992B2 (en) * | 2014-06-30 | 2019-10-22 | Amazon Technologies, Inc. | Interactive interfaces for machine learning model evaluations |
US11514096B2 (en) * | 2015-09-01 | 2022-11-29 | Panjiva, Inc. | Natural language processing for entity resolution |
US10691507B2 (en) | 2016-12-09 | 2020-06-23 | Fujitsu Limited | API learning |
JP2018109910A (ja) * | 2017-01-05 | 2018-07-12 | 富士通株式会社 | 類似度判定プログラム、類似度判定方法および情報処理装置 |
US10942708B2 (en) * | 2017-01-10 | 2021-03-09 | International Business Machines Corporation | Generating web API specification from online documentation |
US10002129B1 (en) * | 2017-02-15 | 2018-06-19 | Wipro Limited | System and method for extracting information from unstructured text |
US10133650B1 (en) * | 2017-10-10 | 2018-11-20 | Fujitsu Limited | Automated API parameter resolution and validation |
US20190138901A1 (en) * | 2017-11-06 | 2019-05-09 | The Royal Institution For The Advancement Of Learning/Mcgill University | Techniques for designing artificial neural networks |
US10431210B1 (en) * | 2018-04-16 | 2019-10-01 | International Business Machines Corporation | Implementing a whole sentence recurrent neural network language model for natural language processing |
US11386266B2 (en) * | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
-
2019
- 2019-05-20 US US16/417,262 patent/US11163620B2/en active Active
-
2020
- 2020-03-26 JP JP2020055857A patent/JP2020191076A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11163620B2 (en) | 2021-11-02 |
US20200371851A1 (en) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020191076A (ja) | Apiドキュメンテーションからのapiエンドポイント記述の予測 | |
US11948058B2 (en) | Utilizing recurrent neural networks to recognize and extract open intent from text inputs | |
CA3087534C (en) | System and method for information extraction with character level features | |
US10061766B2 (en) | Systems and methods for domain-specific machine-interpretation of input data | |
CN111291570B (zh) | 一种实现司法文书中要素识别的方法及装置 | |
US11762926B2 (en) | Recommending web API's and associated endpoints | |
CN109918653B (zh) | 确定文本数据的关联话题及模型的训练方法、装置和设备 | |
US8719025B2 (en) | Contextual voice query dilation to improve spoken web searching | |
US12008065B2 (en) | Utilizing machine-learning models to generate identifier embeddings and determine digital connections between digital content items | |
CN110008473B (zh) | 一种基于迭代方法的医疗文本命名实体识别标注方法 | |
US11868714B2 (en) | Facilitating generation of fillable document templates | |
CN110955766A (zh) | 一种自动扩充智能客服标准问题对的方法和*** | |
US20230351121A1 (en) | Method and system for generating conversation flows | |
CN111126053A (zh) | 一种信息处理方法及相关设备 | |
JP2017538226A (ja) | スケーラブルなウェブデータの抽出 | |
US20140201188A1 (en) | System and method for search discovery | |
CN114254622A (zh) | 一种意图识别方法和装置 | |
JP5342574B2 (ja) | トピックモデリング装置、トピックモデリング方法、及びプログラム | |
JP5824429B2 (ja) | スパムアカウントスコア算出装置、スパムアカウントスコア算出方法、及びプログラム | |
WO2021056740A1 (zh) | 语言模型构建方法、***、计算机设备及可读存储介质 | |
CN112632981A (zh) | 一种新词发现方法和装置 | |
US11494562B2 (en) | Method, apparatus and computer program product for generating text strings | |
US20240152538A1 (en) | System, apparatus, and method for structuring documentary data for improved topic extraction and modeling | |
CN112579774B (zh) | 模型训练方法、模型训练装置及终端设备 | |
CN111860662B (zh) | 一种相似性检测模型的训练方法及装置、应用方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231108 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20240126 |