(57)【要約】【課題】ＡＰＩドキュメンテーションからＡＰＩエンドポイント記述を予測する方法等を提供する。【解決手段】方法は、複数のウェブＡＰＩに関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出し、複数のウェブＡＰＩに関連したドキュメンテーションコーパスを読み出すことを含む。方法は、ドキュメンテーションコーパス及び複数の真のエンドポイント記述に基づき、複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定することを更に含む。方法は、複数のウェブＡＰＩに関連した特徴情報を取り出し特徴情報に基づき訓練データセットを生成し、訓練データセットに基づきＭＬモデルを取得することを更に含む。方法は、入力の組をＭＬモデルへ供給し、入力の組を、供給された入力の組についてのＭＬモデルの予測結果に基づき、エンドポイントに関連した真記述又は偽記述の１つとして分類することを更に含む。【選択図】図３
2020191076.tif 000002
【特許請求の範囲】
【請求項１】
複数のウェブアプリケーションプログラミングインターフェイス（ＡＰＩ）に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブＡＰＩに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習（ＭＬ）モデルを取得することと、
前記複数のウェブＡＰＩの中の特定のウェブＡＰＩのエンドポイントに関連する入力の組を前記ＭＬモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記ＭＬモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の１つとして分類することと
を有する方法。
【請求項２】
前記ラベル付きリポジトリは、前記複数のウェブＡＰＩに関連した複数の構造化された仕様文書を有し、
各ＡＰＩ仕様文書は、前記複数のウェブＡＰＩの中の対応するウェブＡＰＩに関連した複数のフィールドにマッピングされた情報を有し、
前記複数のフィールドは、ＡＰＩタイトルフィールド、エンドポイント名フィールド、及びエンドポイント記述フィールドを有する、
請求項１に記載の方法。
【請求項３】
前記複数の偽のエンドポイント記述を決定することは、
対応する複数のウェブＡＰＩに関連した複数の文書を前記読み出されたドキュメンテーションコーパスから識別することであり、前記ドキュメンテーションコーパスは、対応するＡＰＩの集合に関連した文書の集合を有する、前記識別することと、
前記識別された複数の文書の中の各文書において、前記複数のＡＰＩの中の対応するウェブＡＰＩの対応するエンドポイントについてのエンドポイント名の位置を決定することと、
前記エンドポイント名の前記決定された位置に先行する第１の組のセンテンスを、前記識別された複数の文書の中の各文書から読み出すことと、
前記エンドポイント名の前記決定された位置の後に続く第２の組のセンテンスを、前記識別された複数の文書の中の各文書から読み出すことと、
前記対応するウェブＡＰＩの前記対応するエンドポイントについて、前記取り出された複数の真のエンドポイント記述の中の対応する真のエンドポイント記述において特定されたセンテンスの数を決定することと
を更に有する、
請求項１に記載の方法。
【請求項４】
前記読み出された第１の組のセンテンスの中の各センテンスと前記対応する真のエンドポイント記述との間及び前記読み出された第２の組のセンテンスの中の各センテンスと前記対応する真のエンドポイント記述との間でセンテンス類似性スコアを計算することであり、センテンス類似性スコアは、前記対応する真のエンドポイント記述において特定された前記センテンスの数が１であるとの決定に基づいて計算される、前記計算することと、
前記計算された類似性スコアが最大である第１センテンスを、前記読み出された第１の組のセンテンス及び前記読み出された第２の組のセンテンスから決定することと、
前記読み出された第１の組のセンテンス及び前記読み出された第２の組のセンテンスの一方からの前記決定された第１センテンスの除去に基づいて、前記複数の偽のエンドポイント記述を、前記読み出された第１の組のセンテンス及び前記読み出された第２の組のセンテンスから決定することと
を更に有する、請求項３に記載の方法。
【請求項５】
前記対応する真のエンドポイント記述において特定された前記センテンスの数が１よりも大きいとの決定に基づいて、前記読み出された第１の組のセンテンスから第１の組のｎ−ｇｒａｍを、及び前記読み出された第２の組のセンテンスから第２の組のｎ−ｇｒａｍを生成することと、
前記生成された第１の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍと前記対応する真のエンドポイント記述との間で第１の組のセンテンス類似性スコアを推定することと、
前記生成された第２の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍと前記対応する真のエンドポイント記述との間で第２の組のセンテンス類似性スコアを推定することと、
前記推定された第１の組のセンテンス類似性スコアに基づいて、前記生成された第１の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍについて第１平均類似性スコアを計算することと、
前記推定された第２の組のセンテンス類似性スコアに基づいて、前記生成された第２の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍについて第２平均類似性スコアを計算することと、
前記計算された平均類似性スコアが最大である第１ｎ−ｇｒａｍを、前記生成された第１の組のｎ−ｇｒａｍ及び前記生成された第２の組のｎ−ｇｒａｍから決定することと、
前記生成された第１の組のｎ−ｇｒａｍ及び前記生成された第２の組のｎ−ｇｒａｍの一方からの前記決定された第１ｎ−ｇｒａｍの除去に基づいて、ｎ−ｇｒａｍの組を、前記生成された第１の組のｎ−ｇｒａｍ及び前記生成された第２の組のｎ−ｇｒａｍから選択することと、
前記選択されたｎ−ｇｒａｍの組に基づいて前記複数の偽のエンドポイント記述を決定することと
を更に有する、請求項３に記載の方法。
【請求項６】
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した初期データセットを構成すること
を更に有する、請求項１に記載の方法。
【請求項７】
前記初期データセットは、複数のカテゴリ変数及びバイナリ変数を有するデータベーステーブルに対応し、
前記複数のカテゴリ変数は、ＡＰＩ名、エンドポイント名、及びエンドポイント記述を有し、
前記バイナリ変数は、前記エンドポイント記述が前記エンドポイント名の真記述であるかどうかを示す、
請求項６に記載の方法。
【請求項８】
前記構成された初期データセットに基づいて、前記複数のウェブＡＰＩに関連した前記複数の特徴に対応する前記特徴情報を取り出すこと
を更に有する、請求項６に記載の方法。
【請求項９】
前記複数の特徴は、エンドポイントベクトル特徴、記述ベクトル特徴、ハイパーテキスト転送プロトコル（ＨＴＴＰ）メソッド特徴、コサイン類似性特徴、ｓｐａｃｙ類似性特徴、セッションセグメント特徴、記述タグ特徴、トークン数特徴、又はエンドポイント名数特徴を有する、
請求項８に記載の方法。
【請求項１０】
前記構成された初期データセット内の各エンドポイント名のエンドポイントベクトルを計算することと、
前記構成された初期データセット内の各エンドポイント記述の記述ベクトルを計算することと、
前記構成された初期データセット内の各エンドポイント名と、前記構成された初期データセット内の対応するエンドポイント記述についての前記計算された記述ベクトルとの間で、コサイン類似性スコアを計算することと、
前記構成された初期データセット内の各エンドポイント名と前記対応するエンドポイント記述との間でｓｐａｃｙ類似性スコアを計算することと、
前記計算されたエンドポイントベクトル、前記計算された記述ベクトル、前記計算されたコサイン類似性スコア、及び前記計算されたｓｐａｃｙ類似性スコアに基づいて前記訓練データセットを生成することと
を更に有する、請求項８に記載の方法。
【請求項１１】
前記読み出されたドキュメンテーションコーパス内の対応するエンドポイント名についてＨＴＴＰメソッドの存在を決定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記ＨＴＴＰメソッドが存在するとの決定に基づいて、前記対応するエンドポイント名の前記ＨＴＴＰメソッドを識別することであり、該ＨＴＴＰメソッドは、ＧＥＴ、ＰＯＳＴ、ＰＵＴ、ＰＡＴＣＨ、ＤＥＬＥＴＥ、ＯＰＴＩＯＮＳ、又はＨＥＡＤの中の１つであり、前記ＨＴＴＰメソッドを識別することは、前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記ＨＴＴＰメソッドが不存在であるとの決定に基づいて、前記対応するエンドポイント名について前記ＨＴＴＰメソッドをＮＯＮＥと設定することを更に有する、前記ＨＴＴＰメソッドを識別することと、
前記識別されたＨＴＴＰメソッドに基づいて前記訓練データセットを生成することと
を更に有する、請求項８に記載の方法。
【請求項１２】
対応するエンドポイント名と同じセッションにおいて、該対応するエンドポイント名についての対応するエンドポイント記述の１つ以上のセンテンスの存在を、前記読み出されたドキュメンテーションコーパスから決定することと、
前記対応するエンドポイント名と同じセッションにおいて前記１つ以上のセンテンスが存在するとの決定に基づいて、セッションセグメント値を１と設定することと、
前記対応するエンドポイント名と同じセッションにおいて前記１つ以上のセンテンスが不存在であるとの決定に基づいて、前記セッションセグメント値を０と設定することと、
前記設定されたセッションセグメント値に基づいて前記訓練データセットを生成することと
を更に有する、請求項８に記載の方法。
【請求項１３】
前記読み出されたドキュメンテーションコーパス内の対応するエンドポイント名についてエンドポイント記述タグの存在を決定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記エンドポイント記述タグが不存在であるとの決定に基づいて、前記対応するエンドポイント名について記述タグ値をゼロと設定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記エンドポイント記述タグが存在するとの決定に基づいて、前記エンドポイント記述タグのワードベクトル表現を生成することと、
前記生成されたワードベクトル表現を前記記述タグ値として設定することと、
前記記述タグ値に基づいて前記訓練データセットを生成することと
を更に有する、請求項８に記載の方法。
【請求項１４】
前記構成された初期データセット内の対応するエンドポイント名について対応するエンドポイント記述からワードの数及び特殊文字の数を含むトークンの数を推定することと、
前記対応するエンドポイント記述内の前記対応するエンドポイント名の出現数を決定することと、
前記推定されたトークンの数及び前記対応するエンドポイント名の前記決定された出現数に基づいて前記訓練データセットを生成することと
を更に有する、請求項８に記載の方法。
【請求項１５】
前記ＭＬモデルは、第１段階及び第２段階を有する、多段階ニューラルネットワークに基づくモデルであり、
前記第１段階は、人工ニューラルネットワーク（ＡＮＮ）と並列に配置されたディープニューラルネットワーク（ＤＮＮ）の対を有し、
前記第２段階は、前記ＤＮＮの対からの第１出力の対と前記ＡＮＮからの第２出力とをマージするマージ層を有する、
請求項１に記載の方法。
【請求項１６】
前記ＭＬモデルを取得することは、
前記生成された訓練データセットのエンドポイントベクトル特徴に対応するエンドポイントベクトルの組を前記ＤＮＮの対の中の第１ＤＮＮへ供給することと、
前記生成された訓練データセットの記述ベクトル特徴に対応する記述ベクトルの組を前記ＤＮＮの対の中の第２ＤＮＮへ供給することと、
前記生成された訓練データセットの残りの特徴の組に対応する前記特徴情報の部分を前記ＡＮＮへ供給することと、
前記第１出力の対及び前記第２出力を前記マージ層へ供給することと、
前記供給されたエンドポイントベクトルの組と、前記供給された記述ベクトルの組と、前記供給された残りの特徴の組と、前記供給された第１出力の組及び第２出力とに基づいて前記ＭＬモデルを取得するように、前記ＤＮＮの対及び前記ＡＮＮに対して訓練動作を実行することと
を有する、
請求項１５に記載の方法。
【請求項１７】
前記ＤＮＮの対の中の各ＤＮＮは、畳み込みニューラルネットワーク（ＣＮＮ）又は長短期記憶（ＬＳＴＭ）に基づくＤＮＮの一方である、
請求項１５に記載の方法。
【請求項１８】
前記訓練データセットの異なるデータ点に対して訓練された複数のモデルを有する前記ＭＬモデルの複数の投票に依存するアンサンブルアプローチに基づいて、前記供給された入力の組を、前記エンドポイントに関連した前記真記述又は前記偽記述の１つとして分類すること
を更に有する、請求項１に記載の方法。
【請求項１９】
実行されることに応答して、予測システムに、
複数のウェブアプリケーションプログラミングインターフェイス（ＡＰＩ）に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブＡＰＩに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習（ＭＬ）モデルを取得することと、
前記複数のウェブＡＰＩの中の特定のウェブＡＰＩのエンドポイントに関連する入力の組を前記ＭＬモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記ＭＬモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の１つとして分類することと
を有する動作を実行させる命令を記憶するよう構成された１つ以上の非一時的なコンピュータ可読記憶媒体。
【請求項２０】
複数のウェブアプリケーションプログラミングインターフェイス（ＡＰＩ）に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブＡＰＩに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習（ＭＬ）モデルを取得することと、
前記複数のウェブＡＰＩの中の特定のウェブＡＰＩのエンドポイントに関連する入力の組を前記ＭＬモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記ＭＬモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の１つとして分類することと
を実行するよう構成されるプロセッサを有する予測システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示で議論される実施形態は、ＡＰＩドキュメンテーションからアプリケーションプログラミングインターフェイス（Application  Programming  Interface，ＡＰＩ）エンドポイント記述を予測することに関係がある。
【背景技術】
【０００２】
多くの企業及び組織は、音声処理及びソーシャルメディア解析のようないくつかのアプリケーションのための異なるウェブＡＰＩを提供するウェブＡＰＩ基盤をサードパーティ開発者及び／又はサードパーティ組織に提供する。一般的に、ウェブＡＰＩは、公開されたエンドポイントとのプログラマチックインターフェイスであり、サードパーティソフトウェアによってリソースがアクセスされ得る場所を特定する。ウェブＡＰＩの利用及び関連するコードの例に関する詳細は、通常はウェブＡＰＩドキュメンテーションで提供される。一般的に、ウェブＡＰＩドキュメンテーションでは、エンドポイント記述は、通常はエンドポイント名を囲んでいるが、ウェブＡＰＩドキュメンテーションのための標準テンプレートは存在せず、ＡＰＩドキュメンテーションの品質は大いに変わる。いくつかのうまく構造化されたＡＰＩドキュメンテーションでは、エンドポイント記述は容易に見つけることができるが、一方で、特定のそれほど構造化されていないＡＰＩドキュメンテーションでは、エンドポイント記述は、見つけることが難しい。一例として、多くのＡＰＩドキュメンテーションで、エンドポイント名と正確なエンドポイント記述との間のセンテンススパンに関して特定のパターンは存在しない。よって、ＡＰＩの急速な成長とともに、うまく構造化されたＡＰＩドキュメンテーション又はそれほど構造化されていないＡＰＩドキュメンテーションのどちらか一方を含むウェブＡＰＩドキュメンテーションから正確なエンドポイント記述を予測することができる自動アプローチに対する長年にわたる切実な要望がある。
【０００３】
本願で請求される対象は、上記のような環境でしか動作しない実施形態又は上記の如何なる欠点も解決する実施形態に限られない。むしろ、この背景は、本願で記載されるいくつかの実施形態が実施され得る技術分野の一例を説明するためにのみ与えられている。
【発明の概要】
【０００４】
実施形態の一態様によれば、動作は、複数のウェブアプリケーションプログラミングインターフェイス（ＡＰＩ）に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、複数のウェブＡＰＩに関連したドキュメンテーションコーパスを読み出すこととを含んでよい。動作は、読み出されたドキュメンテーションコーパス及び取り出された複数の真のエンドポイント記述に基づいて、複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定することを更に含んでよい。動作は、取り出された複数の真のエンドポイント記述、読み出されたドキュメンテーションコーパス、及び決定された複数の偽のエンドポイント記述に基づいて、複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を取り出すことを更に含んでよい。動作は、取り出された特徴情報に基づいて訓練データセットを生成することと、生成された訓練データセットに基づいて機械学習（ＭＬ）モデルを取得することとを更に含んでよい。更には、動作は、入力の組をＭＬモデルへ供給することと、供給された入力の組を、供給された入力の組についてのＭＬモデルの予測結果に基づいて、エンドポイントに関連した真記述又は偽記述の１つとして分類することとを含んでよい。入力の組は、複数のウェブＡＰＩの中の特定のウェブＡＰＩのエンドポイントに関連してよい。
【０００５】
実施形態の目的及び利点は、少なくとも、特許請求の範囲で特に示されている要素、特徴、及び組み合わせによって、実現及び達成されるだろう。
【０００６】
上記の概要及び下記の詳細な説明は両方とも、単に例及び説明であり、請求される発明の制限でない点が理解されるべきである。
【０００７】
例となる実施形態は、添付の図面の使用を通じて更なる特定及び詳細をもって記載及び説明されることになる。
【図面の簡単な説明】
【０００８】
【図１】ＡＰＩドキュメンテーションからＡＰＩエンドポイント記述を予測することに関連した環境の例を表す図である。
【図２】ＡＰＩドキュメンテーションからＡＰＩエンドポイント記述を予測する予測システムの例のブロック図である。
【図３】ＡＰＩドキュメンテーションからＡＰＩエンドポイント記述を予測する方法の例のフローチャートを表す。
【図４Ａ】ラベル付きリポジトリ内の文書の例を表す。
【図４Ｂ】ラベル付きリポジトリ内の文書の例を表す。
【図５Ａ】ウェブＡＰＩに関連した偽のエンドポイント記述を決定する方法の例のフローチャートを表す。
【図５Ｂ】ウェブＡＰＩに関連した偽のエンドポイント記述を決定する方法の例のフローチャートを表す。
【図５Ｃ】ウェブＡＰＩに関連した偽のエンドポイント記述を決定する方法の例のフローチャートを表す。
【図６】ドキュメンテーションコーパス内の文書の例を表す。
【図７】本開示で記載される少なくとも１つの実施形態に従うＭＬモデルの例のブロック図を表す。
【図８】本開示で記載あれる少なくとも１つの実施形態に従うアンサンブルアプローチを表すブロック図である。
【発明を実施するための形態】
【０００９】
本開示の実施形態は、添付の図面を参照して説明される。
【００１０】
本開示で記載されるいくつかの実施形態は、ＡＰＩドキュメンテーションからアプリケーションプログラミングインターフェイス（ＡＰＩ）エンドポイント記述を予測する方法及び非一時的なコンピュータ可読媒体に関する。本開示は、複数のウェブＡＰＩに関連した真のエンドポイント記述をラベル付きリポジトリから取り出し、複数のウェブＡＰＩに関連した文書を含むドキュメンテーションコーパスから偽のエンドポイント記述を決定するための予測システムの使用に関する。更には、本開示は、複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を含む訓練データセットを生成し、訓練データセットに基づいて機械学習（ＭＬ）モデルを取得するための予測システムの使用に関する。更には、本開示は、ＭＬモデルを用いて、所与のエンドポイント記述が真記述又は偽記述であるかどうかを示す予測結果を出力するための予測システムの使用に関する。
【００１１】
本開示の１つ以上の実施形態によれば、ウェブ／ソフトウェアアプリケーション開発及びディープラーニングの技術分野は、予測システムが、文書内のウェブＡＰＩのエンドポイントの所与のエンドポイント記述が真記述又は偽記述であるかどうかを示すように予測結果を出力することができるように、予測システムに対してＭＬモデル（すなわち、訓練されたＭＬモデル）を提供することによって、改善され得る。予測結果は、予測システムがドキュメンテーションコーパス内の文書から直接に所与のエンドポイント記述を取り出すべきかどうかを決定することを助ける。更には、ＭＬモデルは、文書内の他の情報を真又は偽であると分類するよう更に訓練されてよい。これは更に、予測システムが、入力パラメータ記述又は出力パラメータ記述のような他の情報をドキュメンテーションコーパス内の文書から取り出すべきかどうかを決定することを助け得る。
【００１２】
本開示の１つ以上の実施形態によれば、ＭＬモデルは、ディープニューラルネットワーク（Deep  Neural  Networks，ＤＮＮ）と人工ニューラルネットワーク（Artificial  Neural  Networks，ＡＮＮ）とのハイブリッドアーキテクチャに基づくディープラーニングモデルであってよい。本開示の全体にわたって、ＡＮＮは、１つ以上のＤｅｎｓｅ層と、任意のＤｒｏｐｏｕｔ及びＢａｔｃｈ  Ｎｏｒｍａｌｉｚａｔｉｏｎ層とをニューラルネットワークに示し、ＤＮＮを使用して、畳み込みニューラルネットワーク（Convolutional  Neural  Networks，ＣＮＮ）、回帰型ニューラルネットワーク（Recurrent  Neural  Networks，ＲＮＮ）、長短期記憶（Long  Short-Term  Memory，ＬＳＴＭ）、などのような他のニューラルネットワークを示すために使用される。ハイブリッドアーキテクチャにより、ＭＬモデルは、標準の学習モデルと比較して高い分類精度を達成し得る。実験データにより、「〜９０．３１％」及び「〜９８．１３％」の分類精度が、ＤＮＮとして畳み込みニューラルネットワーク（ＣＮＮ）を、及びＤＮＮとして長短期記憶（ＬＳＴＭ）を夫々使用して、達成される。
【００１３】
文書内の所与のエンドポイント記述を真記述又は偽記述の１つとして確かに且つ効率的に分類する能力は、コンピュータ自体の動作に対する多数の利点と、関連するコンピュータプログラミングの分野に対する改善とをもたらし得る。コンピュータ自体に関して、文書内のどの記述が正確なエンドポイント記述であるかを識別するための訓練されたＭＬモデルの使用と、ユーザ（例えば、開発者）のためのそのような正確なエンドポイント記述の取り出しとは、改善された機能をコンピュータにもたらし得る。この改善された機能性は、以前は存在していなかった新しい機能性を読み出し及び／又は実装することをコンピュータに可能にし、そのような機能性を自動的に生成し得る。例えば、本開示は、開発者などのユーザが適切なウェブＡＰＩ及びエンドポイントの機能性を所望のソフトウェアアプリケーションに組み込むことを可能にするために、真記述又は偽記述の１つとしての文書内の所与のエンドポイント記述の分類を助け得る。
【００１４】
コンピュータプログラミングを改善することに関して、本開示は、ソフトウェア開発者のための強化された機能を提供し得る。例えば、本開示は、ソフトウェア開発者が彼らのクライアントに対してより効率的に且つ確かにソフトウェアソリューションを提供することを可能にするために、ユーザが、エンドポイントが彼のソフトウェアアプリケーションに関連するかどうかを決定し、更には、彼／彼女のソフトウェアアプリケーションに所望のウェブＡＰＩのコンピュータコードを組み込むことを助け得るウェブＡＰＩの関連するエンドポイント記述を示す関連する予測結果を提供し得る。
【００１５】
図１は、本開示で記載される少なくとも１つの実施形態に従って配置される、ウェブＡＰＩ及び関連するエンドポイントを推薦することに関連した環境の例を表す図である。図１を参照して、例となる環境１００が示されている。例となる環境１００には、予測システム１０２、ラベル付きリポジトリ１０４、ドキュメンテーションコーパス１０６、及び通信ネットワーク１０８が示されている。予測システム１０２、ラベル付きリポジトリ１０４、及びドキュメンテーションコーパス１０６は、通信ネットワーク１０８を介して互いへ通信上結合され得る。
【００１６】
予測システム１０２は、機械学習（以降、ＭＬ）モデル１０２Ａを含んでよい。予測システム１０２は、ソフトウェアプロセス、コンピューティングデバイス上の機械実行可能な命令の組、又はデバイスやソフトウェアコードを含むコンピューティングシステム、あるいは、それらの組み合わせのうちの１つ以上であってよい。予測システム１０２は、ＭＬモデル１０２Ａへの入力の組がウェブＡＰＩのエンドポイントに関連した真記述又は偽記述の１つであるかどうかを示し得る予測結果を出力するためにＭＬモデル１０２Ａを用いるよう構成されてよい。ＭＬモデル１０２Ａを用いるために、ＭＬモデル１０２Ａは、訓練データセットに対して最初に訓練される必要があり得る。訓練データセットは、インターネットネットワーク又はイントラネットネットワークを介してアクセス可能な公に利用可能な情報から取り出され得る情報に基づき取得されてよい。
【００１７】
予測システム１０２は、ラベル付きリポジトリ１０４を含み得る公に利用可能な情報の検索を実行する必要があり得る。検索は、インターネットネットワーク又はイントラネットネットワークを介してウェブ上で実行されてよい。例えば、予測システム１０２は、複数のウェブＡＰＩに関連した公に利用可能な情報を、公に利用可能な情報をウェブ上で記憶している１つ以上のコンピュータベースのソースから見つけて収集するよう構成され得るウェブクローラー（crawler）又はウェブスクレーパー（scraper）（例えば、クローラーボット又はスクレーパーボット）を含んでよい。
【００１８】
ラベル付きリポジトリ１０４は、複数のウェブＡＰＩに関連した複数の構造化された仕様文書１１０を含んでよい。複数の構造化された仕様文書１１０の中の各ＡＰＩ仕様文書は、複数のウェブＡＰＩの中の対応するウェブＡＰＩに関連した複数のフィールドにマッピングされた情報を含んでよい。複数のフィールドは、ＡＰＩタイトルフィールド、エンドポイント名フィールド、及びエンドポイント記述フィールドを含んでよい。その上、ある実施形態では、複数のフィールドは、例えば、ＡＰＩ記述フィールドと、入出力パラメータ、一次カテゴリ、二次カテゴリ、及び１つ以上のタグのためのフィールドとを含んでもよい。
【００１９】
１つ以上の実施形態で、予測システム１０２は、エンドポイント記述フィールドにマッピングされた情報の部分を、複数の真のエンドポイント記述の中の真のエンドポイント記述として識別（又はマーク）するよう構成されてよい。更には、予測システム１０２は、複数のウェブＡＰＩに関連した複数の真のエンドポイント記述を、ラベル付きリポジトリ１０４から取り出すよう構成されてよい。いくつかの真のエンドポイント記述が取り出されるための構造化された仕様文書のいくつかの例は、例えば、図４Ａ及び図４Ｂで与えられている。
【００２０】
ラベル付きリポジトリ１０４は、複数のウェブＡＰＩに関連した公に利用可能な情報について１つ以上のコンピュータベースのソースからアクセスされてよい。１つ以上のコンピュータベースのソースは、制限なしに、ウェブサーバ、クライアントコンピュータ、専用のＡＰＩストア、ＡＰＩドキュメンテーションを記憶しているファイルサーバ、及びＡＰＩ検索プラットフォームを含んでよい。１つ以上のコンピュータベースのソース内の複数の構造化された仕様文書１１０は、如何なる電子フォーマットにあってもよく、機械読み出し可能な及び／又は人間が読むことができるフォーマットであってよく、例えば、英語、日本語、ドイツ語、などのような如何なる言語でも利用可能であってよい。１つ以上の実施形態で、少なくとも１つのコンピュータベースのソースは、所望のウェブＡＰＩに関連した情報を調べて見つけることをユーザに可能にし得る。
【００２１】
予測システム１０２は、複数のウェブＡＰＩに関連したドキュメンテーションコーパス１０６を読み出すよう更に構成されてよい。１つ以上の実施形態で、予測システム１０２は、１つ以上のコンピュータベースのソースに記憶されている公に利用可能な情報からドキュメンテーションコーパス１０６を探して読み出すためにウェブクローラー又はウェブスクレーパー（例えば、クローラーボット又はスクレーパーボット）を使用するよう更に構成されてよい。ドキュメンテーションコーパス１０６は、対応するウェブＡＰＩの集合に関連した文書の集合１１２を含んでよい。文書の例には、制限なしに、ＡＰＩドキュメンテーション、ＡＰＩ仕様文書、ＡＰＩリポジトリ上のウェブページ、ＡＰＩマップアップ、及び使用ガイドがある。ドキュメンテーションコーパス１０６内の文書の集合１１２は、構造化されていない様態で配置されている複数のウェブＡＰＩに関連した情報を有してよい。例えば、構造化された仕様では、エンドポイント名についてのエンドポイント記述は、エンドポイントの位置を囲むセンテンスに存在してよく、一方、構造化されていない仕様では、エンドポイント名を囲むセンテンスは、エンドポイントの偽記述である可能性がある情報を含むことがある。
【００２２】
予測システム１０２は、読み出されたドキュメンテーションコーパス１０６及び取り出された複数の真のエンドポイント記述に基づいて、複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定するよう更に構成されてよい。複数の偽のエンドポイント記述は、センテンス類似性メソッドのような１つ以上の自然言語処理（Natural  Language  Processing，ＮＬＰ）技術を用いてドキュメンテーションコーパス１０６から決定されてよい。複数の偽のエンドポイント記述の決定の詳細は、例えば、図５Ａ、図５Ｂ、及び図５Ｃで与えられている。
【００２３】
予測システム１０２は、取り出された複数の真のエンドポイント記述、読み出されたドキュメンテーションコーパス１０６、及び決定された複数の偽のエンドポイント記述に基づいて、複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を取り出すよう更に構成されてよい。取り出された特徴情報は、制限なしに、エンドポイントベクトル、記述ベクトル、ハイパーテキスト転送プロトコル（ＨＴＴＰ）メソッド、コサイン類似性スコア、ｓｐａｃｙ類似性スコア、セッションセグメント値、記述タグ値、トークン数、エンドポイント名の数を含んでよい。特徴情報を取り出す方法の詳細は、例えば、図３で与えられている。
【００２４】
予測システム１０２は、取り出された特徴情報に基づいて訓練データセットを生成し、生成された訓練データセットに基づいてＭＬモデル１０２Ａを取得するよう更に構成されてよい。訓練データセットは、ＭＬモデル１０２Ａに関連したコスト関数／訓練エラーが最小限にされるまで、ＭＬモデル１０２Ａを訓練するために使用されてよい。取得されたＭＬモデル１０２Ａは、エンドポイントに関連した入力の組についての予測結果（例えば、“０”又は“１”）を出力し、それによって、入力が真記述又は偽記述に対応するかどうかを示し得る分類器（classifier）であってよい。
【００２５】
予測システム１０２は、入力の組をＭＬモデル１０２Ａへ供給するよう更に構成されてよい。入力の組は、複数のウェブＡＰＩの中の特定のウェブＡＰＩについてのエンドポイントに関連してよい。一例として、入力の組は、ドキュメンテーションコーパス１０６に存在する文書（例えば、テスト文書／見知らぬ／分類されていない文書）内でエンドポイント名を囲む１つ以上のセンテンスについての特徴情報（すなわち、訓練データセット内の特徴情報と類似）であってよい。ＭＬモデル１０２Ａは、予測結果を出力するよう構成されてよく、予測システム１０２は、供給された入力の組を、供給された入力の組についてのＭＬモデル１０２Ａの予測結果に基づいて、エンドポイントに関連した真記述又は偽記述の１つとして分類するよう構成されてよい。
【００２６】
文書内でエンドポイント名を囲む１つ以上のセンテンスを含む入力の組がエンドポイントに関連した真記述（すなわち、予測結果は“１”である）に対応する１つ以上の実施形態で、予測システム１０２は、文書から真記述として１つ以上のセンテンスを取り出すよう構成されてよく、取り出された１つ以上のセンテンスを使用して、構造化された仕様又は適切なデータ構造を構築してよい。構造化された仕様又は適切なデータ構造は、いくつかのアプリケーションのために、例えば、アプリケーション開発者が彼／彼女の所望のソフトウェアアプリケーションにおいてエンドポイントの使用に関して情報に基づいたより良い決断を下すことを助けるために、アプリケーション開発者に真記述を表示するために使用されてよい。
【００２７】
予測システム１０２、ラベル付きリポジトリ１０４、及びドキュメンテーションコーパス１０６の間の通信は、通信ネットワーク１０８を介して実行されてよいことがここで留意されるべきである。通信ネットワーク１０８は、予測システム１０２がウェブを介してラベル付きリポジトリ１０４にアクセスし且つ異なるデバイス（図示せず。）と通信し得るための通信媒体を含んでよい。通信ネットワーク１０８の例には、制限なしに、インターネット、クラウドネットワーク、ワイヤレスフィデリティ（Ｗｉ−Ｆｉ）ネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、及び／又はメトロポリタンエリアネットワーク（ＭＡＮ）がある。例となる環境１００内の様々なデバイスは、様々な有線及び無線通信プロトコルに従って、通信ネットワーク１０８へ接続するよう構成されてよい。そのような有線及び無線通信プロトコルの例には、制限なしに、伝送制御プロトコル及びインターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ファイル転送プロトコル（ＦＴＰ）、ＺｉｇＢｅｅ（登録商標）、ＥＤＧＥ、ＩＥＥＥ８０２．１１、ライトフィデリティ（Ｌｉ−Ｆｉ）、８０２．１６、ＩＥＥＥ８０２．１１ｓ、ＩＥＥＥ８０２．１１ｇ、マルチホップ通信、無線アクセスポイント（ＡＰ）、デバイス間（device  to  device）通信、セルラー通信プロトコル、及び／又はＢｌｕｅｔｏｏｔｈ（登録商標）（ＢＴ）通信プロトコル、あるいは、それらの組み合わせがある。
【００２８】
本開示の適用範囲から逸脱することなしに、予測システム１０２に対して変更、追加、又は削除が行われてよい。例えば、予測システム１０２は、複数のウェブＡＰＩの中の特定のウェブＡＰＩについてのエンドポイントに関連した真記述又は偽記述の１つとして入力の組を分類するよう集合的に動作し得るサーバの分散ネットワークであってよい。
【００２９】
図２は、本開示で記載される少なくとも１つの実施形態に従って配置される、ＡＰＩドキュメンテーションからＡＰＩエンドポイント記述を予測する予測システムの例のブロック図である。図２は、図１からの要素との関連で説明される。図２を参照して、例となる予測システム２０２のブロック図２００が示されている。例となる予測システム２０２は、プロセッサ２０４、メモリ２０６、永続性データストレージ２０８、及びネットワークインターフェイス２１０を含んでよい。例となる予測システム２０２は、図１の予測システム１０２に対応してよい。
【００３０】
プロセッサ２０４は、例となる予測システム２０２によって実行される種々の動作に関連したプログラム命令を実行するよう構成され得る適切なロジック、回路構成、及び／又はインターフェイスを有してよい。例えば、動作のいくつかは、ラベル付きリポジトリ１０４からウェブＡＰＩに関連した複数の真のエンドポイント記述を取り出すこと、ドキュメンテーションコーパスを読み出すこと、読み出されたドキュメンテーションコーパスから複数の偽のエンドポイント記述を決定すること、訓練データセットを構成すること、訓練データセットに基づいてＭＬモデル１０２Ａを取得して、所与の入力をエンドポイントに関連した真記述又は偽記述の１つとして分類すること、などを含んでよい。プロセッサ２０４は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な特別目的又は汎用のコンピュータ、コンピューティングエンティティ、又はプロセッシングデバイスを含んでよく、任意の適用可能なコンピュータ可読記憶媒体に記憶されている命令を実行するよう構成されてよい。例えば、プロセッサ２０４は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは、プログラム命令を解釈及び／若しくは実行するよう並びに／又はデータを処理するよう構成された任意の他のデジタル又はアナログ回路構成を含んでよい。図２には単一のプロセッサとして表されているが、プロセッサ２０４は、本開示で記載される例となる予測システム２０２の任意数の動作を個別的に又は集合的に実行するか又はその実行を指示するよう構成された任意数のプロセッサを含んでよい。更には、１つ以上のプロセッサが、異なるサーバのような、１以上の異なる電子デバイスに存在してもよい。
【００３１】
いくつかの実施形態で、プロセッサ２０４は、メモリ２０６及び／又は永続性データストレージ２０８に記憶されているプログラム命令を解釈及び／若しくは実行するよう並びに／又は記憶されているデータを処理するよう構成されてよい。いくつかの実施形態で、プロセッサ２０４は、データストレージ２０８からプログラム命令をフェッチし、プログラム命令をメモリ２０６にロードしてよい。プログラム命令がメモリ２０６内にロードされた後、プロセッサ２０４はプログラム命令を実行してよい。プロセッサ２０４の例のいくつかは、ＧＰＵ、ＣＰＵ、ＲＩＳＣプロセッサ、ＡＳＩＣプロセッサ、ＣＩＳＣプロセッサ、コプロセッサ、及び／又はそれらの組み合わせであってよい。
【００３２】
メモリ２０６は、プロセッサ２０４によって実行可能なプログラム命令を記憶するよう構成され得る適切なロジック、回路構成、及び／又はインターフェイスを有してよい。特定の実施形態で、メモリ２０６は、オペレーティングシステム及び関連するアプリケーション固有情報を記憶するよう構成されてよい。メモリ２０６は、コンピュータ実行可能な命令又はデータ構造を運ぶか又は記憶しているコンピュータ可読記憶媒体を含んでよい。かようなコンピュータ可読記憶媒体は、プロセッサ２０４のような汎用又は特別目的のコンピュータによってアクセスされ得る任意の利用可能な媒体を含んでよい。
【００３３】
一例として、制限なしに、かようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、電気的消去可能なプログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、コンパクトディスク・リードオンリーメモリ（ＣＤ−ＲＯＭ）若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス（例えば、ソリッドステートメモリデバイス）、あるいは、コンピュータ実行可能な命令又はデータ構造の形で特定のプログラムコードを搬送又は記憶するために使用され得且つ汎用又は特別目的のコンピュータによってアクセスされ得る任意の他の記憶媒体を含む有形な又は非一時的なコンピュータ可読記憶媒体を含んでよい。上記のものの組み合わせも、コンピュータ可読記憶媒体の範囲内に含まれ得る。コンピュータ実行可能命令は、例えば、プロセッサ２０４に、例となる予測システム２０２に関連した特定の動作又は動作群を実行させるよう構成された命令及びデータを含んでよい。
【００３４】
永続性データストレージ２０８は、プロセッサ２０４によって実行可能なプログラム命令、オペレーティングシステム、並びに／又はログ及びアプリケーション固有データベースのようなアプリケーションを記憶するよう構成され得る適切なロジック、回路構成、及び／又はインターフェイスを有してよい。永続性データストレージ２０８は、コンピュータ実行可能な命令又はデータ構造を運ぶか又は記憶しているコンピュータ可読記憶媒体を含んでよい。かようなコンピュータ可読記憶媒体は、プロセッサ２０４のような汎用又は特別目的のコンピュータによってアクセスされ得る任意の利用可能な媒体を含んでよい。
【００３５】
一例として、制限なしに、かようなコンピュータ可読記憶媒体は、コンパクトディスク・リードオンリーメモリ（ＣＤ−ＲＯＭ）若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス（例えば、ハードディスクドライブ（ＨＤＤ））、フラッシュメモリデバイス（例えば、ソリッドステートドライブ（ＳＳＤ）、セキュアデジタル（ＳＤ）カード、他のソリッドステートメモリデバイス）、あるいは、コンピュータ実行可能な命令又はデータ構造の形で特定のプログラムコードを搬送又は記憶するために使用され得且つ汎用又は特別目的のコンピュータによってアクセスされ得る任意の他の記憶媒体を含む有形な又は非一時的なコンピュータ可読記憶媒体を含んでよい。上記のものの組み合わせも、コンピュータ可読記憶媒体の範囲内に含まれ得る。コンピュータ実行可能命令は、例えば、プロセッサ２０４に、例となる予測システム２０２に関連した特定の動作又は動作群を実行させるよう構成された命令及びデータを含んでよい。
【００３６】
ネットワークインターフェイス２１０は、通信ネットワーク１０８を介した、例となる予測システム２０２及びラベル付きリポジトリ１０４の間の通信を確立するよう構成され得る適切なロジック、回路構成、インターフェイス、及び／又はコードを有してよい。ネットワークインターフェイス２１０は、通信ネットワーク１０８を介した例となる予測システム２０２の有線又は無線通信をサポートするように様々な既知の技術の使用によって実装されてよい。ネットワークインターフェイス２１０は、制限なしに、アンテナ、無線周波数（ＲＦ）トランシーバ、１つ以上の増幅器、チューナ、１つ以上の発振器、デジタル信号プロセッサ、コーダ−デコーダ（ＣＯＤＥＣ）チップセット、加入者識別モデル（Subscriber  Identity  Module，ＳＩＭ）カード、及び／又はローカルバッファを含んでよい。
【００３７】
ネットワークインターフェイス２１０は、インターネット、イントラネット、並びに／又は無線ネットワーク、例えば、セルラー電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）及び／若しくはメトロポリタンエリアネットワーク（ＭＡＮ）のようなネットワークと無線通信を介して通信してよい。無線通信は、ＧＳＭ(登録商標)（Global  System  for  Mobile  Communications）、ＥＤＧＥ（Enhanced  Data  GSM  Environment）、広帯域符号分割多重アクセス（Wideband  Code  Division  Multiple  Access，Ｗ−ＣＤＭＡ）、ロングタームエボリューション（Long  Term  Evolution，ＬＴＥ）、符号分割多重アクセス（ＣＤＭＡ）、時分割多重アクセス（Time  Division  Multiple  Access，ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、ワイヤレスフィデリティ（Ｗｉ−Ｆｉ）（例えば、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ及び／又はＩＥＥＥ８０２．１１ｎ）、ボイスオーバーインターネットプロトコル（Voice  over  Internet  Protocol，ＶｏＩＰ）、ライトフィデリティ（Ｌｉ−Ｆｉ）、あるいはＷｉ−ＭＡＸのような、複数の通信規格、プロトコル及び技術のいずれかを使用してよい。
【００３８】
特定の実施形態で、例となる予測システム２０２は、フロントエンドサブシステムとバックエンドサブシステムとに分けられてよい。フロントエンドサブシステムは、もっぱら、サードパーティサーバ、ウェブサーバ、クライアントマシン、ユーザエンドデバイス、及びバックエンドサブシステムのうちの１つ以上から要求／命令を受信するよう構成されてよい。そのような要求はバックエンドサブシステムへ返送されてもよく、バックエンドサブシステムはそのような要求に従って動作するよう構成されてよい。例えば、例となる予測システム２０２が複数のサーバを含む場合に、２、３のサーバは、バックエンドサブシステムに関連した残りのサーバへ要求／命令を中継するよう構成されたフロントエンドサーバであってよい。バックエンドサブシステムはまた、訓練データセットに対して訓練されるとＭＬモデル１０２Ａを記憶してよい。本開示の適用範囲から逸脱することなしに、例となる予測システム２０２に対して変更、追加、又は削除が行われてよい。例えば、いくつかの実施形態で、例となる予測システム２０２は、明示的には図示又は記載されていないことがある任意数の他のコンポーネントを含んでもよい。
【００３９】
図３は、本開示で記載される少なくとも１つの実施形態に従って、ＡＰＩドキュメンテーションからＡＰＩエンドポイント記述を予測する方法の例のフローチャートを表す。図３は、図１及び図２からの要素との関連で説明される。図３を参照して、フローチャート３００が示されている。フローチャート３００で表されている方法は３０２から開始してよく、任意の適切なシステム、装置、又はデバイスによって、例えば、図２の例となる予測システム２０２によって、実行されてよい。
【００４０】
３０２で、複数のウェブＡＰＩに関連した複数の真のエンドポイント記述が、ラベル付きリポジトリ１０４から取り出されてよい。１つ以上の実施形態で、プロセッサ２０４は、複数のウェブＡＰＩに関連した複数の真のエンドポイント記述をラベル付きリポジトリ１０４から取り出すよう構成されてよい。ラベル付きリポジトリ１０４は、複数のウェブＡＰＩに関連した複数の構造化された仕様文書１１０を含んでよい。複数の構造化された仕様文書１１０の中の各構造化された仕様文書は、ファイルタイプに関連してよい。文書タイプの例には、制限なしに、ハイパーテキストマークアップ言語（ＨＴＭＬ）、ポータブルドキュメントフォーマット（ＰＤＦ）、ユニコードプレーンテキスト（ＴｘＴ）、オープンＸＭＬドキュメント（ＤＯＣＸ）、コンマ区切り値（ＣＳＶ）、拡張可能マークアップ言語（ＸＭＬ）、及びリッチテキストドキュメント（ＲＴＦ）がある。更には、各構造化された仕様文書は、複数のウェブＡＰＩの中の対応するウェブＡＰＩに関連した複数のフィールドにマッピングされた情報を含んでよい。情報は、制限なしに、ＡＰＩタイトル、エンドポイント名、及びエンドポイント記述を含んでよい。また、ある実施形態では、情報は、ＡＰＩ記述、入力パラメータ記述、出力パラメータ記述、一次カテゴリ、二次カテゴリ、及び１つ以上のタグを含んでもよい。更には、エンドポイント記述フィールドにマッピングされた情報の部分は、真のエンドポイント記述としてマークされてよく、更には、構造化された仕様文書から取り出されてもよい。同様に、他の構造化された仕様文書からの真のエンドポイント記述が識別され取り出されてもよい。例となる構造化された仕様文書内の真のエンドポイント記述の例は、図４Ａ及び図４Ｂで与えられている。
【００４１】
３０４で、複数のウェブＡＰＩに関連したドキュメンテーションコーパス１０６が読み出されてよい。１つ以上の実施形態で、プロセッサ２０４は、１つ以上のコンピュータベースのソースからドキュメンテーションコーパス１０６を読み出すよう構成されてよい。ドキュメンテーションコーパス１０６は、対応するウェブＡＰＩの集合に関連した文書の集合１１２を含んでよい。文書の集合１１２内の文書の例には、制限なしに、ＡＰＩドキュメンテーション、ＡＰＩ仕様文書、ＡＰＩリポジトリ上のウェブページ、ＡＰＩマップアップ、及び使用ガイドがある。
【００４２】
一例として、ドキュメンテーションコーパス１０６は、ＡＰＩプロバイダのウェブサイトからのＡＰＩ文書（例えば、ｈｔｍｌページ）の集合を含むＡＰＩドキュメンテーションのコーパスに対応してよい。ドキュメンテーションコーパス１０６内の文書の集合は、構造化されていない様態で配置されている複数のウェブＡＰＩに関連した情報を有してよい。例えば、構造化された仕様では、エンドポイント名についてのエンドポイント記述は、エンドポイントの位置を囲むセンテンスに存在してよく、一方、構造化されていない仕様では、エンドポイント名を囲むセンテンスのいくつかは、エンドポイントの偽記述を含むことがある。
【００４３】
３０６で、複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述が、読み出されたドキュメンテーションコーパス１０６及び取り出された複数の真のエンドポイント記述に基づいて決定されてよい。一般に、偽のエンドポイント記述は、所与のエンドポイントについての真のエンドポイント記述のそれとは意味的及び／又は文脈的に異なっているセンテンス（又はセンテンスの組）に対応してよい。１つ以上の実施形態で、プロセッサ２０４は、読み出されたドキュメンテーションコーパス１０６及び取り出された複数の真のエンドポイント記述に基づいて、複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定するよう構成されてよい。複数の偽のエンドポイント記述を決定するために、ウェブＡＰＩに関連する、ドキュメンテーションコーパス１０６内の複数の文書の中の各文書は、パースされてよく、その文書内でエンドポイント名を囲む特定のテキスト部分が集められてよい。更には、例えば、集められた特定のテキスト部分と対応するウェブＡＰＩについての真のエンドポイント記述との間のセンテンス類似性演算のような、１つ以上の自然言語処理動作が、実行されてもよい。集められた特定のテキスト部分内のセンテンスは、センテンス類似度が低い場合に、対応するウェブＡＰＩについての偽のエンドポイント記述として識別され得る。複数の偽のエンドポイント記述の決定のプロセスの詳細は、例えば、図５Ａ、図５Ｂ、及び図５Ｃで与えられている。
【００４４】
特定の実施形態で、プロセッサ２０４は、複数のウェブＡＰＩに関連した初期データセットを構成するよう構成されてよい。初期データセットは、取り出された複数の真のエンドポイント記述、読み出されたドキュメンテーションコーパス１０６、及び決定された複数の偽のエンドポイント記述に基づいて構成されてよい。初期データセットは、複数のカテゴリ変数及びバイナリ変数（すなわち、ＭＬモデル１０２Ａを訓練するための出力ラベル）を有するデータベーステーブルに対応してよい。複数のカテゴリ変数は、制限なしに、ＡＰＩ名、エンドポイント名、及びエンドポイント記述を含んでよい。同様に、バイナリ変数は、エンドポイント記述がエンドポイント名の真記述であるかどうかを示してよい。初期データセットは、ＭＬモデル１０２Ａを訓練するために使用され得る訓練データセットについての異なる特徴を取り出すために、構築されてよい。
【００４５】
一例として、真（True）及び偽（False）のエンドポイント記述を有するデータセットの例が、表１に与えられている。真及び偽のエンドポイント記述の数は同様であると仮定される。表１は、次のように与えられる：
【表１】
2020191076.tif 000003
【００４６】
３０８で、複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報が、取り出された複数の真のエンドポイント記述、読み出されたドキュメンテーションコーパス、及び決定された複数の偽のエンドポイント記述に基づいて取り出されてよい。ある実施形態では、複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報は、構成された初期データセットに基づいて取り出されてよい。
【００４７】
１つ以上の実施形態で、プロセッサ２０４は、複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を取り出すよう構成されてよい。複数の特徴は、制限なしに、エンドポイントベクトル特徴、記述ベクトル特徴、ＨＴＴＰメソッド特徴、コサイン類似性特徴、ｓｐａｃｙ類似性特徴、セッションセグメント特徴、記述タグ特徴、トークン数特徴、又はエンドポイント名数特徴を含んでよい。
【００４８】
実施形態において、構成された初期データセット内の各エンドポイント名のエンドポイントベクトルが計算されてよい。エンドポイントベクトルは、構成された初期データセット内の対応するエンドポイント名のワードベクトル表現（すなわち、ワード埋め込み（word  embedding））として計算されてよい。エンドポイントベクトルは、エンドポイントベクトル内のワードの組にわたって統語的及び意味的関係を捕らえてよい。より具体的には、エンドポイントベクトルは、エンドポイント名内のワードを多次元の連続した浮動小数点として表し、意味的に類似したワードは、幾何学空間において近接した点にマッピングされる。別の言い方をすれば、エンドポイントベクトルは、実数値数の行として表されてよく、各点は、ワードの意味の次元を捕らえてよく、意味的に類似したワードは、類似したワードベクトルを有してよい。例えば、「タイヤ」（tire）及び「ホイール」（wheel）のワードベクトルは、「車両」（vehicle）のそれと類似するはずである。更に、構成された初期データセット内の各エンドポイント記述の記述ベクトルが計算されてよい。エンドポイントベクトルと同様に、記述ベクトルも、エンドポイント記述のワードベクトル表現（すなわち、ワード埋め込み）であってよい。
【００４９】
実施形態において、コサイン類似性スコアは、各エンドポイントベクトルと、構成された初期データセット内の対応するエンドポイント記述についての計算された記述ベクトルとの間で、計算されてよい。よって、コサイン類似性スコアは、２つの非ゼロベクトル、すなわち、エンドポイントベクトル及び記述ベクトルの間の類似性の指標であってよい。類似性の指標は、エンドポイントベクトルと記述ベクトルとの間の角度のコサインを測定する内積から取得されてよい。一例として、コサイン類似性スコアは、エンドポイントベクトルと記述ベクトルとの相対的な向きの指標であってよく、大きさではない。従って、エンドポイントベクトル及び記述ベクトルが同じ向きを有している場合に、コサイン類似性スコアは“１”であってよい。一方、エンドポイントベクトル及び記述ベクトルが互いに対して“９０°”で方向付けられている場合には、コサイン類似性スコアは“０”であってよい。更には、実施形態において、ｓｐａｃｙ類似性スコアは、構成された初期データセット内の各エンドポイント名と対応するエンドポイント記述との間で計算されてよい。コサイン類似性スコアと同様に、ｓｐａｃｙ類似性スコアは、ワードベクトルの平均（例えば、ワード表現のためのグローバルベクトル（Global  vectors，Ｇｌｏｖｅ）のｗｏｒｄ２ｖｅｃモデルを使用して取得される。）に対する類似性の指標を提供し得る。ある場合に、ｓｐａｃｙ類似性スコアは、見知らぬ（unseen）／クリーンでない（unclean）テキストが構成された初期データセット内のエンドポイント名又は対応するエンドポイント記述のどちら一方に存在するときにゼロ（“０”）と計算されてよい。
【００５０】
実施形態において、対応するエンドポイント名についてのＨＴＴＰメソッドの存在が、読み出されたドキュメンテーションコーパス１０６において決定されてよい。更には、読み出されたドキュメンテーションコーパス１０６内の対応するエンドポイント名についてＨＴＴＰメソッドが存在するとの決定に基づいて、対応するエンドポイント名についてのＨＴＴＰメソッドが識別されてよい。また、読み出されたドキュメンテーションコーパス１０６内の対応するエンドポイント名についてＨＴＴＰメソッドが不存在であるとの決定に基づいて、ＨＴＴＰメソッドは、対応するエンドポイント名について“ＮＯＮＥ”と設定されてよい。バイナリ変数としてＨＴＴＰメソッドを使用することに代えて、それはカテゴリ変数と見なされてもよい。例えば、“７”つの異なるカテゴリがある。例えば、ＨＴＴＰメソッドは、ＧＥＴ、ＰＯＳＴ、ＰＵＴ、ＰＡＴＣＨ、ＤＥＬＥＴＥ、ＯＰＴＩＯＮＳ、又はＨＥＡＤのうちの１つであってよい。
【００５１】
実施形態において、読み出されたドキュメンテーションコーパス１０６からの対応するエンドポイント名についての対応するエンドポイント記述の１つ以上のセンテンスの存在が、対応するエンドポイント名のそれと同じセッションにあると決定されてよい。更には、１つ以上のセンテンスが対応するエンドポイント名のそれと同じセッションに存在するとの決定に基づいて、セッションセグメント値はイチ（“１”）と設定されてよい。一方、セッションセグメント値は、１つ以上のセンテンスが対応するエンドポイント名のそれと同じセッションに存在しないとの決定に基づいてゼロ（“０”）と設定されてよい。
【００５２】
実施形態において、対応するエンドポイント名についてのエンドポイント記述タグの存在が、読み出されたドキュメンテーションコーパス１０６において決定されてよい。更には、読み出されたドキュメンテーションコーパス１０６内の対応するエンドポイント名についてエンドポイント記述タグが存在しないとの決定に基づいて、記述タグ値は、対応するエンドポイント名についてゼロと設定されてよい。一方、読み出されたドキュメンテーションコーパス１０６内の対応するエンドポイント名についてエンドポイント記述タグが存在するとの決定に基づいて、エンドポイント記述タグのワードベクトル表現が生成されてよい。あるシナリオでは、文書においてワード“Description”（記述）を単に調べることに代えて、ＡＰＩドキュメンテーションがワード“Descritpion”よりもむしろＨＴＭＬタグについての他のワードをしばしば含むということで、記述タグ特徴は、より一般的な特徴に拡張されてよい。そのようなＨＴＭＬタグ（すなわち、エンドポイント名に対してセンテンスの前の“Ｍ”及びセンテンスの後の“Ｎ”の範囲内にある。）は取り出されて、ワード埋め込みモデルを用いて各々のワードベクトル表現に変換されてよい。それらのベクトル自体は、モデルを訓練するために特徴として使用され得る。一例として、ワードベクトル表現は、ＧｌｏＶｅのｗｏｒｄ２ｖｅｃモデルを用いて取得されてよい。その後に、生成されたワードベクトル表現は、記述タグ値として設定されてよい。
【００５３】
実施形態において、トークンの数は、構成された初期データセット内の対応するエンドポイント名についての対応するエンドポイント記述から推定されてよい。トークンの数は、対応するエンドポイント記述内のワードの数及び特殊文字の数を含んでよい。更には、実施形態において、対応するエンドポイント名の出現数が、対応するエンドポイント記述において推定されてよい。
【００５４】
１つ以上の実施形態で、プロセッサ２０４は、エンドポイントベクトル、記述ベクトル、コサイン類似性スコア、及びｓｐａｃｙ類似性スコアを計算し、ＨＴＴＰメソッドを決定し、セッションセグメント値、記述タグ値、及びエンドポイント名の出現数を決定し、トークンの数を推定するよう構成されてよい。
【００５５】
３１０で、取り出された特徴情報に基づいて訓練データセットが生成されてよい。１つ以上の実施形態で、プロセッサ２０４は、取り出された特徴情報に基づいて訓練データセットを生成するよう構成されてよい。より具体的には、訓練データセットは、計算されたエンドポイントベクトル、計算された記述ベクトル、計算されたコサイン類似性スコア、計算されたｓｐａｃｙ類似性スコア、識別されたＨＴＴＰメソッド、設定されたセッションセグメント値、設定された記述タグ値、推定されたトークンの数、及び対応するエンドポイント名の決定された出現数に基づいて、生成されてよい。例となる訓練データセットは、次のように、表２で与えられている：
【表２】
2020191076.tif 000004
ここで、表２中、「endpoint_vector」は、計算されたエンドポイントベクトルに対応し、「desc_vector」は、計算された記述ベクトルに対応し、“http  path”は、識別されたＨＴＴＰメソッドに対応し、“spacy_score”は、計算されたｓｐａｃｙ類似性スコアに対応し、“token_count”は、推定されたトークンの数に対応し、“ses_seg”は、設定されたセッションセグメント値に対応し、“desc  tag”は、設定された記述タグ値に対応し、“desc  count”は、推定された出現数に対応し、“cos_sc”は、計算されたコサイン類似性スコアに対応する。また、表２中、“is  desc”は、対応するエンドポイント記述が“偽”である場合に“０”であり、対応するエンドポイント記述が“真”である場合に“１”である出力ラベルに対応し、表１中の“IsDescription”フィールドに基づいて取得されてよい。
【００５６】
３１２で、生成された訓練データセットに基づいてＭＬモデル１０２Ａが取得されてよい。より具体的には、ＭＬモデル１０２Ａは、生成された訓練データセット内の取り出された特徴情報に基づいて、訓練されてよい。１つ以上の実施形態で、プロセッサ２０４は、生成された訓練データセットに基づいてＭＬモデル１０２Ａを取得するよう構成されてよい。ＭＬモデル１０２Ａは、訓練データセット内の特徴情報のような入力と、偽記述については“０”及び真記述については“１”のような出力ラベルとの間の関係を識別するように訓練され得る、ディープラーニングに基づく分類器に対応してよい。訓練データセット内の特徴情報に対する訓練のいくつかのエポック後に、ＭＬモデル１０２Ａについて、全てのハイパーパラメータがチューニングされ、重みが調整される（ＭＬモデル１０２Ａについてのコスト関数の最小値に近づくことによって最適化される）と、ＭＬモデル１０２Ａは、入力の組についての予測結果（例えば、“１”又は“０”）を出力するよう訓練されてよい。予測結果は、ＭＬモデル１０２Ａへの入力の組（例えば、ドキュメンテーションコーパス１０６内の新しい／見知らぬ文書から取り出された入力特徴）がエンドポイントに関連した真記述又は偽記述に対応するかどうかを示してよい。
【００５７】
１つ以上の実施形態で、ＭＬモデル１０２Ａは、第１段階及び第２段階を含む多段階ニューラルネットワークに基づくモデルであってよい。第１段階は、人工ニューラルネットワーク（ＡＮＮ）と並列に配置されたディープニューラルネットワーク（ＤＮＮ）の対を含んでよく、第２段階は、ＤＮＮの対からの第１出力の対と、ＡＮＮからの第２出力とをマージするマージ層を含んでよい。第２段階からの出力は、ＭＬモデル１０２Ａの最終の出力、すなわち、予測結果であってよい。訓練動作は、ＭＬモデル１０２Ａの訓練エラー又はコスト費用が最小限にされるまで、ＭＬモデル１０２Ａに対して実行されてよい。ＭＬモデル１０２Ａに対応するＭＬモデルの例は、例えば、図７で、与えられている。
【００５８】
３１４で、ＭＬモデル１０２Ａ（すなわち、訓練されたＭＬモデル）が、例となる予測システム２０２で展開されてよい。１つ以上の実施形態で、プロセッサ２０４は、例となる予測システム２０２でＭＬモデル１０２Ａを展開するよう構成されてよい。展開されると、ＭＬモデル１０２Ａは、特定のウェブＡＰＩについてのエンドポイントに関連した入力の組を受け取り、受け取られた入力の組がエンドポイントに関連した真記述又は偽記述に対応するかどうかを示す予測結果を出力するよう構成されてよい。
【００５９】
３１６で、入力の組がＭＬモデル１０２Ａへ供給されてよい。入力の組は、複数のウェブＡＰＩの中の特定のウェブＡＰＩについてのエンドポイントに関連してよい。１つ以上の実施形態で、プロセッサ２０４は、入力の組をＭＬモデル１０２Ａへ供給するよう構成されてよい。例えば、入力の組は、エンドポイントベクトル、記述ベクトル、及び他の入力特徴（例えば、表２に示される。）のような入力特徴であってよく、ＭＬモデル１０２Ａに対する新しい／見知らぬ文書から取得されてよい。すなわち、入力の組は、出力ラベルが指定されていない文書内のセンテンスから導出されてよい。一方、初期データセット内の各センテンスは、対応するセンテンスがウェブＡＰＩのエンドポイントについて真記述又は偽記述であるかどうかを示すように真（True）又は偽（False）のような出力ラベルと関連付けられてよい。
【００６０】
３１８で、供給された入力の組は、供給された入力の組についての訓練されたＭＬモデルの予測結果に基づいて、エンドポイントに関連した真記述又は偽記述の１つとして分類されてよい。１つ以上の実施形態で、プロセッサ２０４は、供給された入力の組を、エンドポイントに関連した真記述又は偽記述の１つとして分類するよう構成されてよい。
【００６１】
一例として、ドキュメンテーションコーパス１０６内の文書から、エンドポイント名「/oauth/token」を囲む２つの異なった例となるセンテンスが、取り出されてよい。これら２つの異なった例となるセンテンスは、次のように、表３に示される：
【表３】
2020191076.tif 000005
センテンス１及びセンテンス２（すなわち、２つの異なった例となるセンテンス）の夫々について、対応する入力の組が導出され、ＭＬモデル１０２Ａへ供給されてよい。対応する入力の組は、例えば、制限なしに、記述ベクトル及びエンドポイントベクトルのような、特徴を含んでよい。ＭＬモデル１０２Ａは、センテンス１及びセンテンス２の夫々についての予測結果を出力するよう構成されてよい。予測結果は、次のように、表４に示され得る：
【表４】
2020191076.tif 000006
【００６２】
表４から、予測結果は、センテンス１については“０”であり、センテンス２については“１”であることが分かる。これは、センテンス１が「/oauth/token」エンドポイントに対する偽記述であり、センテンス２が「/oauth/token」エンドポイントに対する真記述であることを示し得る。更に、制御は終了に移ってよい。フローチャート３００は、３０２、３０４、３０６、３０８、３１０、３１２、３１４、３１６、及び３１８のような別個の動作として表されているが、特定の実施形態では、かような別個の動作は更に、開示される実施形態の本質から外れることなしに、特定の実施に応じて、更なる動作に分けられても、より少ない動作へとまとめられても、あるいは削除されてもよい。
【００６３】
図４Ａ及び図４Ｂは集合的に、本開示で記載される少なくとも１つの実施形態に従って、ラベル付きリポジトリ内の文書の例を表す。図４Ａ及び図４Ｂは、図１、図２及び図３からの要素との関連で説明される。図４Ａ及び図４Ｂを参照して、。例となるウェブＡＰＩ（ここでは説明のためにＭｕｓｉｆｉｅｄ  ＡＰＩと呼ばれる。）についての第１の構造化された仕様文書４００Ａ及び第２の構造化された仕様文書４００Ｂを含む構造化された仕様文書の組が示されている。第１の構造化された仕様文書４００Ａ及び第２の構造化された仕様文書４００Ｂの夫々は、例となるラベル付きリポジトリから読み出されてよい。
【００６４】
第１の構造化された仕様文書４００Ａは、Ｍｕｓｉｆｉｅｄ  ＡＰＩに属するウェブ文書であってよく、マークアップ／コード内でＭｕｓｉｆｉｅｄ  ＡＰＩに関連した第１情報部分を含んでよい。より具体的には、Ｍｕｓｉｆｉｅｄ  ＡＰＩに関連した第１情報部分は、第１の構造化された仕様文書４００Ａにおいて１つ以上のマークアップタグ及び／マークアップカテゴリによって指定されてよい。図示されるように、第１の構造化された仕様文書４００Ａは、「title:  Musified」としてのＡＰＩタイトル４０２及び「description:  Our  Web  API  lets  your  applications  fetch  data  from  Musified  music  catalog  and  manage  user’s  playlists  and  saved  music.」（記述：私たちのウェブＡＰＩは、あなたのアプリケーションがＭｕｓｉｆｉｅｄ音楽カタログからデータを取得し、ユーザのプレイリスト及びセーブされた音楽を管理できるようにします。）としてのＡＰＩ記述４０４を含む。
【００６５】
第２の構造化された仕様文書４００Ｂも、Ｍｕｓｉｆｉｅｄ  ＡＰＩに属するウェブ文書であってよく、マークアップ／コード内でＭｕｓｉｆｉｅｄ  ＡＰＩに関連した第２情報部分を含んでよい。より具体的には、Ｍｕｓｉｆｉｅｄ  ＡＰＩに関連した第２情報部分も、第２の構造化された仕様文書４００Ｂにおいて１つ以上のマークアップタグ及び／マークアップカテゴリによって指定されてよい。図示されるように、第２の構造化された仕様文書４００Ｂは、「albums/{id}」としてのエンドポイント名４０６、「[Get  an  album]  (https://developer.musified.com/web-api/get-album/)」としてのエンドポイント記述４０８、及び「The  Musified  ID  for  the  album」としてのＡＰＩ入出力パラメータ記述４１０を含む。
【００６６】
１つ以上の実施形態で、プロセッサ２０４は、第１の構造化された仕様文書４００Ａ及び第２の構造化された仕様文書４００Ｂの夫々をパースして、エンドポイント名４０６についてのエンドポイント記述４０８を取り出すよう構成されてよい。取り出されたエンドポイント記述４０８は、エンドポイント名４０６についての真のエンドポイント記述として識別（又はマーク）されてよい。
【００６７】
図５Ａ、図５Ｂ、及び図５Ｃは集合的に、本開示で記載される少なくとも１つの実施形態に従って、ウェブＡＰＩに関連した偽のエンドポイント記述を決定する方法の例のフローチャートを表す。図５Ａ、図５Ｂ、及び図５Ｃは、図１、図２、図３、図４Ａ、及び図４Ｂからの要素との関連で説明される。図５Ａ、図５Ｂ、及び図５Ｃを参照して、フローチャート５００が示されている。フローチャート５００で表されている方法は５０２から開始してよく、任意の適切なシステム、装置、又はデバイスによって、例えば、図２の例となる予測システム２０２によって、実行されてよい。
【００６８】
５０２で、対応する複数のウェブＡＰＩに関連した複数の文書が、読み出されたドキュメンテーションコーパス１０６から識別されてよい。ドキュメンテーションコーパス１０６は、対応するＡＰＩの集合に関連した文書の集合１１２を含んでよい。１つ以上の実施形態で、プロセッサ２０４は、対応する複数のウェブＡＰＩに関連した複数の文書を、読み出されたドキュメンテーションコーパス１０６から識別するよう構成されてよい。
【００６９】
５０４で、識別された複数の文書の中の各文書においてエンドポイント名の位置が識別されてよい。エンドポイント名は、複数のＡＰＩの中の対応するウェブＡＰＩの対応するエンドポイントのためのものであってよい。１つ以上の実施形態で、プロセッサ２０４は、識別された複数の文書の中の各文書においてエンドポイント名の位置を識別するよう構成されてよい。例となる文書からのエンドポイント名の位置の例は、例えば、図６で、与えられている。
【００７０】
５０６で、エンドポイント名の決定された位置に先行する第１の組のセンテンスが、識別された複数の文書の中の各文書から読み出されてよい。１つ以上の実施形態で、プロセッサは、エンドポイント名の決定された位置に先行する第１の組のセンテンスを、識別された複数の文書の中の各文書から読み出すよう構成されてよい。
【００７１】
５０８で、エンドポイント名の前記決定された位置の後に続く第２の組のセンテンスが、識別された複数の文書の中の各文書から読み出されてよい。１つ以上の実施形態で、プロセッサ２０４は、エンドポイント名の前記決定された位置の後に続く第２の組のセンテンスを、識別された複数の文書の中の各文書から読み出すよう構成されてよい。
【００７２】
１つ以上の実施形態で、第１の組のセンテンス及び第２の組のセンテンスは、更に、複数の文書の中の対応する文書に対するセンテンストークナイゼーション（tokenization）動作（例えば、自然言語ツールキット（Natural  Language  Toolkit，ＮＬＴＫ）、Ｓｐａｃｙ又は他の類似したＮＬＰツールを使用することによる。）の適用に基づき、読み出されてもよい。センテンストークナイゼーション動作において、テキストのストリーム（例えば、センテンス）は、複数のセンテンス・トークン（又は複数のセンテンス）とも呼ばれ得るセンテンス、ワード、フレーズ、シンボル、又は他の有意味な要素に分解されてよい。更に、センテンストークナイゼーション動作の適用後、複数のセンテンスの中の各センテンスは、ストップワード（stopping  word）、シンボル、特殊文字、２つの文字の間のスペース、又は短文センテンス、エンドポイント記述として使用され得ないいくつかの明らかに“悪い”センテンス、及び短すぎるフレーズ／ワード（例えば、“１”ワード）のうちの１つ以上の除去に基づいて、フィルタをかけられてよい。また、ステミング（stemming）動作が、フィルタをかけられた複数のセンテンスの中の各センテンスに対して適用されてもよい。ステミング動作において、語根（root）／基体（base）ワードの形態的変異が、フィルタをかけられた複数のセンテンスの中の各センテンス内の対応するワードについて取得されてよい。より具体的には、ステミング動作は、フィルタをかけられた複数のセンテンスの中の各センテンス内のワードを語根ワード又は語根ワードの形態的変異に減らし得る。更には、いくつかの実施形態で、取り出された複数の真のエンドポイント記述の中の対応する真のエンドポイント記述で特定されたセンテンスの数（スパンとも呼ばれる。）が、対応するウェブＡＰＩの対応するエンドポイントについて決定されてもよい。
【００７３】
５１０で、対応する真のエンドポイント記述で特定されたセンテンスの数がイチ（“１”）であるかどうかが決定されてよい。１つ以上の実施形態で、プロセッサ２０４は、対応する真のエンドポイント記述で特定されたセンテンスの数がイチ（“１”）であるかどうかを決定するよう構成されてよい。対応する真のエンドポイント記述で特定されたセンテンスの数がイチ（“１”）である場合に、制御は５１２へ移ってよい。そうでない場合には、制御は５１８へ移ってよい。
【００７４】
５１２で、読み出された第１の組のセンテンスの中の各センテンスと対応する真のエンドポイント記述との間、及び読み出された第２の組のセンテンスの中の各センテンスと対応する真のエンドポイント記述との間で、センテンス類似性スコアが計算されてよい。センテンス類似性スコアは、対応する真のエンドポイント記述において特定されたセンテンスの数が１であるとの決定に基づいて計算されてよい。一例として、センテンス類似性は、読み出された第１の組のセンテンスの中の各センテンスのワードベクトル表現（ワード埋め込みによるベクトル空間に関する。）と対応する真のエンドポイント記述との間、及び読み出された第２の組のセンテンスの中の各センテンスのワードベクトル表現と対応する真のエンドポイント記述との間のｓｐａｃｙ類似性又はコサイン類似性のような、ＮＬＰツールに基づいて計算されてよい。
【００７５】
５１４で、計算された類似性スコアが最大である第１センテンスが、読み出された第１の組のセンテンス及び読み出された第２の組のセンテンスから決定されてよい。１つ以上の実施形態で、プロセッサ２０４は、計算された類似性スコアが最大である第１センテンスを、読み出された第１の組のセンテンス及び読み出された第２の組のセンテンスから決定するよう構成されてよい。
【００７６】
５１６で、複数の偽のエンドポイント記述が、読み出された第１の組のセンテンス及び読み出された第２の組のセンテンスの一方からの決定された第１センテンスの除去に基づいて、読み出された第１の組のセンテンス及び読み出された第２の組のセンテンスから決定されてよい。すなわち、読み出された第１の組のセンテンス（例えば、“Ｍ”個のセンテンス）及び読み出された第２の組のセンテンス（例えば、“Ｎ”個のセンテンス）の中の第１センテンスを除いた全てのセンテンス（すなわち、“Ｎ＋Ｍ−１”個のセンテンス）は、対応するエンドポイントについての偽のエンドポイント記述と見なされ得る。一方、第１センテンス（すなわち、最も類似度が高いセンテンス）は、真のエンドポイント記述と見なされ得る。１つ以上の実施形態で、プロセッサ２０４は、読み出された第１の組のセンテンス及び読み出された第２の組のセンテンスから複数の偽のエンドポイント記述を決定するよう構成されてよい。
【００７７】
５１８で、第１の組のｎ−ｇｒａｍが、読み出された第１の組のセンテンスから生成されてよく、第２の組のｎ−ｇｒａｍが、読み出された第２の組のセンテンスから生成されてよい。第１の組のｎ−ｇｒａｍ及び第２の組のｎ−ｇｒａｍは、対応する真のエンドポイント記述において特定されたセンテンスの数が１よりも大きいとの決定に基づいて、生成されてよい。例えば、第１の組のセンテンス、第２の組のセンテンス、及び真のエンドポイント記述についての例となるテンプレートは、次のように、表５で与えられる：
【表５】
2020191076.tif 000007
表５に基づき、真のエンドポイント記述は２つのセンテンス（すなわち、真のセンテンス１及び真のセンテンス２）を含み、従って、第１の組のバイグラム（bi-gram）（ｎ＝２）及び第２の組のバイグラムは生成され得ることが分かる。第１の組のバイグラム及び第２の組のバイグラムについての例となるテンプレートは、次のように、表６で与えられる：
【表６】
2020191076.tif 000008
【００７８】
５２０で、生成された第１の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍと対応する真のエンドポイント記述との間で、第１の組のセンテンス類似性スコアが推定されてよい。１つ以上の実施形態で、プロセッサ２０４は、生成された第１の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍと対応する真のエンドポイント記述との間で第１の組のセンテンス類似性スコアを推定するよう構成されてよい。ある事例では、各ｎ−ｇｒａｍと対応する真のエンドポイント記述との間のセンテンス類似性スコアは、各ｎ−ｇｒａｍのワードベクトル表現と対応する真のエンドポイント記述との間の類似性尺度に対応してよい。類似性尺度は、制限なしに、コサイン類似性、ｓｐａｃｙ類似性、又は他のＮＬＰに基づく類似性尺度方法であってよい。
【００７９】
一例として、表６中のバイグラム（センテンス３１，センテンス２１）について、対応するセンテンス類似性スコアは、次のように推定され得る：
センテンス類似性スコア（Ｓ１）
＝Ｓｉｍｉｌａｒｉｔｙ（センテンス３１，ＴＳ１）    （１）
センテンス類似性スコア（Ｓ２）
＝Ｓｉｍｉｌａｒｉｔｙ（センテンス３１，ＴＳ２）    （２）
センテンス類似性スコア（Ｓ３）
＝Ｓｉｍｉｌａｒｉｔｙ（センテンス２１，ＴＳ１）    （３）
センテンス類似性スコア（Ｓ４）
＝Ｓｉｍｉｌａｒｉｔｙ（センテンス２１，ＴＳ２）    （４）
ここで、類似度（．）は、センテンス類似性関数（例えば、ｓｐａｃｙ類似性及びコサイン類似性）である。
【００８０】
５２２で、生成された第２の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍと対応する真のエンドポイント記述との間で、第２の組のセンテンス類似性スコアが推定されてよい。１つ以上の実施形態で、プロセッサ２０４は、生成された第２の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍと対応する真のエンドポイント記述との間で第２の組のセンテンス類似性スコアを推定するよう構成されてよい。
【００８１】
一例として、表６中のバイグラム（センテンス３２，センテンス２２）について、対応するセンテンス類似性スコアは、次のように推定され得る：
センテンス類似性スコア（Ｓ１’）
＝Ｓｉｍｉｌａｒｉｔｙ（センテンス３２，ＴＳ１）    （５）
センテンス類似性スコア（Ｓ２’）
＝Ｓｉｍｉｌａｒｉｔｙ（センテンス３２，ＴＳ２）    （６）
センテンス類似性スコア（Ｓ３’）
＝Ｓｉｍｉｌａｒｉｔｙ（センテンス２２，ＴＳ１）    （７）
センテンス類似性スコア（Ｓ４’）
＝Ｓｉｍｉｌａｒｉｔｙ（センテンス２２，ＴＳ２）    （８）
ここで、類似度（．）は、センテンス類似性関数（例えば、ｓｐａｃｙ類似性及びコサイン類似性）である。
【００８２】
５２４で、推定された第１の組のセンテンス類似性スコアに基づいて、生成された第１の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍについて、第１平均類似性スコアが計算されてよい。１つ以上の実施形態で、プロセッサ２０４は、生成された第１の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍについて第１平均類似性スコアを計算するよう構成されてよい。一般に、平均センテンス類似性スコア（Ｓａｖ）は、例えば、次のような式（９）によって、与えられ得る：
Ｓａｖ＝ΣｉＳｉ／Ｎ        （９）
ここで、
Ｓｉは、ｎ−ｇｒａｍのｉ番目のセンテンスと、対応する真のエンドポイント記述内のセンテンスとの間のセンテンス類似度に対応してよく、
Ｎは、ｎ−ｇｒａｍについてのセンテンス類似度計算の総数に対応してよく、
ｉは、ｎ−ｇｒａｍ内のあるセンテンスについてのインデックス（又は識別子）に対応してよい。
一例として、式（１）、（２）、（３）及び（４）から、Ｓ１、Ｓ２、Ｓ３及びＳ４は、次のような式（１０）によって与えられる第１平均センテンス類似性スコア（Ｓａｖ１）を計算するために使用されてよい：
Ｓａｖ１＝（Ｓ１＋Ｓ２＋Ｓ３＋Ｓ４）／４        （１０）
【００８３】
５２６で、推定された第２の組のセンテンス類似性スコアに基づいて、生成された第２の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍについて、第２平均類似性スコアが計算されてよい。１つ以上の実施形態で、プロセッサ２０４は、生成された第２の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍについて第２平均類似性スコアを計算するよう構成されてよい。一例として、式（５）、（６）、（７）及び（８）から、Ｓ５、Ｓ６、Ｓ７及びＳ８は、次のような式（１１）によって与えられる第２平均センテンス類似性スコア（Ｓａｖ２）を計算するために使用されてよい：
Ｓａｖ２＝（Ｓ５＋Ｓ６＋Ｓ７＋Ｓ８）／４        （１１）
【００８４】
５２８で、計算された平均類似性スコアが最大である第１ｎ−ｇｒａｍが、生成された第１の組のｎ−ｇｒａｍ及び生成された第２の組のｎ−ｇｒａｍから決定されてよい。１つ以上の実施形態で、プロセッサ２０４は、計算された平均類似性スコアが最大である第１ｎ−ｇｒａｍを、生成された第１の組のｎ−ｇｒａｍ及び生成された第２の組のｎ−ｇｒａｍから決定するよう構成されてよい。
【００８５】
５３０で、生成された第１の組のｎ−ｇｒａｍ及び生成された第２の組のｎ−ｇｒａｍの一方からの決定された第１ｎ−ｇｒａｍの除去に基づいて、ｎ−ｇｒａｍの組が、生成された第１の組のｎ−ｇｒａｍ及び生成された第２の組のｎ−ｇｒａｍから選択されてよい。１つ以上の実施形態で、プロセッサ２０４は、生成された第１の組のｎ−ｇｒａｍ及び生成された第２の組のｎ−ｇｒａｍからｎ−ｇｒａｍの組を選択するよう構成されてよい。第１ｎ−ｇｒａｍは、類似度が最も高いｎ−ｇｒａｍに対応してよく、特定のウェブＡＰＩのエンドポイントに関連した真記述と見なされてよい。一方、残りのｎ−ｇｒａｍ（すなわち、選択されたｎ−ｇｒａｍの組）は、エンドポイントに関連した偽記述と見なされてよい。
【００８６】
５３２で、複数の偽のエンドポイント記述が、選択されたｎ−ｇｒａｍの組に基づいて計算されてよい。１つ以上の実施形態で、プロセッサ２０４は、選択されたｎ−ｇｒａｍの組に基づいて複数の偽のエンドポイント記述を決定するよう構成されてよい。具体的に、選択されたｎ−ｇｒａｍの組の中の各ｎ−ｇｒａｍ内の各センテンスは、対応するエンドポイントに関連した偽のエンドポイント記述と見なされ得る。更には、制御は終了に移ってよい。フローチャート５００は、５０２、５０４、５０６、５０８、５１０、５１２、５１４、５１６、５１８、５２０、５２４、５２６、５２８、５３０、及び５３２のような別個の動作として表されているが、特定の実施形態では、かような別個の動作は更に、開示される実施形態の本質から外れることなしに、特定の実施に応じて、更なる動作に分けられても、より少ない動作へとまとめられても、あるいは削除されてもよい。
【００８７】
図６は、本願で記載される少なくとも１つの実施形態に従って、ドキュメンテーションコーパス内の文書の例を表す。図６は、図１、図２、図３、図４Ａ、図４Ｂ、図５Ａ、図５Ｂ及び図５Ｃからの要素との関連で説明される。図６を参照して、ドキュメンテーションコーパス１０６に存在し得る、例となる文書６００が示されている。
【００８８】
例となる文書６００は、「DropB  API」に属するウェブＡＰＩであってよく、「Description」（記述）、「URL  Structure」（ＵＲＬ構造）、「Method」（メソッド）、及び「Parameters」（パラメータ）のような異なったカテゴリ内の「DropB  API」に関連した情報を含んでよい。プロセッサ２０４は、例となる文書６００内のエンドポイント名６０２（すなわち、「/oauth2/token」）の位置を識別するよう構成されてよい。エンドポイント名６０２は、特定のウェブＡＰＩ（「DropB  API」）の特定のエンドポイント（すなわち、「token」）のためのものであってよい。その後に、プロセッサ２０４は、エンドポイント名６０２の決定された位置に先行する第１の組のセンテンス６０４を例となる文書６００から読み出し、エンドポイント名６０２の決定された位置の後に続く第２の組のセンテンスを例となる文書６００から読み出すよう構成されてよい。
【００８９】
第１の組のセンテンス６０４は、次のように与えられる３つのセンテンスを含む：｛“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.”｝。
【００９０】
同様に、第２の組のセンテンス６０６は、次のように与えられる４つのセンテンスを含む：｛“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.”｝。第１の組のセンテンス６０４及び第２の組のセンテンス６０６からの偽のエンドポイント記述の決定の詳細は、例えば、図５Ａ、図５Ｂ及び図５Ｃで記載されているのと同じであってよい。
【００９１】
図７は、本開示で記載される少なくとも１つの実施形態に従って、例となるＭＬモデルのブロック図を表す。図７は、図１、図２、図３、図４Ａ、図４Ｂ、図５Ａ、図５Ｂ、図５Ｃ及び図６からの要素との関連で説明される。図７を参照して、例となるＭＬモデル７０２のブロック図７００が示されている。例となるＭＬモデル７０２は、ＭＬモデル１０２Ａに対応してよい。また、例となるＭＬモデル７０２は、例となる訓練データセット７０４の複数の特徴に対応する特徴情報を入力として例となるＭＬモデル７０２へ供給することによって、取得（すなわち、訓練）されてよい。例となる訓練データセット７０４内の複数の特徴は、制限なしに、エンドポイントベクトル特徴、記述ベクトル特徴、ＨＴＴＰメソッド特徴、コサイン類似性特徴、ｓｐａｃｙ類似性特徴、セッションセグメント特徴、記述タグ特徴、トークン数特徴、及びエンドポイント名数特徴を含んでよい。
【００９２】
１つ以上の実施形態で、例となるＭＬモデル７０２は、例えば、ソフトウェアプログラム、ソフトウェアプログラムのコード、ライブラリ、アプリケーション、スクリプト、又はプロセッサ２０４のようなプロセッシングデバイスによる実行のための他のロジック若しくは命令のような電子データを含んでよい。例となるＭＬモデル７０２は、プロセッサ２０４のようなコンピューティングデバイスが、特定のウェブＡＰＩのエンドポイントに関連した真記述又は偽記述の１つへの１つ以上の入力（ＡＰＩドキュメンテーション内のセンテンスからの特徴）の分類のための１つ以上の動作を実行することを可能にするよう構成されたコード及びルーチンを含んでよい。追加的に、又は代替的に、例となるＭＬモデル７０２は、プロセッサ、マイクロプロセッサ（例えば、１つ以上の動作を実行する又はその実行を制御する）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は特定用途向け集積回路（ＡＳＩＣ）を含むハードウェアを用いて実装されてよい。いくつかの他の事例では、例となるＭＬモデル７０２は、ハードウェアとソフトウェアとの組み合わせを用いて実装されてもよい。
【００９３】
例となるＭＬモデル７０２は、多段階ニューラルネットワークに基づくモデルであってよく、第１段階７０６及び第２段階７０８を含んでよい。第１段階７０６は、ＡＮＮ７１４と並列に配置されたＤＮＮ７１０、７１２の対を含んでよい。ＤＮＮ７１０、７１２の対は、第１ＤＮＮ７１０及び第２ＤＮＮ７１２を含んでよい。更には、第２段階７０８は、ＤＮＮ７１０７１２の対からの第１出力の対と、ＡＮＮ７１４からの第２出力とをマージするマージ層７１６を含んでよい。一例として、マージ層７１６は、全て同じ形状のテンソルのリストを入力としてとり、（やはり同じ形状の）単一のテンソルを返してよい。ある実施形態では、ＤＮＮ７１０、７１２の対の各ＤＮＮは、ＣＮＮ又はＬＳＴＭに基づくＤＮＮの１つであってよい。
【００９４】
実施形態に従って、例となるＭＬモデル７０２は、「ＣＮＮ＋ＡＮＮハイブリッドネットワーク」であってよく、ここで、第１ＤＮＮ７１０は第１ＣＮＮであってよく、第２ＤＮＮ７１２は第２ＣＮＮであってよい。第１ＣＮＮ及び第２ＣＮＮの夫々は、直列構成で結合された層の第１シーケンスを含んでよい。層の第１シーケンスは、制限なしに、埋め込み層、１次元（１Ｄ）畳み込み層、第１ドロップアウト（dropout）層、１Ｄ最大プーリング（max  pooling）層、平坦化（flattening）層、第１デンス（dense）層、第１バッチ正規化（batch  normalization）層、第２ドロップアウト層、第２デンス層、第２バッチ正規化層、第３ドロップアウト層、第３デンス層、第３バッチ正規化層、第４ドロップアウト層、及び第４デンス層を含んでよい。層の第１シーケンス内の前の層の出力は、層の第１シーケンス内の次の層への入力として供給されてよい。同様に、ＡＮＮ７１４は、直列構成で結合された層の第２シーケンスを含んでよい。層の第２シーケンスは、制限なしに、第１デンス層、第１バッチ正規化層、第１ドロップアウト層、第２デンス層、第２バッチ正規化層、第２ドロップアウト層、第３デンス層、第３バッチ正規化層、第３ドロップアウト層、第４デンス層、第４バッチ正規化層、第４ドロップアウト層、及び第５デンス層を含んでよい。層の第２シーケンス内の前の層の出力も、層の第２シーケンス内の次の層への入力として供給されてよい。
【００９５】
マージ層７１６は、制限なしに、第１デンス層、第１バッチ正規化層、第１ドロップアウト層、第２デンス層、第２バッチ正規化層、第２ドロップアウト層、第３デンス層、第３バッチ正規化層、第３ドロップアウト層、第４デンス層、第４バッチ正規化層、第４ドロップアウト層、及び第５デンス層を含む層の第３シーケンスの組み合わせであってよい。層の第３シーケンス内の前の層の出力は、層の第３シーケンス内の次の層への入力として供給されてよい。
【００９６】
層の第１シーケンス、層の第２シーケンス、及び層の第３シーケンスにおける各層は、前の層からの入力に対して実行される計算動作又は計算動作の組に対応してよい。また、層の第１シーケンス、層の第２シーケンス、及び層の第３シーケンスにおける各層は、制限なしに、バッチサイズ、入力長さ、語彙サイズ、デンス埋め込みの次元、正則化（regularization）関数、制約関数、又はそれらの組み合わせのような１つ以上のパラメータに関連してよい。
【００９７】
実施形態に従って、例となるＭＬモデル７０２は、「ＬＳＴＭ＋ＡＮＮハイブリッドネットワーク」であってよい。ここで、第１ＤＮＮ７１０及び第２ＤＮＮ７１２の夫々は、ＬＳＴＭに基づくＤＮＮであってよい。「ＬＳＴＭ＋ＡＮＮハイブリッドネットワーク」の第１ＤＮＮ７１０及び第２ＤＮＮ７１２の夫々は、埋め込み層、ＬＳＴＭネットワーク、ドロップアウト層、及びデンス層の順次的な配置を含んでよい。デンス層の出力は、マージ層７１６の入力へ直接結合されてよい。更には、ＡＮＮ７１４の出力は、マージ層７１６へ直接結合されてよい。ＡＮＮ７１４は、制限なしに、第１デンス層、第１バッチ正規化層、第１ドロップアウト層、第２デンス層、第２バッチ正規化層、第２ドロップアウト層、第３デンス層、第３バッチ正規化層、第３ドロップアウト層、第４デンス層、第４バッチ正規化層、第４ドロップアウト層、及び第５デンス層を含む層のシーケンスを含んでよい。同様に、マージ層７１６は、制限なしに、第１デンス層、第１バッチ正規化層、第１ドロップアウト層、第２デンス層、第２バッチ正規化層、第２ドロップアウト層、第３デンス層、第３バッチ正規化層、第３ドロップアウト層、第４デンス層、第４バッチ正規化層、第４ドロップアウト層、及び第５デンス層を含む層のシーケンスの組み合わせであってよい。ここで、マージ層７１６の第５層からの出力は、例となるＭＬモデル７０２の最終の出力であってよい。
【００９８】
本明細書では、例となるＭＬモデル７０２（すなわち、訓練されたＭＬモデル）を取得する方法の例が与えられる。例となる方法は、任意の適切なシステム、装置、又はデバイスによって、例えば、図２の例となる予測システム２０２のプロセッサ２０４によって、実行されてよい。例となる方法では、例となる訓練データセット７０４のエンドポイントベクトル特徴に対応するエンドポイントベクトルの組が、ＤＮＮ７１０、７１２の対のうちの第１ＤＮＮ７１０へ供給されてよい。更には、例となる訓練データセット７０４の記述ベクトル特徴に対応する記述ベクトルの組が、ＤＮＮ７１０、７１２の対のうちの第２ＤＮＮ７１２へ供給されてよい。生成された訓練データセットの残りの特徴の組に対応する特徴情報の部分は、ＡＮＮ７１４への入力として供給されてよい。特徴情報のその部分は、例えば、ＨＴＴＰメソッド、コサイン類似性スコア、ｓｐａｃｙ類似性スコア、セッションセグメント値、記述タグ値、トークンの数、エンドポイント名の数を含んでよい。
【００９９】
ＤＮＮ７１０、７１２の対からの第１出力の対、及びＡＮＮ７１４からの第２出力は、マージ層７１６へ供給されてよく、そして、訓練動作が、例となるＭＬモデル７０２（すなわち、訓練されたＭＬモデル）を取得するために、ＤＮＮ７１０、７１２の対及びＡＮＮ７１４に対して実行されてよい。訓練動作は、供給されたエンドポイントベクトルの組、供給された記述ベクトルの組、残りの特徴の組に対応する供給された特徴情報の部分、供給された第１出力の対、及び第２出力に基づいて、実行されてよい。訓練動作の実行中、「IsDescription」特徴（例えば、表３を参照）は、例となるＭＬモデル７０２についてのコスト関数の大域的最小化が特定の数のエポックで達成されるまで、例となるＭＬモデル７０２の重みをアップデートするためにグラウンドトゥルース（ground  truth）値として使用されてよい。更には、訓練動作の実行中、例となるＭＬモデル７０２のための１つ以上のハイパーパラメータ、例えば、ネットワーク構造／サイズ、学習速度、などは、コスト関数の大域的最小化が達成されるまで、特定の数のエポックについて再帰的にアップデートされてよい。
【０１００】
実施形態に従って、訓練されると、例となるＭＬモデル７０２は、エンドポイントに関連した真記述又は偽記述の１つとしての入力の組の分類のために、例となる予測システム２０２で（例えば、例となる予測システム２０２のバックエンドサブシステムで）展開されてよい。一例として、展開されると、例となる予測システム２０２のフロントエンドインターフェイス（例えば、フロントエンドサーバ）は、例えば、ドキュメンテーションコーパス１０６内の他の文書（例えば、ラベルなし／未処理／テスト文書）から読み出され得るエンドポイント名及びセンテンスの組を受け取るよう構成されてよい。更には、特徴情報が、受け取られたエンドポイント名及び受け取られたセンテンスの組に基づいて、受け取られたセンテンスの組について取り出されてよい。特徴情報は、制限なしに、エンドポイントベクトル、記述ベクトル、ＨＴＴＰメソッド、コサイン類似性、ｓｐａｃｙ類似性、セッションセグメント値、記述タグ値、受け取られた１つ以上のセンテンス内のトークンの数、又は受け取られた１つ以上のセンテンス内のエンドポイント名の数を含んでよい。更には、取り出された特徴情報は、展開された例となるＭＬモデル７０２への入力の組として供給されてよい。例となるＭＬモデル７０２は予測結果７１８（例えば、“０”又は“１”）を出力してよく、予測結果７１８は、受け取られたエンドポイント名に関連した真記述又は偽記述の１つとして１つ以上のセンテンスを分類してよい。
【０１０１】
図８は、本開示で記載される少なくとも１つの実施形態に従って、アンサンブルアプローチを表すブロック図である。図８は、図１、図２、図３、図４Ａ、図４Ｂ、図５Ａ、図５Ｂ、図５Ｃ、図６及び図７からの要素との関連で説明される。図８を参照して、例となる訓練データセット８０２、複数のモデル（Ｃ１，Ｃ２，・・・，Ｃｎ）を含むＭＬモデル８０４、結合投票段階８０６、及び最終分類器段８０８を含むブロック図８００が示されている。例となる訓練データセット８０２は、例となる訓練データセット７０４と同じであってよく、複数のＭＬモデルのための訓練データを含んでよい。ＭＬでは、訓練データは、バランスがとれている必要がある。これは、訓練データセットが良い例及び悪い例を同程度含むべきであることを意味する。しかし、エンドポイント記述センテンスは、ごくわずかの割合のセンテンスしか正確なエンドポイント記述でない一方で、より多くの割合のセンテンスが誤った記述センテンスであるということで、アンバランスである。従って、正確なエンドポイント記述センテンスの収集と比べて、より多くの誤ったエンドポイント記述センテンスが集められる可能性がある。この理由により、特定のウェブＡＰＩのエンドポイントに関連した真記述又は偽記述の１つとして所与の入力を分類するために、本開示では、アンサンブルアプローチが使用されてよい。
【０１０２】
複数のモデル（Ｃ１，Ｃ２，・・・，Ｃｎ）の中の各モデルＣｉ（ｉ＝１，２，・・・，ｎ）は、１つの訓練されたモデル、例えば、図７の「ＣＮＮ＋ＡＮＮ」ハイブリッドネットワーク又は「ＬＳＴＭ＋ＡＮＮ」ハイブリッドネットワークであってよい。各Ｃｉは、例となる訓練データセット８０２からの正確なエンドポイント記述センテンス及び異なった不正確なエンドポイント記述センテンスにより訓練されてよい。これは、正確な記述センテンスよりも多くの不正確な記述センテンスが集められるので、達成可能である場合がある。従って、各Ｃｉを訓練するために、正確なエンドポイント記述センテンス及び不正確なエンドポイント記述センテンスの数は同様であってもよい。この場合に、各モデルＣｉは、それが学習した特徴に基づいて異なった決定を下し得る。結合投票段階８０６では、各モデルＣｉ（ｉ＝１，２，・・・，ｎ）は、独立して予測を行い、所与の入力センテンスが正確なエンドポイント記述であるかどうかを決定するよう投票してよい。最終分類器段８０８では、所与の入力センテンスは、複数のモデル（Ｃ１，Ｃ２，・・・，Ｃｎ）の投票に基づいて、不正確なエンドポイント記述又は正確なエンドポイント記述と最終的に予測される。
【０１０３】
例えば、７つのＣｉモデルが展開されてよく、夫々は異なった不正確なセンテンスにより訓練され、従って、異なった不正確なセンテンス特徴を学習している。所与の入力センテンスについて、４つのモデルは、所与の入力センテンスを不正確であると予測してよく、３つのモデルは、所与の入力センテンスを正確であると予測してよい。最終分類器段８０８では、所与の入力センテンスは、７つのＣｉモデルの投票に基づいて、不正確なエンドポイント記述として最終的に予測される。
【０１０４】
１つ以上の実施形態で、例となる訓練データセット８０２は、所与の入力センテンスについての特徴情報を含んでよく、複数のモデル（Ｃ１，Ｃ２，・・・，Ｃｎ）への入力の組として供給されてよい。プロセッサ２０４は、供給された入力の組を、ＭＬモデル８０４の複数の投票に依存するアンサンブルアプローチに基づいて、エンドポイントに関連した真記述又は偽記述の１つとして分類するよう構成されてよい。ＭＬモデル８０４は、訓練データセットの異なるデータ点に対して訓練された複数のモデル（Ｃ１，Ｃ２，・・・，Ｃｎ）を含んでよい。
【０１０５】
本開示の様々な実施形態は、実行されることに応答して予測システム（例えば、図２の例となる予測システム２０２）に動作を実行させる命令を記憶するよう構成された１つ以上の非一時的なコンピュータ可読記憶媒体を提供してもよい。動作は、複数のウェブＡＰＩに関連した複数の真のエンドポイント記述をラベル付きリポジトリ（例えば、ラベル付きリポジトリ１０４）から取り出すことと、複数のウェブＡＰＩに関連したドキュメンテーションコーパス（例えば、ドキュメンテーションコーパス１０６）を読み出すこととを含んでよい。動作は、読み出されたドキュメンテーションコーパス及び取り出された複数の真のエンドポイント記述に基づいて、複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定することと、取り出された複数の真のエンドポイント記述、読み出されたドキュメンテーションコーパス、及び決定された複数の偽のエンドポイント記述に基づいて、複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を取り出すこととを更に含んでよい。動作は、取り出された特徴情報に基づいて訓練データセットを生成することと、生成された訓練データセットに基づいてＭＬモデル（例えば、ＭＬモデル１０２Ａ）を取得することとを更に含んでよい。動作は、入力の組をＭＬモデルへ供給することと、供給された入力の組を、供給された入力の組についてのＭＬモデルの予測結果に基づいて、エンドポイントに関連した真記述又は偽記述の１つとして分類することとを更に含んでよい。入力の組は、複数のウェブＡＰＩの中の特定のウェブＡＰＩについてのエンドポイントに関連してよい。
【０１０６】
上述されたように、本開示で記載される実施形態は、以下でより詳細に論じられるように、様々なコンピュータハードウェア又はソフトウェアモジュールを含む特別目的又は汎用のコンピュータ（例えば、図２のプロセッサ２０４）の使用を含んでよい。更には、上述されたように、本開示で記載される実施形態は、コンピュータ実行可能な命令またはデータ構造を運ぶか又は記憶しているコンピュータ可読媒体（例えば、図２のメモリ２０６又は永続性データストレージ２０８）を用いて実装されてもよい。
【０１０７】
本開示で使用されるように、「モジュール」又は「コンポーネント」との語は、モジュール若しくはコンポーネントの動作を実行するよう構成された特定のハードウェア実施、及び／又はコンピューティングシステムの汎用のハードウェア（例えば、コンピュータ可読媒体、プロセッシングデバイス、など）によって記憶及び／又は実行され得るソフトウェアオブジェクト若しくはソフトウェアルーチンを指し得る。いくつかの実施形態で、本開示で記載される種々のコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステムで（例えば、別個のスレッドとして）実行されるオブジェクト又はプロセスとして実施されてもよい。本開示で記載されるシステム及び方法の一部は、（汎用のハードウェアによって記憶及び／又は実行される）ソフトウェアにおいて実施されるものとして概して記載されているが、特定のハードウェア実施又はソフトウェアと特定のハードウェア実施との組み合わせも可能であり企図される。本明細書中、「コンピューティングエンティティ」は、本開示で先に定義されている任意のコンピューティングシステム、又はコンピューティングシステムで実行される任意のモジュール若しくはモジュールの組み合わせであってよい。
【０１０８】
慣行に従って、図面に表されている様々な特徴は、実寸通りでないことがある。本開示で与えられている例示は、任意の特定の装置（例えば、デバイス、システム、など）又は方法の実際の図であるよう意図されず、本開示の様々な実施形態を記載するために用いられる理想的な表現にすぎない。従って、様々な特徴の寸法は、明りょうさのために任意に拡大又は縮小されてよい。その上、図面の一部は、明りょうのために簡略化されることがある。よって、図面は、所与の装置（例えば、デバイス）の全ての構成要素または特定の方法の全ての動作を表さないことがある。
【０１０９】
本開示で、特に添付の特許請求の範囲（例えば、添付の特許請求の本文）で使用される語は、一般的に、“非限定的な（open）”用語として意図されている（例えば、語「含んでいる（including）」は、“〜を含んでいるが、〜に制限されない”との意に解釈されるべきであり、語「備えている（having）」は、「少なくとも〜を備えている」との意に解釈されるべきであり、語「含む（includes）」は、“〜を含むが、〜に制限されない”との意に解釈されるべきである、等。）。
【０１１０】
更に、導入されたクレーム記載（introduced  claim  recitation）において特定の数が意図される場合、そのような意図は当該クレーム中に明確に記載され、そのような記載がない場合は、そのような意図も存在しない。例えば、理解を促すために、後続の添付された特許請求の範囲では、「少なくとも１つの（at  least  one）」及び「１以上の（one  or  more）」といった導入句を使用し、クレーム記載を導入することがある。
【０１１１】
更には、導入されたクレーム記載において特定の数が明示されている場合であっても、そのような記載は、通常、少なくとも記載された数を意味するように解釈されるべきであることは、当業者には理解されるであろう（例えば、他に修飾語のない、単なる「２つの記載事項」という記載がある場合、この記載は、少なくとも２つの記載事項、又は２つ以上の記載事項を意味する。）。更に、「Ａ、Ｂ及びＣ等のうち少なくとも１つ」又は「Ａ、Ｂ及びＣ等のうちの１つ以上」に類する表記が使用される場合、一般的に、そのような構造は、Ａのみ、Ｂのみ、Ｃのみ、ＡとＢの両方、ＡとＣの両方、ＢとＣの両方、及び／又はＡとＢとＣの全て、等を含むよう意図される。
【０１１２】
更に、２つ以上の選択可能な用語を表す如何なる離接語及び／又は離接句も、明細書、特許請求の範囲、又は図面のいずれであろうと、それら用語のうちの１つ、それらの用語のうちのいずれか、あるいは、それらの用語の両方を含む可能性を意図すると理解されるべきである。例えば、「Ａ又はＢ」という句は、「Ａ又はＢ」、あるいは、「Ａ及びＢ」の可能性を含むことが理解されるべきである。
【０１１３】
しかし、このような句を使用するからといって、「a」又は「an」といった不定冠詞によりクレーム記載を導入した場合に、たとえ同一のクレーム内に、「１つ以上の」又は「少なくとも１つの」といった導入句と「a」又は「an」といった不定冠詞との両方が含まれるとしても、当該導入されたクレーム記載を含む特定のクレームが、当該記載事項を１しか含まない例に限定されるということが示唆されると解釈されるべきではない（例えば、「a」及び／又は「an」は、「少なくとも１つの」又は「１つ以上の」を意味すると解釈されるべきである。）。定冠詞を使用してクレーム記載を導入する場合にも同様のことが当てはまる。
【０１１４】
加えて、語「第１（first）」、「第２（second）」、「第３（third）」などの使用は、要素の特定の順序又は数を示すために本願で必ずしも使用されているわけではない。一般に、語「第１」、「第２」、「第３」などは、異なる要素どうしを総称的な識別子として区別するために使用される。語「第１」、「第２」、「第３」などが特定の順序を示すとの明示がない限りは、それらの語が特定の順序を示すと理解されるべきではない。語「第１」、「第２」、「第３」などが特定の数の要素を示すとの明示がない限りは、それらの語が特定の数の要素を示すと理解されるべきではない。例えば、第１ウィジェットは、第１サイドを有していると記載されることがあり、第２ウィジェットは、第２サイドを有していると記載されることがある。第２ウィジェットに対する語「第２サイド」の使用は、第２ウィジェットのそのようなサイドを第１ウィジェットの「第１サイド」と区別するためであり、第２ウィジェットが２つのサイドを有していることを暗示するものではない。
【０１１５】
ここで挙げられている全ての例及び条件付き言語は、当該技術の促進に本発明者によって寄与される概念及び本発明を読者が理解するのを助ける教育上の目的を意図され、そのような具体的に挙げられている例及び条件に制限されないと解釈されるべきである。本開示の実施形態が詳細に記載されてきたが、様々な変更、置換、及び代替が、本開示の主旨及び適用範囲から逸脱することなしに行われてよい。
【０１１６】
上記の実施形態に加えて、以下の付記を開示する。
（付記１）
複数のウェブアプリケーションプログラミングインターフェイス（ＡＰＩ）に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブＡＰＩに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習（ＭＬ）モデルを取得することと、
前記複数のウェブＡＰＩの中の特定のウェブＡＰＩのエンドポイントに関連する入力の組を前記ＭＬモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記ＭＬモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の１つとして分類することと
を有する方法。
（付記２）
前記ラベル付きリポジトリは、前記複数のウェブＡＰＩに関連した複数の構造化された仕様文書を有し、
各ＡＰＩ仕様文書は、前記複数のウェブＡＰＩの中の対応するウェブＡＰＩに関連した複数のフィールドにマッピングされた情報を有し、
前記複数のフィールドは、ＡＰＩタイトルフィールド、エンドポイント名フィールド、及びエンドポイント記述フィールドを有する、
付記１に記載の方法。
（付記３）
前記複数の偽のエンドポイント記述を決定することは、
対応する複数のウェブＡＰＩに関連した複数の文書を前記読み出されたドキュメンテーションコーパスから識別することであり、前記ドキュメンテーションコーパスは、対応するＡＰＩの集合に関連した文書の集合を有する、前記識別することと、
前記識別された複数の文書の中の各文書において、前記複数のＡＰＩの中の対応するウェブＡＰＩの対応するエンドポイントについてのエンドポイント名の位置を決定することと、
前記エンドポイント名の前記決定された位置に先行する第１の組のセンテンスを、前記識別された複数の文書の中の各文書から読み出すことと、
前記エンドポイント名の前記決定された位置の後に続く第２の組のセンテンスを、前記識別された複数の文書の中の各文書から読み出すことと、
前記対応するウェブＡＰＩの前記対応するエンドポイントについて、前記取り出された複数の真のエンドポイント記述の中の対応する真のエンドポイント記述において特定されたセンテンスの数を決定することと
を更に有する、
付記１に記載の方法。
（付記４）
前記読み出された第１の組のセンテンスの中の各センテンスと前記対応する真のエンドポイント記述との間及び前記読み出された第２の組のセンテンスの中の各センテンスと前記対応する真のエンドポイント記述との間でセンテンス類似性スコアを計算することであり、センテンス類似性スコアは、前記対応する真のエンドポイント記述において特定された前記センテンスの数が１であるとの決定に基づいて計算される、前記計算することと、
前記計算された類似性スコアが最大である第１センテンスを、前記読み出された第１の組のセンテンス及び前記読み出された第２の組のセンテンスから決定することと、
前記読み出された第１の組のセンテンス及び前記読み出された第２の組のセンテンスの一方からの前記決定された第１センテンスの除去に基づいて、前記複数の偽のエンドポイント記述を、前記読み出された第１の組のセンテンス及び前記読み出された第２の組のセンテンスから決定することと
を更に有する、付記３に記載の方法。
（付記５）
前記対応する真のエンドポイント記述において特定された前記センテンスの数が１よりも大きいとの決定に基づいて、前記読み出された第１の組のセンテンスから第１の組のｎ−ｇｒａｍを、及び前記読み出された第２の組のセンテンスから第２の組のｎ−ｇｒａｍを生成することと、
前記生成された第１の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍと前記対応する真のエンドポイント記述との間で第１の組のセンテンス類似性スコアを推定することと、
前記生成された第２の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍと前記対応する真のエンドポイント記述との間で第２の組のセンテンス類似性スコアを推定することと、
前記推定された第１の組のセンテンス類似性スコアに基づいて、前記生成された第１の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍについて第１平均類似性スコアを計算することと、
前記推定された第２の組のセンテンス類似性スコアに基づいて、前記生成された第２の組のｎ−ｇｒａｍの中の各ｎ−ｇｒａｍについて第２平均類似性スコアを計算することと、
前記計算された平均類似性スコアが最大である第１ｎ−ｇｒａｍを、前記生成された第１の組のｎ−ｇｒａｍ及び前記生成された第２の組のｎ−ｇｒａｍから決定することと、
前記生成された第１の組のｎ−ｇｒａｍ及び前記生成された第２の組のｎ−ｇｒａｍの一方からの前記決定された第１ｎ−ｇｒａｍの除去に基づいて、ｎ−ｇｒａｍの組を、前記生成された第１の組のｎ−ｇｒａｍ及び前記生成された第２の組のｎ−ｇｒａｍから選択することと、
前記選択されたｎ−ｇｒａｍの組に基づいて前記複数の偽のエンドポイント記述を決定することと
を更に有する、付記３に記載の方法。
（付記６）
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した初期データセットを構成すること
を更に有する、付記１に記載の方法。
（付記７）
前記初期データセットは、複数のカテゴリ変数及びバイナリ変数を有するデータベーステーブルに対応し、
前記複数のカテゴリ変数は、ＡＰＩ名、エンドポイント名、及びエンドポイント記述を有し、
前記バイナリ変数は、前記エンドポイント記述が前記エンドポイント名の真記述であるかどうかを示す、
付記６に記載の方法。
（付記８）
前記構成された初期データセットに基づいて、前記複数のウェブＡＰＩに関連した前記複数の特徴に対応する前記特徴情報を取り出すこと
を更に有する、付記６に記載の方法。
（付記９）
前記複数の特徴は、エンドポイントベクトル特徴、記述ベクトル特徴、ハイパーテキスト転送プロトコル（ＨＴＴＰ）メソッド特徴、コサイン類似性特徴、ｓｐａｃｙ類似性特徴、セッションセグメント特徴、記述タグ特徴、トークン数特徴、又はエンドポイント名数特徴を有する、
付記８に記載の方法。
（付記１０）
前記構成された初期データセット内の各エンドポイント名のエンドポイントベクトルを計算することと、
前記構成された初期データセット内の各エンドポイント記述の記述ベクトルを計算することと、
前記構成された初期データセット内の各エンドポイント名と、前記構成された初期データセット内の対応するエンドポイント記述についての前記計算された記述ベクトルとの間で、コサイン類似性スコアを計算することと、
前記構成された初期データセット内の各エンドポイント名と前記対応するエンドポイント記述との間でｓｐａｃｙ類似性スコアを計算することと、
前記計算されたエンドポイントベクトル、前記計算された記述ベクトル、前記計算されたコサイン類似性スコア、及び前記計算されたｓｐａｃｙ類似性スコアに基づいて前記訓練データセットを生成することと
を更に有する、付記８に記載の方法。
（付記１１）
前記読み出されたドキュメンテーションコーパス内の対応するエンドポイント名についてＨＴＴＰメソッドの存在を決定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記ＨＴＴＰメソッドが存在するとの決定に基づいて、前記対応するエンドポイント名の前記ＨＴＴＰメソッドを識別することであり、該ＨＴＴＰメソッドは、ＧＥＴ、ＰＯＳＴ、ＰＵＴ、ＰＡＴＣＨ、ＤＥＬＥＴＥ、ＯＰＴＩＯＮＳ、又はＨＥＡＤの中の１つであり、前記ＨＴＴＰメソッドを識別することは、前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記ＨＴＴＰメソッドが不存在であるとの決定に基づいて、前記対応するエンドポイント名について前記ＨＴＴＰメソッドをＮＯＮＥと設定することを更に有する、前記ＨＴＴＰメソッドを識別することと、
前記識別されたＨＴＴＰメソッドに基づいて前記訓練データセットを生成することと
を更に有する、付記８に記載の方法。
（付記１２）
対応するエンドポイント名と同じセッションにおいて、該対応するエンドポイント名についての対応するエンドポイント記述の１つ以上のセンテンスの存在を、前記読み出されたドキュメンテーションコーパスから決定することと、
前記対応するエンドポイント名と同じセッションにおいて前記１つ以上のセンテンスが存在するとの決定に基づいて、セッションセグメント値を１と設定することと、
前記対応するエンドポイント名と同じセッションにおいて前記１つ以上のセンテンスが不存在であるとの決定に基づいて、前記セッションセグメント値を０と設定することと、
前記設定されたセッションセグメント値に基づいて前記訓練データセットを生成することと
を更に有する、付記８に記載の方法。
（付記１３）
前記読み出されたドキュメンテーションコーパス内の対応するエンドポイント名についてエンドポイント記述タグの存在を決定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記エンドポイント記述タグが不存在であるとの決定に基づいて、前記対応するエンドポイント名について記述タグ値をゼロと設定することと、
前記読み出されたドキュメンテーションコーパス内の前記対応するエンドポイント名について前記エンドポイント記述タグが存在するとの決定に基づいて、前記エンドポイント記述タグのワードベクトル表現を生成することと、
前記生成されたワードベクトル表現を前記記述タグ値として設定することと、
前記記述タグ値に基づいて前記訓練データセットを生成することと
を更に有する、付記８に記載の方法。
（付記１４）
前記構成された初期データセット内の対応するエンドポイント名について対応するエンドポイント記述からワードの数及び特殊文字の数を含むトークンの数を推定することと、
前記対応するエンドポイント記述内の前記対応するエンドポイント名の出現数を決定することと、
前記推定されたトークンの数及び前記対応するエンドポイント名の前記決定された出現数に基づいて前記訓練データセットを生成することと
を更に有する、付記８に記載の方法。
（付記１５）
前記ＭＬモデルは、第１段階及び第２段階を有する、多段階ニューラルネットワークに基づくモデルであり、
前記第１段階は、人工ニューラルネットワーク（ＡＮＮ）と並列に配置されたディープニューラルネットワーク（ＤＮＮ）の対を有し、
前記第２段階は、前記ＤＮＮの対からの第１出力の対と前記ＡＮＮからの第２出力とをマージするマージ層を有する、
付記１に記載の方法。
（付記１６）
前記ＭＬモデルを取得することは、
前記生成された訓練データセットのエンドポイントベクトル特徴に対応するエンドポイントベクトルの組を前記ＤＮＮの対の中の第１ＤＮＮへ供給することと、
前記生成された訓練データセットの記述ベクトル特徴に対応する記述ベクトルの組を前記ＤＮＮの対の中の第２ＤＮＮへ供給することと、
前記生成された訓練データセットの残りの特徴の組に対応する前記特徴情報の部分を前記ＡＮＮへ供給することと、
前記第１出力の対及び前記第２出力を前記マージ層へ供給することと、
前記供給されたエンドポイントベクトルの組と、前記供給された記述ベクトルの組と、前記供給された残りの特徴の組と、前記供給された第１出力の組及び第２出力とに基づいて前記ＭＬモデルを取得するように、前記ＤＮＮの対及び前記ＡＮＮに対して訓練動作を実行することと
を有する、
付記１５に記載の方法。
（付記１７）
前記ＤＮＮの対の中の各ＤＮＮは、畳み込みニューラルネットワーク（ＣＮＮ）又は長短期記憶（ＬＳＴＭ）に基づくＤＮＮの一方である、
付記１５に記載の方法。
（付記１８）
前記訓練データセットの異なるデータ点に対して訓練された複数のモデルを有する前記ＭＬモデルの複数の投票に依存するアンサンブルアプローチに基づいて、前記供給された入力の組を、前記エンドポイントに関連した前記真記述又は前記偽記述の１つとして分類すること
を更に有する、付記１に記載の方法。
（付記１９）
実行されることに応答して、予測システムに、
複数のウェブアプリケーションプログラミングインターフェイス（ＡＰＩ）に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブＡＰＩに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習（ＭＬ）モデルを取得することと、
前記複数のウェブＡＰＩの中の特定のウェブＡＰＩのエンドポイントに関連する入力の組を前記ＭＬモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記ＭＬモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の１つとして分類することと
を有する動作を実行させる命令を記憶するよう構成された１つ以上の非一時的なコンピュータ可読記憶媒体。
（付記２０）
複数のウェブアプリケーションプログラミングインターフェイス（ＡＰＩ）に関連した複数の真のエンドポイント記述をラベル付きリポジトリから取り出すことと、
前記複数のウェブＡＰＩに関連したドキュメンテーションコーパスを読み出すことと、
前記読み出されたドキュメンテーションコーパス及び前記取り出された複数の真のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の偽のエンドポイント記述を決定することと、
前記取り出された複数の真のエンドポイント記述、前記読み出されたドキュメンテーションコーパス、及び前記決定された複数の偽のエンドポイント記述に基づいて、前記複数のウェブＡＰＩに関連した複数の特徴に対応する特徴情報を取り出すことと、
前記取り出された特徴情報に基づいて訓練データセットを生成することと、
前記生成された訓練データセットに基づいて機械学習（ＭＬ）モデルを取得することと、
前記複数のウェブＡＰＩの中の特定のウェブＡＰＩのエンドポイントに関連する入力の組を前記ＭＬモデルへ供給することと、
前記供給された入力の組を、該供給された入力の組についての前記ＭＬモデルの予測結果に基づいて、前記エンドポイントに関連した真記述又は偽記述の１つとして分類することと
を実行するよう構成されるプロセッサを有する予測システム。
【符号の説明】
【０１１７】
１００                    環境
１０２，２０２            予測システム
１０２Ａ，７０２，８０４  ＭＬモデル
１０４                    ラベル付きリポジトリ
１０６                    ドキュメンテーションコーパス
１０８                    通信ネットワーク
１１０                    構造化された仕様文書
１１２                    文書の集合
２０４                    プロセッサ
２０６                    メモリ
２０８                    永続性データストレージ
２１０                    ネットワークインターフェイス
４００                    構造化された仕様文書
４０２                    ＡＰＩタイトル
４０４                    ＡＰＩ記述
４０６，６０２            エンドポイント名
４０８                    エンドポイント記述
４１０                    ＡＰＩ入出力パラメータ記述
６００                    文書
６０４                    第１の組のセンテンス
６０６                    第２の組のセンテンス
７０４，８０２            訓練データセット
７０６                    第１段階
７０８                    第２段階
７１０，７１２            ＤＮＮ
７１４                    ＡＮＮ
７１６                    マージ層
７１８                    予測結果
８０６                    結合投票段階
８０８                    最終分類器段
【図１】
2020191076.tif 000009
【図２】
2020191076.tif 000010
【図３】
2020191076.tif 000011
【図４Ａ】
2020191076.tif 000012
【図４Ｂ】
2020191076.tif 000013
【図５Ａ】
2020191076.tif 000014
【図５Ｂ】
2020191076.tif 000015
【図５Ｃ】
2020191076.tif 000016
【図６】
2020191076.tif 000017
【図７】
2020191076.tif 000018
【図８】
2020191076.tif 000019