JP7316721B2 - 対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨の促進 - Google Patents

対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨の促進 Download PDF

Info

Publication number
JP7316721B2
JP7316721B2 JP2020532793A JP2020532793A JP7316721B2 JP 7316721 B2 JP7316721 B2 JP 7316721B2 JP 2020532793 A JP2020532793 A JP 2020532793A JP 2020532793 A JP2020532793 A JP 2020532793A JP 7316721 B2 JP7316721 B2 JP 7316721B2
Authority
JP
Japan
Prior art keywords
application program
computer
program interface
client application
entity
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.)
Active
Application number
JP2020532793A
Other languages
English (en)
Other versions
JP2021508866A5 (ja
JP2021508866A (ja
Inventor
リン、チェン
カリア、アナップ
シャオ、ジン
ブコビッチ、マヤ
アネルシス、ニコラオス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021508866A publication Critical patent/JP2021508866A/ja
Publication of JP2021508866A5 publication Critical patent/JP2021508866A5/ja
Application granted granted Critical
Publication of JP7316721B2 publication Critical patent/JP7316721B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Animal Behavior & Ethology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本開示は、アプリケーション・プログラム・インタフェース・クエリに関し、さらに具体的には、対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨に関する。
自然言語のクエリを使ってサービスを推奨する既存のアプローチは、教師有りおよび教師なしアプローチに基づいている。教師付きアプローチは、特定のサービスでアノテートされた自然言語クエリを伴うデータセットに依拠する。このアノテーション・プロセスはマニュアルであり、通常、深い対象領域の知識を用いるので、これらのアプローチは、異種のデータセット、特に新しい対象領域からのデータセットには容易に適用可能でない。例えば、これらは、主として、キーワードの一致、エンティティ関係、トピック、およびクラスタに基づいている。しかしながら、キーワードおよびエンティティ関係は、クエリとサービスとの間の意味的類似性を無視する。トピックおよびクラスタは、意味的類似性を把握するが、但し、これらは諸サービスも間の関係を明示的に捉えるマッシュアップに依拠する。しかしながら、新しい対象領域ではかかるデータは容易に利用可能でない。
対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を生成する技法を提供する。
以下は、本開示の1つ以上の実施形態の基本的理解を提供するための要約である。この要約は、主要なまたは重要な要素を明確化したり、またはこれら特定の実施形態の何らかの範囲、または特許請求の何らかの範囲を叙述することは意図されていない。その唯一の目的は、後記で提示するより詳細な説明の前置きとして簡単な形で本開示の概念を提示することである。本明細書に記載の1つ以上の実施形態において、対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨を促進する、デバイス、システム、コンピュータ実装の方法、装置、もしくはコンピュータ・プログラム製品またはこれらの組み合せが説明される。
或る実施形態によれば、或るシステムは、コンピュータ実行可能コンポーネントを格納するメモリ、および該メモリ中に格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを含むことができる。本システムのこれらコンピュータ実行可能コンポーネントは、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、該クライアント・アプリケーション・プログラム・インターフェースの記述を改変し、クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得る、プレプロセッサ・コンポーネントを含むことが可能である。また、本システムのこれら実行可能コンポーネントは、クライアント・アプリケーション・プログラム・インターフェースの改変された記述と、1つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの1つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するために、クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析する、オントロジ・コンポーネントを含むことができる。
別の実施形態によれば、アプリケーション・プログラム・インターフェース推奨を促進するコンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含むことができる。本プログラム命令はプロセッサによって実行が可能であり、このプロセッサは、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、該クライアント・アプリケーション・プログラム・インターフェースの記述を改変し、クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得ることができる。また、本プログラム命令は、該クライアント・アプリケーション・プログラム・インターフェースの改変された記述と、1つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの1つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するために、クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析するため、プロセッサによって実行が可能である。
さらに別の実施形態によれば、コンピュータ実装の方法が提供される。本コンピュータ実装の方法は、プロセッサに動作可能に連結されたデバイスによって、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって該クライアント・アプリケーション・プログラム・インターフェースの記述を改変し、クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得るステップを含む。本コンピュータ実装の方法は、該デバイスによって、クライアント・アプリケーション・プログラム・インターフェースの改変された記述と、1つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの1つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するために、クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析するステップをさらに含むことができる。
別の実施形態によれば、或るシステムは、コンピュータ実行可能コンポーネントを格納するメモリ、および該メモリ中に格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを含むことができる。本システムのコンピュータ実行可能コンポーネントは、エンティティによって提供されたフィードバック・データに基づいて、該エンティティから受信した対象領域のオントロジを表す対象領域オントロジを解析する、オントロジ・コンポーネントを含むことが可能である。また、本システムのコンピュータ実行可能コンポーネントは、対象領域オントロジ・データに基づいて、コミュニティを生成するために、アプリケーション・プログラム・インターフェース推奨システムを訓練する、ニューラル・ネットワーク・コンポーネントも含むことができる。
別の実施形態によれば、アプリケーション・プログラム・インターフェース推奨を促進するコンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含むことができる。本プログラム命令はプロセッサによって実行が可能であり、プロセッサは、エンティティによって提供されたフィードバック・データに基づいて、該エンティティから受信した対象領域のオントロジを表す対象領域オントロジを解析することができる。また、本プログラム命令は、該プロセッサによって、対象領域オントロジ・データに基づいて、コミュニティを生成するために、アプリケーション・プログラム・インターフェース推奨システムを訓練するため実行が可能である。
いくつかの実施形態において、システム、コンピュータ実装の方法、もしくはコンピュータ・プログラム製品、またはこれらの組み合せに関連して説明した上記のエレメントの1つ以上は、コンピュータ実装の方法、コンピュータ・プログラム製品、またはシステムなどの異なった形態で具現化することができる。
本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。 本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。 本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。 本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステム・ネットワークを示す。 本明細書に記載の1つ以上の実施形態による、対象領域オントロジを利用するクエリ突合わせを促進する例示、非限定のブロック図を示す。 本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、例示、非限定のフロー図を示す。 本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、さらなる例示、非限定のフロー図を示す。 本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する長・短期メモリ・オートエンコーダに対する例示、非限定のフロー図を示す。 本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、コンピュータ実装の方法の例示、非限定のフロー図を示す。 本明細書に記載の1つ以上の実施形態を促進可能な例示、非限定の動作環境のブロック図を示す。
以降の詳細な説明は単なる例示であって、諸実施形態もしくは諸実施形態の応用または使用、またはその両方を限定することは意図されていない。さらに、上記の背景技術または要約のセクション、または詳細な説明のセクションにおいて提示されたいかなる明示または暗示の情報にも拘束されることは意図されてない。
以降で、これらの図面を参照しながら1つ以上の実施形態が説明され、図面全体を通して同じ要素を参照するために同じ参照符号が使われる。以下の記述において、1つ以上の実施形態のより徹底した理解を提供するために、説明目的で多くの具体的詳細が明示される。但し、当然のことながら、様々な事例において、これら1つ以上の実施形態はこれらの具体的詳細がなくても実践が可能である。
自然言語のクエリを使ってサービスを推奨する既存のアプローチは、教師有りおよび教師なしアプローチに基づいている。教師付きアプローチは、特定のサービスでアノテートされた自然言語クエリを伴うデータセットに依拠する。このアノテーション・プロセスはマニュアルであり、通常、深い対象領域の知識を用いるので、これらのアプローチは、異種のデータセット、特に新しい対象領域からのデータセットには容易に適用可能でない。例えば、これらは、主として、キーワードの一致、エンティティ関係、トピック、およびクラスタに基づいている。しかしながら、キーワードおよびエンティティ関係は、クエリとサービスとの間の意味的類似性を無視する。トピックおよびクラスタは、意味的類似性を把握するが、但し、これらは諸サービスも間の関係を明示的に捉えるマッシュアップに依拠する。しかしながら、新しい対象領域ではかかるデータは容易に利用可能でない。
サービスを推奨するためサービス記述に依拠するフレームワークは、前述した問題を是正することができる。このフレームワークの1つ以上の実施形態は、新しいデータセットに対する自動推奨機能として直ちに適用可能であるという利点を有する。諸サービスの間の関係を把握するために、このフレームワークの1つ以上の実施形態はコミュニティを構築するための異なったアプローチを提供することができ、このコミュニティとはサービスのグループに対する1つの抽象化を表す。該コミュニティとユーザ・クエリとに基づいて、このフレームワークの1つ以上の実施形態は、トップk個のサービスを推奨するためクエリ突合わせアプローチを適用することができる。このフレームワークは、複数の収集されたデータセットに亘り、エンティティに有意義な推奨を提供するために、該複数の収集データセットに対比して評価することができる。本明細書で用いられる用語「エンティティ」(および「エンティティ群」)は、ハードウェア、ソフトウェア、マシン、人間などであるか、それらを含んでよい。
本明細書に記載の1つ以上の実施形態は、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を生成することができる。さらに、本明細書に記述する1つ以上の実施形態は、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨の生成を促進する、システム、コンピュータ実装の方法、装置およびコンピュータ・プログラム製品を含む。
図1は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。
図1に表されるように、インテント・ジェネレータ・コンポーネント100は、いくつかのサブコンポーネント(例えば、プレプロセッサ・コンポーネント102、コミュニティ・エクストラクタ・コンポーネント104など)、プロセッサ106、およびメモリ108を含むことができ、これらは、様々な実施形態において、電気的にもしくは通信可能にまたはその両方で連結することが可能である。なお、いくつかの実施形態では、これらサブコンポーネント(例えば、プレプロセッサ・コンポーネント102、コミュニティ・エクストラクタ・コンポーネント104など)は、インテント・ジェネレータ・コンポーネント100の外部にあってもよい。
プロセッサ106の諸態様は、マシン(単数または複数)内に具現化された、例えば、1つ以上のマシンに関連付けられた1つ以上のコンピュータ可読媒体群(または諸媒体)中に具現化された、マシン実行可能コンポーネント(単数または複数)を構成することが可能である。かかるコンポーネント(単数または複数)は、1つ以上のマシン、例えば、コンピュータ(単数または複数)、コンピューティング・デバイス(単数または複数)、仮想マシン(単数または複数)などによって実行されると、それらマシン(単数または複数)にインテント・ジェネレータ・コンポーネント100によって記述されたオペレーションを実行させることができる。また、或る態様において、インテント・ジェネレータ・コンポーネント100は、コンピュータ実行可能コンポーネントおよび命令を格納するメモリ108も含んでよい。
一実施形態において、プレプロセッサ・コンポーネント102は、入力として自然言語のサービス記述を受信し、特化型自然言語プログラム・パイプラインを用いてそれらを前処理することができる。前処理は、1つ以上の機能を含むことが可能である。例えば、テキスト入力110の句読点を除去することができる。さらに、テキスト入力110から名詞句を抽出するために品詞(POS:part-of-speech)タグ記号を適用することが可能である。これらのステップの後、高頻度もしくは稀と考えられる単語またはその両方を除去することができる。最高頻度の単語は、高い単語数を有し得るが、意味論的な意味をほとんど持たないので、高頻度の単語の残留を許すことによって、関連する言語モデルの効果性が低減される可能性がある。また、ほとんどの希少単語も、それらの、他の単語との共起が偶然に左右されるので除去されてよい。例えば、サービス記述が、単語「マイクロデータ」への単一回の言及を包含している場合、「マイクロデータ」に近い全ての単語が、単一の文から来ている可能性が高く、したがって、それらの共起を他の文に一般化することはできない。例えば、3つ以下の文書中に出現する稀な単語、および諸文書の10パーセント以上に出現する高頻度の単語は除去されてよい。なお、用語を除去または抽出するために任意の閾値数を使ってよく、前述の数は単なる例である。
或るトピックモデルの解釈可能性は、トピックに関連付けられる最多頻度の用語によって評価することが可能である。効果的な推論モデルに基づく事後コーパス固有のストップ・ワードの除去の後、モデルの解釈可能性をさらに増強することができる。コーパス固有のストップ・ワードとは、多くの文書に出現するが、その頻度は、高頻度単語と見なすに十分なほど高くない用語である。高頻度単語の閾値を下げることには、他の多くの情報価値のある単語を失うリスクがある。また一方、ストップ・ワードは、いくつかの低品質トピック(例えば、首尾一貫した合理的な意味を持たない単語群)に分離される傾向がある。結果的に、低品質トピックを選択して、それらトピック中の最高頻度の用語を特定的に除去することが可能である。
さらに、インテント・ジェネレータ・コンポーネント100は、アプリケーション・プログラム・インターフェース(API:application program interface)の記述に基づいて、それらの間の意味的類似性を判断するように構成することができる。例えば、第一クライアント・アプリケーション・プログラム・インターフェースに関連付けられた記述は、前述のプレプロセッサ・コンポーネント102の処理によって改変することが可能で、改変されたAPI記述が得られる。改変されたAPI記述は、次いで、改変されたAPI記述を別のクライアントAPI記述と対比し、2つの間の意味的類似性を判断することができる。その結果、或る特定の類似性閾値が満たされた場合、インテント・ジェネレータ・コンポーネント100は、さらなる処理へと進むことが可能である。
コミュニティ・エクストラクタ・コンポーネント104は、前処理されたAPI記述を受信し、それらの関連性に従ってコミュニティを形成することができる。各コミュニティ内(または、いくつかの実施形態では、1つ以上のコミュニティ内)で、葉ノードが、トピックモデリング技法によって推定されたトピックである、階層構造体を構築することが可能で、各トピック(葉)(または、いくつかの実施形態では、1つ以上のトピック)は、サービス記述のリストに連結することができ、非葉のノードはインテントを表すことができる。なお、この構造体の深さは、抽象化の異なるレベルのインテントを示すことが可能である。ルート・ノードにより近いインテントは、抽象的且つ全般的なインテント(例えば、投資)を表すことができ、一方、トピックにより近いインテントは、詳細かつ具体的なインテント(例えば、株式取引)を表すことができる。共通の上位トピックを共有するトピックは、より高度の関連性を有すると見なすことが可能である。例えば、トピック「音楽」、「TV」、および「ビデオ」はゆるやかに関係しているが、他方、「場所」、「経路」、および「地図」は密接に関係していると見なすことができる。
コミュニティは、3つのアプローチを介して抽出することが可能である。その第一は、各学習されたトピック(または、いくつかの実施形態では、1つ以上の学習されたトピック)が単一のコミュニティを形成する、トピックモデリング技法を用いるベースライン・アプローチである。なお、このベースライン・アプローチは、階層的インテント・ツリーを構築しない。第二のアプローチは、最初にトピックを推定し、次いでそれらのトピックに対するコミュニティを識別するためにコミュニティ検出法を適用する、ボトム・アップ・アプローチとすることができる。第三のアプローチは、各サービスに対する(または、1つ以上のサービスに対する)潜在型のハイレベル低次元のベクトル表現を学習し、次いで、kミーンズ・クラスタ・アプローチを用いて、類似ベクトルを一コミュニティにグループ化するトップ・ダウン・アプローチとすることが可能である。その後、各クラスタ内の(またはいくつかの実施形態では、1つ以上のクラスタ内の)サービスにトピックモデリング法を適用することができる。
トピック非負値行列因数分解(TNMF:topic non-negative matrix factorization)は、短いテキストからトピックを見出すために設計された方法である。非負値行列因数分解(NMF:non-negative matrix factorization)に対する従来式のモデリングは、検索語-文書行列を分解することができ、これは所与の文書中の当該用語の出現度を示す。しかしながら、短いテキストに対して、検索語-文書行列は極めて疎となり得て、これはモデルが確かなトピックを学習することを妨げる可能性がある。TNMFは、頻繁に共起する用語は共通なトピックに関連している可能性が極めて高いとの想定をすることによってこの問題を処理する。例えば、用語「住所」と「郵便番号」とが同じ文書に数回にわたって共起する場合、これらは共通のトピック(例えば、場所)について言及している可能性が高い。しかして、TNMFは、代わりに、用語相関行列を分解することによって確かなトピックを学習することが可能である。この行列は疎の問題に煩わされないので、たとえ文書の数が増えても、語彙のサイズは安定している。
TNMFでは、各用語tは、用語出現ベクトル(wi,1,・・・、wi,m)として表すことが可能で、このwi,mは、用語tiとtmとの共起に基づいて決まる。wi,mを評価するために、用語tおよびtに対する正の相互情報量(PPMI:positive point mutual information)が計算される。用語出現ベクトルを計算した後、用語相関行列Sを生成するために、共通ベクトル類似性指標(例えば、コサイン係数)が計算される。用語行列Sが学習されたならば、トピック学習問題は、以下の目的関数を最小化する用語-トピック行列Uを見出すこととして定式化される。
Figure 0007316721000001
式(1)は、このモデルが最小化しようとする目的関数である。しかして式(1)は、非負値行列因数分解の算式である。Fは、行列のフロベニウス形式を表し、
Figure 0007316721000002


Figure 0007316721000003
として表される。対称非負値行列因数分解を、用語相関行列に適用し、トピックを抽出し、検索語-トピック行列Uを学習することができる。次いで、当初の検索語-文書行列Xと、ここでの検索語-トピック行列Uとに基づいて、トピック-文書行列Vを解くことが可能である。これらの結果、インテント・ジェネレータ・コンポーネント100は、ショート・テキストを受信し、そのショート・テキストをプレプロセッサ102に通して実行して無関係のテキストを抜き取り、改良されたテキスト・データを得、次いで、コミュニティ・エキストラクタ・コンポーネント104によって実行されるTNMFに基づいてその改良テキスト・データを特定のトピックに関連付けるように構成することができる。
抽象的でなく、且つ、例えば、ユーザのテキスト・クエリから対象領域およびクライアント固有のAPI推奨を促進するために必要な処理能力に起因して、人間による一組の精神的な活動として行うことのできない、高度に技術的な性質の問題(例えば、ソフトウェア・テキスト検索、意味タグ付け、テキスト頻度の算定、数百万の用語から成るコーパス内の共通点のない用語/文の突合わせなど)を解決するためにハードウェアもしくはソフトウェアまたはその両方を使用するため、インテント・ジェネレータ100を用いることができる。さらに、実行される処理の一部は、メモリ・オペレーションに関する定義されたタスクを遂行するために特殊化されたコンピュータによって行われてよい。例えば、用語の頻度などに基づいて、テキスト入力の事前処理に関連するタスクを遂行するために特殊化されたコンピュータを用いることが可能である。
図2は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
インテント・ジェネレータ・コンポーネント200は、クエリ・マッチャ・コンポーネント202を含むことができる。クエリ・マッチャ・コンポーネント202は、エンティティからのクエリに基づいて、そのエンティティにサービスのリストを推奨/出力することが可能である。クエリ206に基づいて、関係性を判断するため、諸コミュニティおよびその下にあるトピックをクエリ206に対比してチェックすることができる。例えば、関係性をチェックするためにクエリ206と当該トピックとの間の一致性スコアM(クエリ、トピック)(例えば、クエリ中の各単語と所与のトピック中の各トップ・キーワードと間の類似性スコアの和)が生成されてよい。単語類似性は、Wu-Palmerスコアに基づいて計算が可能で、これは、分類学に関連して単語の意味の深さを検討することによって2つの単語の意味の関係度を計算する。また、Wu-Palmerスコアは、単語の最小共通包摂(least common subsumer)(例えば、特定の上位ノード)の深さも計算することができる。
Figure 0007316721000004

式(3):類似性(u,v)=max(Wu-Palmer(u,v))(4)、このuは、クエリ206中の単語であり、wはトピックの用語であり、uおよびvは単語の意味である。
ノードのセットおよび一ルートによって形成されたオントロジを考えてみる。このオントロジにおいて、C1およびC2が、類似性を計算する対象のオントロジ・エレメントであるとしよう。この類似性は、C1およびC2がルート・ノードから離れている距離(N1およびN2)と、共通の直近上位ノードがルート・ノードから離れている距離(N)とに基づいて計算される。この類似性は、類似_Wu-Palmerとして定義され、類似性(Wu-Palmer(C1,C2))が
Figure 0007316721000005
に等しくなり得る、として表現される。ワードネットに関して、同義語のセット(synset)s1およびs2の類似性が、Least Common Subsumer(LCS))の深さとともに、ワードネット分類学中の2つのsynsetの深さを考慮しながら計算される。算式は、
Figure 0007316721000006
である。M(クエリ,トピック)はクエリ中の各単語uおよびトピック中の単語wに対する類似_Wu-Palmerの計算を表す。クエリ中のuおよびトピック中の単語wに対しM(クエリ,トピック)によって返された最大値に基づいて類似性(クエリ,トピック)を計算する。
しかして、検討対象のトピックが相異なるコミュニティに属し、共通の上位トピックを共有しない場合、それらトピックの親ノードを識別することが可能で、識別されたインテントの下でのサービスを候補として返すことができる。
候補としてサービスの或るセットが与えられた場合、潜在的意味インデックス(LSI:latent semantic index)を用いて、それら候補サービスとクエリ206との間の一致性スコアを計算することが可能である。LSIは、用語出現頻度-逆文書頻度(TF-IDF:term frequency-inverse document frequency)行列を生成し、特異値分解(SVD:singular value decomposition)を用いてTF-IDF行列を近似計算することによって、k次元の空間を生成することができる。SVDは、コラム間の類似性構造を保持しながら、当初の行列の次元を低減する。これにより、エンティティのクエリ206は、k次元のLSI空間にマップすることが可能となる。クエリ206と所与の文書との類似性は2つのベクトルのコサイン類似性を用いて計算することができる。結果として、エンティティに対し、出力208として、最高の類似性スコアを備えたAPIサービスを推奨することが可能である。
また、コミュニティ・エクストラクタ・コンポーネント104は、ニューラル・ネットワーク・コンポーネント204も含んでよい。例えば、人工知能(AI:artificial intelligence)は、本開示の態様による、1つ以上の機能の自動化を促進することが可能である。メモリおよびプロセッサならびに他のコンポーネントは、諸図面に関連する機能を含むことができる。本開示の態様は、API推奨の生成に関して、それらの様々な態様を遂行するための様々なAIベースのスキームを用いることが可能である。例えば、1つ以上のトリガ・イベントを検出し、それら1つ以上のトリガ・イベントの結果として活動を決定し、API推奨を生成する等々のためのプロセスは、例の自動分類システムおよびプロセスによって促進することができる。別の例において、頻度に基づいて、或る用語を忌避しながら別の用語を選好するためのプロセスは、該例の自動分類システムおよびプロセスによって促進することができる。
或る例のクラシファイヤは、入力属性ベクトル、x=(x1,x2,x3,x4,xn)を、その入力が或るクラスに属する信頼区間にマップする関数、すなわちf(x)=信頼区間(クラス)であってよい。かかる分類には、自動的に行うことが可能な処置(例えば、高頻度のテキストを抽出する)を予知または推定するための確率的もしくは統計的ベースまたはその両方の解析(例えば、解析ユーティリティを取り入れて)を用いることができる。サポート・ベクトル・マシン(SVM:support vector machine)は用いることが可能なクラシファイヤの一例である。SVMは、あり得る入力の空間の超曲面を見出すことによって作動することが可能で、この超曲面は、非トリガ・イベントからトリガ基準を分けるよう試みる。直観的に、これは、分類により、訓練データに近いが同じではない試験データを補正する。他の有方向および無方向のモデル分類アプローチは、例えば、ナィーブベイズ、ベイジアンネットワーク、回帰ニュ-ラル・ネットワーク・デシジョン・ツリー、ファージィ論理モデル、および使用可能な独立性の異なるパターンを提供する確率的分類モデルが含まれる。また、本明細書で用いる分類には、優先度モデルを展開するために用いられる統計的回帰が含まれてよい。
本開示の諸態様は、(例えば、一般的な訓練データによって)明示で訓練された、および(例えば、トリガ・イベントに関連する用語抽出の観察によって)非明示的に訓練された、クラシファイヤを用いることができる。例えば、SVMは、クラシファイヤ・コンストラクタ、および特徴選択モジュール内の学習または訓練フェーズを用いて構成することが可能である。しかして、クラシファイヤ(単数または複数)は、以下に限らないが、用語抽出、用語重み付け、用語フィルタリング、トピックとの用語の関連付けなどを含め、いくつかの機能を自動的に学習し、実行するために使うことができる。これらの基準は、以下に限らないが、事前定義された値、寄与減衰テーブルまたは他のパラメータ、優先度、もしくはポリシーなどを含んでよい。なお、ニューラル・ネットワーク・コンポーネント204は、また本開示の様々な他のコンポーネントのサブコンポーネントであってもよい。例えば、図3に関連して説明するオントロジ・コンポーネントは、ニューラル・ネットワークもまた含むことが可能である。
図3は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
別の実施形態において、インテント・ジェネレータ・コンポーネント300は、オントロジ・コンポーネント302を含むことができる。オントロジ・コンポーネント302は、公式に、トピック、特性、クライアント固有もしくは対象領域固有のまたはその両方のクエリに基づいて存在する、コミュニティとクエリとの相互関係を公式に挙げ、定義することが可能である。オントロジ・コンポーネント302は、インテント・ジェネレータ・コンポーネント300の計算のために必要な変数を区分し、それらの間の関係性を確立することができる。
オントロジ・コンポーネント302は、クエリ・マッチャ・コンポーネント202により生成された一致性と、出力208(例えば、推奨、信頼度スコアなど)と、エンティティからのフィードバックなどとに基づいて、関連するオントロジを再帰的に改変するように構成することが可能である。例えば、出力208のための出力データが生成された後、その出力データはオントロジ・コンポーネント302によって受信されてよい。オントロジ・コンポーネント302は、次いで、その出力データから新規の対象領域のオントロジを生成し、その新規の対象領域オントロジを、コミュニティ・エクストラクタ・コンポーネント104、プレプロセッサ・コンポーネント102、もしくはクエリ・マッチャ・コンポーネント202、またはこれらの組み合せに送信することができる。オントロジ・コンポーネント302が新規の対象領域オントリジを生成するのに基づいて、プレプロセッサ・コンポーネント102は、さらなるサービス、トピック、もしくはコミュニティ、またはこれらの組み合せを生成するために、その新規の対象領域オントロジに従って新しい入力を前処理することが可能となる。
別の実施形態において、エンティティは、自分固有の対象領域オントロジまたはプリファレンスを、インテント・ジェネレータ・コンポーネント300が突合せを行うために、インテント・ジェネレータ・コンポーネント300に与えてよい。例えば、エンティティのテキストベースのクエリから生成された出力208(例えば、API推奨)に基づいて、エンティティは、該エンティティが推奨されたAPIを選好するか、または該エンティティが別のAPIを選好することになるかを決めることができる。結果として、オントロジ・コンポーネント302は、今後の繰り返しの突合せプロセスをさらに改良するため、エンティティのプリファレンスに関連するプリファレンスデータを受信することが可能である。しかして、さらなるAPI推奨を生成するとき、同じエンティティに対する将来の推奨には、このエンティティのプリファレンスを考慮に入れることができる。
図4は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステム・ネットワークを示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
別の実施形態において、システムが取ることのできる1つのアプローチは、最初に(前述した)TNMFを使ってトピックを学習し、次いで、ルヴァンのコミュニティ検出法(LCD:Louvain’s community detection)と呼ばれるグリーディ最適化アルゴリズムを使用して、トピックとサービスとの間の対(つい)での関連付けを形成する、構築ネットワーク400を用いてコミュニティを抽出することである。さらに具体的には、ネットワーク400は、学習されたトピック-文書行列Vに基づいて構築される。ネットワーク400において、ノードは、サービス(または文書)およびトピックを表すことができる。V中の対応するエントリが非ゼロの場合、トピックとサービスとの間に重み付きエッジを形成することができる。しかして、この重みはそのエントリの値である。
ネットワーク400が、示されているように完結された後、それからコミュニティを抽出するために、LCDを適用することが可能である。LCDはグリーディ最適化アルゴリズムであり、LCDによる最適化の対象値は、モジュラリティと呼ばれるスケール値である(図示のように-1~1の間の範囲にある)。モジュラリティは、外側コミュニティのエッジに対する内側コミュニティのエッジの密度を測定する。しかして、モジュラリティを最適化することは、コミュニティの区画化につながり得る。全てのあり得る区画に亘って繰り返しを行うことは極めて非実際的である。しかして、以下の2つのフェーズを変化が生じなくなるまで反復的に繰り返すヒューリスティック・アプローチを用いてよい。
第一フェーズでは、全てのノードがそれら自体のコミュニティに割り当てられる。ノードiをそれ自体のコミュニティ402からその隣接のコミュニティ404j(当初はモードjだけを包含している)に移動するためのモジュラリティの変更が計算される。このモジュラリティの変更は、次のヒューリスティック関数、
Figure 0007316721000007
を使用して計算できる。このΣinは、iがその中へと移動しているコミュニティ(C)(例えばコミュニティ404)の内側のエッジの全ての重みの和であり(いくつかの実施形態では、Σinは、Cの内側のリンクの和を表すと見なすことができる)、ΣtotはC中のノードへのリンクの和を表す。Σtotは、当該コミュニティ(例えば、コミュニティ402)中のエッジの全ての重みの和である。変数kはiの重み付き程度である(いくつかの実施形態では、kはノードiへのリンクの重みの和と見なすことができる)。ki,inは、コミュニティ(例えば、コミュニティ402)中のiと他のノードとの間のリンクの重みの和であり、mはネットワーク中の全てのリンクの重みの和である。
いくつかの実施形態において、Σinは、Cの内側のリンクの和を表す。Σtotは、C中のノードへのリンクの和を表す。kは、ノードiへのリンクの重みの和である。ki,inは、iからC中の諸ノードへのリンクの重みの和であり、mは当該ネットワーク中の全てのリンクの重みの和である。
ノードiが連結されている、全てのコミュニティに対し値が計算されたならば、ノードiは、最大のΔQがもたらされるようにコミュニティ404中に結合することができる。このプロセスは、ネットワーク中の全てのコミュニティに逐次的に適用することが可能である。第二フェーズの過程で、同じコミュニティ中のノードは、一緒にグループ化され、そのグループ全体を一ノードとして扱ってよく、しかして、新しいネットワークを構築することができる。次いで、第一フェーズを再適用することができ、このプロセスが、モジュラリティに、定義された閾値より大きな変化がなくなるまで反復される。
図5は、本明細書に記載の1つ以上の実施形態による、対象領域・オントロジを利用するクエリ突合わせを促進する例示、非限定のブロック図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
テキスト502(例えば、「地図、場所、住所」)を包含するクエリ206に基づいて、関係性を判断するために、クエリ206に対比して、コミュニティおよび内在するトピックをチェックすることができる。例えば、クエリ206の単語「場所」に対する関係度をチェックするために、供された類似用語(例えば、「地図」および「住所」)を用いて一致性スコアM(クエリ,トピック)を生成することが可能である。さらに、クエリ206とトピックとの間に一致性スコアM(例えば、クエリ中の各単語と所与のトピック中の各キーワードとの間の類似性スコアの和)を生成することができる。したがって、単語「地図」、「場所」、および「住所」はトピック1に関連していると判断することが可能で、このトピック1は、コミュニティ発見プロセス504の過程で、コミュニティ1に関係するものと判断されている。その後に、コミュニティ1に関連付けられている特定の文書に基づいて、候補API506を識別するために潜在意味インデックス付け(LSI)を行ってよい。
結果として、候補群として或るサービスのセットを所与として、LSIを用いて、候補サービスとクエリとの間の一致性スコアを計算することが可能である。LSIは、用語出現頻度-逆文書頻度(TF-IDF)行列を生成し、特異値分解(SVD)を用いそれを近似計算することによって、k次元の空間を生成する。SVDは、コラム間の類似性構造を保持しながら、当初の行列の次元を低減する。これにより、エンティティのクエリ206は、k次元のLSI空間にマップされる。しかして、クエリ206と所与の文書との類似性は2つのベクトルのコサイン類似性を用いて計算することができる。
図6は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
別の実施形態において、階層的インテントを学習するために、API推奨プロセス600は、ブロック602で、APIに関連付けられた用語を受信するステップを含んでよい。例えば、APIのデータ・ストア、API記述、もしくはAPIに関連付けられた用語またはこれらの組み合せが、インテント・ジェネレータ・コンポーネント100、200、300にアップロードされてよい。次いで、インテント・ジェネレータ・コンポーネント100、200、300は、プレプロセッサ・コンポーネント102を用いて、アップロードされたAPI用語の前処理を開始することができる。これらAPI用語の前処理は、以下に限らないが、1)句点を除去し、品詞のタグを抽出する、2)高頻度のもしくは稀な用語をフィルタする、3)標準的なストップ・ワードを除去する、もしくは4)繰り返されるが情報価値のないよくある単語を抜き出す、またはこれらの組み合せを含め、いくつかの異なる方法によって行うことが可能である。一実施形態において、繰り返されるが情報価値のないよくある単語を抽出し除去するためにTNMFが使われてよい。
前処理が行われた後、ブロック606で、インテント・ジェネレータ・コンポーネント100、200、300は、用語の関係性に基づいて、コミュニティを形成するために2つのアプローチのうちの1つを取ることを決めることができる。第一のアプローチは、ブロック608で、前処理された用語にTNMFおよびコミュニティ検出(例えば、図4に関連して説明したルヴァンのコミュニティ検出法(LCD))を適用するステップを含む。第二のアプローチは、ブロック610で、前処理済みの用語に長・短期メモリ(LSTM:long short-term memory)、kミーンズ・クラスタリング、およびトピックモデリング(図8に関連して説明する)を適用するステップを含む。ブロック608、610からの出力は、両方とも、ブロック612で、キーワードを生成し、APIに対しコミュニティを割り当てるために使用される。さらなる実施形態では、TNMFを用い、LCDのアプローチなしでコミュニティを形成することが可能なことにも留意すべきである。
図7は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、さらなる例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
ブロック702で、或るエンティティから、API推奨に対するテキストベースのクエリを受信することができる。このテキストベースのクエリは、関心のあるAPIに関連する記述を含んでよい。例えば、このエンティティは、或る場所に関連するAPIを求めているかもしれない。ブロック704で、このテキストベースのクエリに基づいて、エンティティの予測インテントを判断するために、記述から対象となる単語および動詞を抽出することができる。ブロック612で、クラスタまたはコミュニティごとに(コミュニティ・エクストラクタ・コンポーネント104を用いて)生成されたキーワードに基づいて、ブロック708で、エンティティの予測されるインテントが、前述した階層的インテント学習プロセスを参照して生成された階層的インテントと突合せられる。エンティティのインテントと階層的インテントとの突合わせによって、一致したインテントに基づいて場所に関連付けられたAPIをブロック710で推奨するのに使用するデータを得ることができる。
インテント・ジェネレータ・コンポーネント100、200、300は、推奨されたAPIに基づいてエンティティからのフィードバックをエンティティに促して、受信し、ブロック712で、エンティティのフィードバックを収集するように構成することができる。例えば、ブロック710でAPIが推奨された後、インテント・ジェネレータ・コンポーネント100、200、300は、エンティティに、推奨したAPIに関するフィードバックを促すことが可能である。このフィードバックは、エンティティによって開始されたクエリに照らして、エンティティが、APIが役立つと見るかどうかを表すことができる。このフィードバックは、推奨されたAPIが適用できないこと、推奨されたAPIがエンティティの欲するものであること、または推奨されたAPIが、エンティティの欲する属性の一部だけを含むことの表明を含んでよい。収集されたエンティティのフィードバックは、次いでブロック714に送信することができ、該ブロックで、クライアントまたは対象領域固有のオントロジを決めるために用いることができる。例えば、エンティティのフィードバックが、推奨されたAPIがエンティティの問い合わせたものとはるかに外れていることを示している場合、インテント・ジェネレータ・コンポーネント300は、そのエンティティがそれ自身のオントロジを有している可能性があり、インテント・ジェネレータ・コンポーネント100、200、300が、より正確な推奨結果を提供できるように、今後のプロセスに適用されることを望んでいる可能性があることを判断することができる。結果として、将来において、クライアントまたは対象領域固有のオントロジに関連付けられたデータは、エンティティのインテントと階層的インテントとを一致させるためにも用いることができる。
図8は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、長・短期メモリ・オートエンコーダに対する例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
別の実施形態において、オートエンコーダに基づく長・短期メモリ(LSTM)は、サービス記述に対する埋込みを構築し、その後、当初の文を再構成するためにその埋込みを復号するように訓練することができる。この埋込は、当初のサービス記述のハイレベルの低次元表現と見なしてよい。さらに、kミーンズ・クラスタリング法を使って、このサービス埋込を異なるクラスタ群またはコミュニティ群に分割することができる。
LSTMは単語の間の局所な依存性を把握する機能を含んでおり、隣接する単語は組み合されて特定の意味を表現する。LSTMは、勾配消失(および爆発)問題を回避できる回帰ニューラル・ネットワーク(RNN:recurrent neural network)の一種類である。LSTMユニットは、3つのコンポーネント、忘却、入力、および出力を含むことができる。これらのコンポーネントは、どのように情報が流れるかを制御するために、互いに相互作用する。忘却コンポーネントは、前段のメモリ・セルからの、どの情報が(期限切れのため)もはや有効でなく、放棄されるべきかを判断する。入力コンポーネントは、どの情報が新しく、更新を必要とするかを判断し、出力コンポーネントは、メモリ・セルからの値をフィルタする活性化機能である。
例えば、図8に図示されるように、エレメント802は、エレメント804で符号化が可能なテキストを入力するステップを含むことができる。オートエンコーダは、追加のラベルを必要としない、教師なし(または自己教師あり)技法を活用して、サービス記述のコンパクトな表現を学習することができる。LSTMベースのオートエンコーダは、2つのLSTMを含むニューラル・モデルであってよく、1つのLSTMは、単語のシーケンスを固定長のベクトル表現に符号化することが可能で、これにより、エレメント806で、圧縮表現を生成する。この最後のLSTMユニットの出力は、サービス記述の埋込みを生成することができる。エレメント808で、第二のLSTMが、その表現を別の記号のシーケンスに復号することが可能である。提案されたモデルのエンコーダおよびデコーダは、ソース・シーケンスを所与として、対象シーケンスの条件付き確率を最大化するため一緒に訓練することができ、これによりエレメント810で対象を生成する。低次元表現が得られた後、エレメント812で、kミーンズ・クラスタリング法を適用してサービスを、kの指定されたクラスタまたはコミュニティに分割することが可能である。最後に、エレメント814で、各コミュニティ内のサービスにTNMFを適用してコミュニティごとのトピックを抽出することができる。
図9は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、コンピュータ実装の方法900の例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
別の実施形態において、コンピュータ実装の方法900は、プロセッサに動作可能に連結されたデバイスによって、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、該クライアント・アプリケーション・プログラム・インターフェースの記述を(例えば、プレプロセッサ・コンポーネント102を用いて)改変し、クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得るステップを含む。本コンピュータ実装の方法は、該クライアント・アプリケーション・プログラム・インターフェースの改変された記述と、1つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの1つ以上の従前の記述との間の意味的類似性に基づいて、(例えば、オントロジ・コンポーネント302を用いて)オントロジを生成するために、クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを(例えば、オントロジ・コンポーネント302を用いて)解析するステップをさらに含むことができる。
開示された主題の様々な態様に対するコンテキストを提供するために、図10、および以下の説明は、本開示の主題の様々な態様が実装可能な適切な環境の一般的表現を提供することを意図している。図10は、本明細書に記載の1つ以上の実施形態が促進可能な例示、非限定の動作環境のブロック図を示す。図10を参照すると、本開示の様々な諸態様を実装するために適切な動作環境1000は、同様に、コンピュータ1012を含んでよい。また、コンピュータ1012は、処理ユニット1014、システム・メモリ1016、およびシステム・バス1018を含む。システム・バス1018は、以下に限らないが、システム・メモリ1016と処理ユニット1014との連結を含め、諸システム・コンポーネントを連結する。処理ユニット1014は、様々の利用可能なプロセッサの任意のものであってよい。また、デュアルマイクロプロセッサおよび他のマイクロプロセッサ・アーキテクチャも、処理ユニット1014として用いることができる。システム・バス1018は、メモリ・バスまたはメモリ・コントローラ、周辺バスまたは外部バス、もしくは、以下に限らないが、業界標準アーキテクチャ(ISA:Industrial Standard Architecture)、マイクロチャネル・アーキテクチャ(MSA:Micro-Channel Architecture)、拡張ISA(EISA:Extended ISA)、インテリジェント・ドライブエレクトロニクス(IDE:Intelligent Drive Electronics)、VESAローカル・バス(VLB:VESA Local Bus)、周辺機器相互接続(PCI:Peripheral Component Interconnect)、カード・バス、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)、アドバンスト・グラフィクス・ポート(AGP:Advanced Graphics Port)、ファイアーワイヤ(IEEE 1394)、および小型計算機システム・インターフェース(SCSI:Small Computer Systems Interface)を含め、任意の多様な利用可能なバス・アーキテクチャを用いたローカル・バスを含むバス構造体(単数または複数)のいくつかの種類のいずれかであってよい。
また、システム・メモリ1016は、揮発性メモリ1020、および不揮発性メモリメモリ1022を含んでよい。立ち上げの過程などで、コンピュータ1012内の素子の間で情報を伝送する基本ルーティンを包含する、基本入力/出力システム(BIOS:basic input/output system)は、不揮発性メモリ1022中に格納される。限定でなく例示として、不揮発性メモリ1022は、読み取り専用メモリ(ROM:read only memory)、プログラマブルROM(PROM:programmable ROM)、電気的プログラマブルROM(EPROM:electrically programmable ROM)、電気的消去可能プログラマブルROM(EEPROM:electrically erasable programmable ROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM:random access memory)(例えば、強誘電性RAM(FeRAM))を含むことができる。また、揮発性メモリ1020はRAMを含むことができ、これは、例えば外部キャッシュ・メモリとして機能する。限定でなく例示として、RAMは、スタティックRAM(SRAM:static RAM)、ダイナミックRAM(DRAM:dynamic RAM)、同期DRAM(SDRAM:synchronous DRAM)、ダブル・データ・レートSDRAM(DDR SDRAM:double data rate SDRAM)、拡張SDRAM(ESDRAM:enhanced SDRAM)、同期リンクDRAM(SLDRAM:Synchlink DRAM)、ダイレクト・ラムバスRAM(DRRAM:direct Rambus RAM )、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM:direct Rambus dynamic RAM)、およびラムバス・ダイナミックRAMなど多くの形で利用可能である。
また、コンピュータ1012は着脱型/固定型、揮発性/不揮発性のコンピュータ・ストレージ媒体を含むことができる。例えば、図10にはディスク・ストレージ1024が示されている。また、ディスク・ストレージ1024は、以下に限らないが、磁気ディスク・ドライブ、フレキシブル・ディスク・ドライブ、テープ・ドライブ、Jazドライブ(R)、Zipドライブ(R)、LS-100ドライブ(R)、フラッシュ・メモリ・カード、またはメモリ・スティックなどのデバイスを含んでよい。ディスク・ストレージ1024は、ストレージ媒体を別々に、または、以下に限らないが、コンパクト・ディスクROMデバイス(CD-ROM:compact disk ROM)、CD記録可能ドライブ(CD-R Drive:CD recordable drive)、CD書き換え可能ドライブ(CD-RW Drive:CD rewritable drive)、またはデジタル多用途ディスク(DVD-ROM:digital versatile disk)などの光ディスク・ドライブを含む、他のストレージ媒体との組み合わせで、含んでもよい。ディスク・ストレージ1024のシステム・バス1018への連結を容易にするために、通常、インターフェース1026など、着脱型または固定型インターフェースが用いられる。また、図10には、ユーザと、適した動作環境1000中に表された基本的コンピュータ・リソースとの間の仲介としての役割をするソフトウェアが描かれている。かかるソフトウェアは、例えば、オペレーティング・システム1028を含むことができる。オペレーティング・システム1028は、ディスク・ストレージ1024上に格納することができ、コンピュータ1012のリソースを制御し、割り当てる役割をする。
システムのアプリケーション1030は、例えば、システム・メモリ1016中もしくはディスク・ストレージ1024上に格納されたプログラム・モジュール1032およびプログラム・データ1034を介して、オペレーティング・システム1028によるリソースのマネジメントを利用する。当然のことながら、本開示は、様々なオペレーティング・システムまたはオペレーティング・システムの組み合せとともに実装することが可能である。ユーザは、入力デバイス(単数または複数)1036を介して、コンピュータ1012の中にコマンドまたは情報を入力する。入力デバイス1036は、以下に限らないが、マウスなどのポインティング・デバイス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星受信アンテナ、スキャナ、TVチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含む。これらのおよび他のデバイスは、インターフェース・ポート(単数または複数)1038を介し、システム・バス1018を通って処理ユニット1014に連結される。インターフェース・ポート(単数または複数)1038は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)を含む。出力デバイス(単数または複数)1040は、入力デバイス(単数または複数)1036と同じ型のいくつかのポートを使用する。しかして、例えば、USBポートは、コンピュータ1012への入力とコンピュータ1012から出力デバイス1040への出力情報とを供給するために使用することができる。出力アダプタ1042は、数ある出力デバイス1040の中で、モニタ、スピーカ。およびプリンタなど特別なアダプタを必要とするいくつかの出力デバイス1040があることを示すために提示されている。出力アダプタ1042は、限定でなく例示として、出力デバイス1040とシステム・バス1018との間の連結の手段を提供するビデオおよびサウンド・カードを含む。遠隔コンピュータ(単数または複数)1044など、他のデバイスもしくはデバイスのシステムまたはその両方が入力および出力両方の機能を備えていることに留意すべきである。
コンピュータ1012は、遠隔コンピュータ(単数または複数)1044など、1つ以上の遠隔コンピュータへのロジック接続を用いて、ネットワーク化環境中で動作することができる。遠隔コンピュータ(単数または複数)1044は、コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサ・ベースの電気機器、ピア・デバイスまたは他の一般的なネットワーク・ノードなどであってよく、通常、これらも同様にコンピュータ1012に関連して説明したような構成要素の多くまたは全てを含むことができる。簡潔化のため、メモリ・ストレージ・デバイス1046だけが、遠隔コンピュータ(単数または複数)1044と一緒に示されている。遠隔コンピュータ(単数または複数)1044は、ネットワーク・インターフェース1048を通してコンピュータ1012と論理的に接続され、次いで通信接続1050を介して物理的に連結されている。ネットワーク・インターフェース1048は、ローカル・エリア・ネットワーク(LAN:local-area network)、広域ネットワーク(WAN:wide-area network)、セルラ・ネットワークなど、有線もしくはワイヤレス通信ネットワークまたはその両方を包含する。LAN技術は、ファイバ・ディストリビューテッド・データ・インターフェース(FDDI:Fiber Distributed Data Interface)、銅線配線データ・インターフェース(CDDI:Copper Distributed Data Interface)、イーサネット(R)、トークン・リングなどを含む。WAN技術は、以下に限らないが、二点間リンク、統合サービス・ディジタル・ネットワーク(ISDN:Integrated Services Digital Network)およびその変形などの回線交換ネットワーク、パケット交換ネットワーク、およびデジタル加入者回線(DSL:Digital Subscriber Line)を含む。通信接続(単数または複数)1050は、ネットワーク・インターフェース1048をシステム・バス1018に連結するために用いられるハードウェア/ソフトウェアのことを言う。例示の明瞭化のため、通信接続1050がコンピュータ1012の内側に示されているが、これはコンピュータ1012の外部にあってもよい。また、ネットワーク・インターフェース1048への接続のためのハードウェア/ソフトウェアは、例示のためだけであるが、標準の電話グレードのモデム、ケーブル・モデム、およびDSLモデムを含むモデム、ISDNアダプタ、およびイーサネット(R)カードなど、内部および外部の技術を含むことが可能である。
本開示は、任意の可能な技術的詳細の集約度で、システム、方法、装置、もしくはコンピュータ・プログラム製品またはこれらの組み合せとすることができる。このコンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラムを有するコンピュータ可読ストレージ媒体(または媒体群)を含むことが可能である。このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持し格納できる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のデバイスの任意の適切な組み合せであってよい。コンピュータ可読ストレージ媒体のさらに具体的な例の非包括的リストには、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去およびプログラム可能読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、携帯型コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フレキシブル・ディスク、パンチカードまたは記録された命令を有する溝中の嵩上げ構造体などの機械的符号化デバイス、および前述の任意の適切な組み合せが含まれる。本明細書で用いられるコンピュータ可読ストレージ媒体は、無線波または他の自由に伝播する電磁波、ウェーブガイドまたは他の送信媒体(例えば、光ファイバを通過する光パルス)、またはワイヤを通って送信される電気信号など、本質的に一時的な信号であると解釈されるものではない。
本明細書に述べられたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング/処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくはワイヤレス・ネットワークまたはこれらの組み合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスにダウンロードすることが可能である。このネットワークには、銅送信ケーブル、光送信ファイバ、ワイヤレス通信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバまたはこれらの組み合せが含まれてよい。それぞれのコンピューティング/処理デバイス中のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、ストレージのため、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体の中に転送する。本開示のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令集合アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合せで記述されたソース・コードもしくはオブジェクト・コードであってよい。このコンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは(例えばインターネット・サービス・プロバイダを使いインターネットを介し)外部のコンピュータへの接続を行うことも可能である。いくつかの実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate array)、またはプログラマブル論理アレイ(PLA:programmable logic array)を含む電子回路は、本開示の諸態様を実行すべく、該電子回路をカスタマイズするためコンピュータ可読プログラム命令の状態情報を利用することによって、該コンピュータ可読プログラム命令を実行することができる。
本開示の諸態様は、本開示の諸実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら本明細書で説明されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合せは、コンピュータ可読プログラム命令によって実装することが可能である。これらのコンピュータ可読プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラマブル・データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実装するための手段を生成するようにすることができる。また、コンピュータ、プログラマブル・データ処理装置、もしくは他のデバイスまたはこれらの組み合せに対し特定の仕方で機能するよう命令することが可能なこれらのコンピュータ可読プログラム命令を、コンピュータ可読ストレージ媒体に格納し、格納された命令を有するコンピュータ可読ストレージ媒体が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能/動作の諸態様を実装する命令群を包含する製造品を構成するようにすることができる。さらに、これらコンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードし、そのコンピュータ上で、他のプログラマブル装置上で、または他のデバイス上で一連のオペレーション・ステップを実施させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上で、他のプログラマブル装置上でもしくは他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実装するようにすることも可能である。
諸図面中のフローチャートおよびブロック図は、本開示の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品から可能となる実装のアーキテクチャ、機能性、およびオペレーションを表している。この点に関し、フローチャートまたはブロック図中の各ブロックは、特定の論理機能(単数または複数)を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、または命令の部分を表し得る。
いくつかの別の実装においては、ブロック中に記載された機能が、図面に記載された順序から外れて行われてよい。例えば、連続して示された2つのブロックが、関与する機能性に応じ、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する特殊用途ハードウェア・ベースのシステムによって実装でき、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実行できることにも留意すべきである。
本主題を、コンピュータもしくはコンピュータ群またはその両方で実行される、コンピュータ・プログラム製品のコンピュータ実行可能命令の一般的コンテキストで前述してきたが、当業者は、本開示が、他のプログラム・モジュールと組み合せて実装するまたは実装されることが可能であることも認識するであろう。一般に、プログラム・モジュールは、特定のタスクを実行するもしくは特定の抽象データ型を実装するまたはその両方を行うルーティン、プログラム、コンポーネント、データ構造体などを含む。さらに、当業者は、本発明のコンピュータ実装の方法が、シングルプロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、およびコンピュータ、ハンドヘルド・コンピューティング・デバイス(例えば、PDA、電話)、マイクロプロセッサ・ベースのまたはプログラマブルな消費者または産業用電子機器などを含め、他のコンピュータ・システム構成によっても実践可能であることをよく認識していよう。また、これら例示の態様は、通信ネットワークを介してリンクされた遠隔の処理デバイス群によってタスクが実行される分散コンピューティング環境においても実践可能である。また一方、本開示の、全ての態様でなくても、その一部はスタンドアローン・コンピュータ上で実践することができる。分散コンピューティング環境において、プログラム・モジュールは、ローカルおよび遠隔両方のメモリ・ストレージ・デバイスに配置することが可能である。
本出願中での使用において、用語「コンポーネント」、「システム」、「インターフェース」などは、コンピュータ関連のエンティティ、または1つ以上の特定の機能を備えた演算マシンに関連するエンティティに言及することがあり得、もしくはそれらを含むことがあり得、またはその両方があり得る。本明細書で開示されたエンティティは、ハードウェア、ハードウェアとソフトウェアとの組み合せ、ソフトウェア、または実行中のソフトウェアにいずれかであり得る。例えば、或るコンポーネントは、限定はされないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、もしくはコンピュータ、またはこれらの組み合せであり得る。例として、サーバ上で実行されているアプリケーションおよびそのサーバの両方が一コンポーネントであってよい。1つ以上のコンポーネントが、プロセッサもしくは実行のスレッドまたはその両方に存在することができ、或るコンポーネントが1つのコンピュータに局在すること、もしくは2つ以上のコンピュータに分散されること、またはその両方が可能である。別の例では、それぞれのコンポーネントを、格納された様々なデータ構造を有する様々なコンピュータ可読媒体から実行することが可能である。これらコンポーネントは、例えば1つ以上のデータ・パケット(例えば、ローカル・システム、分散システム中で、もしくは、インターネットなどのネットワークを通して他のシステムと信号を介して別のコンポーネントと相互作用している1つのコンポーネントからのデータ)を有する信号によって、ローカルもしくは遠隔またはその両方のプロセスを介して通信することができる。別の例として、或るコンポーネントは、電子または電気回路により作動される機械的部品によって提供される特定の機能を備えた装置であってよく、該回路は、プロセッサにより実行されるソフトウェアまたはファームウェア・アプリケーションによって作動される。かかる場合、そのプロセッサは、装置の内部にあっても外部にあってもよく、そのソフトウェアまたはファームウェアの少なくとも一部を実行することができる。さらなる別の例として、或るコンポーネントは、機械的部品なしに、電子コンポーネントを介して特定の機能を提供する装置であってよく、この電子コンポーネントは、プロセッサ、またはその電子コンポーネントの機能を少なくとも部分的に提供するソフトウェアまたはファームウェアを実行するための他の手段を含むことが可能である。或る態様において、或るコンポーネントは、例えばクラウド・コンピューティング・システム内で、仮想マシンを介して電子コンポーネントをエミュレートすることができる。
さらに、用語「または」は、排他的「または」ではなく包括的「または」を意味するように意図されている。すなわち、別途に指定されてるか、または文脈から明瞭な場合を除き、「XはAまたはBを用いる」は、自然な包含的順列のうちの任意のものを意味するように意図されている。すなわち、「XはAまたはBを用いる」は、XがAを用いる、XがBを用いる、またはXがAとBとの両方を用いるのうちのいずれによっても満たされる。さらに、本明細書および添付の図面中で使用される冠詞「或る(a、an)」は、別途に指定されているか、または文脈から単数形を対象とすることが明瞭な場合を除き、一般に「1つ以上」を意味すると解釈されるべきである。本明細書で用いられる用語「例示の」もしくは「例示的な」またはその両方は、例、具体例、または事例としての役割を意味するために使われる。疑問が出ないように言えば、本明細書で開示された主題はかかる例には限定されない。さらに、本明細書で、「例示の」もしくは「例示的な」またはその両方として説明されたいずれの態様または設計も、必ずしも他の態様または設計よりも好ましいかまたは有利であるとも、当業者に既知の等価の例示的な構造または技法の排除を意味するとも解釈されるべきでない。
本明細書で用いられている用語「プロセッサ」は、実質上、以下に限定はされないが、シングルコア・プロセッサ、ソフトウェアのマルチスレッド実行機能を備えたシングルコア・プロセッサ、マルチコア・プロセッサ、ソフトウェアのマルチスレッド実行機能を備えたマルチコア・プロセッサ、ハードウェアのマルチスレッド技術を備えたマルチコア・プロセッサ、並列プラットフォーム、および分散共有メモリを備えた並列プラットフォームを含む、任意のコンピューティング処理ユニットまたはデバイスを言及してよい。さらに、プロセッサは、集積回路、特定用途向け集積回路(ASIC:application specific integrated circuit)、デジタル信号プロセッサ(DSP:digital signal processor)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル・ロジック・コントローラ(PLC:programmable logic controller)、複合プログラマブル・ロジック・デバイス(CPLD:complex programmable logic device)、ディスクリート・ゲートまたはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、または、本明細書に記載の機能を遂行するために設計されたこれらの任意の組み合わせを言及してよい。さらに、プロセッサは、スペース利用の最適化またはユーザ装置のパフォーマンスの向上のために、以下に限らないが、分子または量子ドットベースのトランジスタ、スイッチ、およびゲートなどナノスケールのアーキテクチャを利用することが可能である。また、プロセッサは、計算処理ユニットの組み合せとして実装することもできる。本開示において、「格納」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、および実質的には、或るコンポーネントのオペレーションおよび機能に関連する任意の情報ストレージ・コンポーネントは、「メモリ・コンポーネント」、「メモリ」中に具現化されたエントリ、またはメモリを含むコンポーネントを言及するために用いられる。当然のことながら、本明細書に記載のメモリもしくはメモリ・コンポーネントまたはその両方は、揮発性もしくは不揮発性であってよく、または揮発性および不揮発性メモリの両方を含むことも可能である。限定でなく例示として、不揮発性メモリは、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(例えば、強誘電性RAM(FeRAM))を含むことができる。揮発性メモリはRAMを含むことができ、これは、例えば外部キャッシュ・メモリとして機能することが可能である。限定でなく例示として、RAMは、同期RAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、同期リンクDRAM(SLDRAM:Synchlink DRAM)、ダイレクト・ラムバスRAM(DRRAM)、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM)、およびラムバス・ダイナミックRAM(RDRAM)など多くの形で利用可能である。さらに、本明細書に開示のシステムまたはコンピュータ実装の方法のメモリ・コンポーネントは、含むことに限定はされないが、これらのまたは他の適切な型のメモリを含むように意図されている。
上記で説明してきたことは、システムおよびコンピュータ実装の方法の単なる例を含む。当然のことながら、本開示を説明するために、コンポーネントまたはコンピュータ実装の方法のあらゆる考えられる組み合せを記述するのは不可能であるが、 当業者は、本開示の多くのさらなる組み合せおよび並び替えが可能であることを理解できよう。詳細な説明、クレーム、付属書、および図面の中で、用語「含む」、「有する」、「所有する」および類似用語が使用されている範囲内において、かかる用語は、用語「を含めて(comprising)」は、クレーム中で用いられる場合移行語として解釈されるので、用語「を含めて」と同様に包括的であることが意図されている。
上記様々な実施形態の説明は、例示目的で提示されたもので、網羅的であることも、または開示された実施形態に限定することも意図されていない。当業者には、説明された実施形態の範囲および趣旨から逸脱することのない多くの改変および変形が明白であろう。本明細書で用いられた用語は、諸実施形態の原理、実際上の応用、または市販の技術の技術的な改良を最善に説明し、または他の当業者が本明細書に開示された諸実施形態を理解できるように選択されたものである。

Claims (12)

  1. コンピュータ実行可能コンポーネントを格納するメモリと、
    前記メモリ中に格納された前記コンピュータ実行可能コンポーネントを実行する第一プロセッサであって、前記コンピュータ実行可能コンポーネントが、
    クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、前記クライアント・アプリケーション・プログラム・インターフェースの前記記述を改変し、前記クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得る、
    第二プロセッサと、
    前記クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析して、前記クライアント・アプリケーション・プログラム・インターフェースの前記改変された記述と、1つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの1つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成する、
    オントロジ・ユニットと、
    エンティティによるクエリに基づいて、Wu-Palmerによって計算される単語類似性を判断し、2つ以上の単語の関連性が、前記2つ以上の単語の最小共通包摂の深さを計算することによって取得される、
    クエリ・マッチャ・ユニットと、
    を含む、システム。
  2. 前記オントロジが、エンティティのプリファレンスを表すプリファレンスデータにさらに基づく、請求項1に記載のシステム。
  3. 前記エンティティの前記プリファレンスに従って解析を行うため、前記プリファレンスデータが前記オントロジ・ユニットに送信される、請求項2に記載のシステム。
  4. 前記エンティティの前記プリファレンスが、前記エンティティによって開始されたテキストベースのクエリを介して前記オントロジ・ユニットに送信される、請求項2に記載のシステム。
  5. 前記オントロジ・ユニットが、エンティティによって開始されたテキストベースのクエリに基づいてアプリケーション・プログラム・インターフェースを推奨する、請求項1に記載のシステム。
  6. 前記第二プロセッサが、前記エンティティの予測されるインテントと比較するための階層的インテントを生成する、請求項3に記載のシステム。
  7. 前記第二プロセッサが、適合していると判断されている用語の頻度に基づいて、前記テキスト・データを抽出する、請求項1に記載のシステム。
  8. プロセッサに、
    クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、前記クライアント・アプリケーション・プログラム・インターフェースの前記記述を改変し、前記クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得させ、
    前記クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析して、前記クライアント・アプリケーション・プログラム・インターフェースの前記改変された記述と、1つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの1つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成させ、
    エンティティによるクエリに基づいて、Wu-Palmerによって計算される単語類似性を判断し、2つ以上の単語の関連性が、前記2つ以上の単語の最小共通包摂の深さを計算することによって取得されるためのコンピュータ・プログラム。
  9. プロセッサが、
    クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、前記クライアント・アプリケーション・プログラム・インターフェースの前記記述を改変し、前記クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得るステップと、
    前記クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析して、前記クライアント・アプリケーション・プログラム・インターフェースの前記改変された記述と、1つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの1つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するステップと、
    エンティティによるクエリに基づいて、Wu-Palmerによって計算される単語類似性を判断するステップであって、2つ以上の単語の関連性が、前記2つ以上の単語の最小共通包摂の深さを計算することによって取得される、前記判断するステップと、
    を実行するコンピュータ実装の方法。
  10. コンピュータ実行可能コンポーネントを格納するメモリと、
    前記メモリ中に格納された前記コンピュータ実行可能コンポーネントを実行する第一プロセッサであって、前記コンピュータ実行可能コンポーネントが、
    エンティティによって提供されたフィードバック・データに基づいて、前記エンティティから受信された、対象領域オントロジを表す対象領域オントロジ・データを解析し、
    前記対象領域オントロジ・データに基づいて、コミュニティを生成するため、アプリケーション・プログラム・インターフェース推奨システムを訓練する、
    ニューラル・ネットワーク・ユニット、
    エンティティによるクエリに基づいて、Wu-Palmerによって計算される単語類似性を判断し、2つ以上の単語の関連性が、前記2つ以上の単語の最小共通包摂の深さを計算することによって取得される、
    クエリ・マッチャ・ユニット、
    を含む、前記第一プロセッサと、
    を含むシステム。
  11. 前記ニューラル・ネットワーク・ユニットが、前記対象領域オントロジ・データに基づいて、前記エンティティのクエリからのテキスト・データを前記コミュニティに割り当てる、請求項10に記載のシステム。
  12. テキスト・データが第一テキスト・データであり、前記コンピュータ実行可能コンポーネントが、
    前記エンティティの予測されるインテントを判断するために、前記クエリから第二テキスト・データを抽出する第二プロセッサ、
    をさらに含む、請求項11に記載のシステム。
JP2020532793A 2017-12-20 2018-12-12 対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨の促進 Active JP7316721B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/848,589 2017-12-20
US15/848,589 US10803108B2 (en) 2017-12-20 2017-12-20 Facilitation of domain and client-specific application program interface recommendations
PCT/IB2018/059903 WO2019123112A1 (en) 2017-12-20 2018-12-12 Facilitation of domain and client-specific application program interface recommendations

Publications (3)

Publication Number Publication Date
JP2021508866A JP2021508866A (ja) 2021-03-11
JP2021508866A5 JP2021508866A5 (ja) 2021-07-26
JP7316721B2 true JP7316721B2 (ja) 2023-07-28

Family

ID=66814490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020532793A Active JP7316721B2 (ja) 2017-12-20 2018-12-12 対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨の促進

Country Status (6)

Country Link
US (1) US10803108B2 (ja)
JP (1) JP7316721B2 (ja)
CN (1) CN111386524B (ja)
DE (1) DE112018005813T5 (ja)
GB (1) GB2583638A (ja)
WO (1) WO2019123112A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674287A (zh) * 2018-06-07 2020-01-10 阿里巴巴集团控股有限公司 层级意图体系的建立方法及装置
US10977250B1 (en) * 2018-09-11 2021-04-13 Intuit, Inc. Responding to similarity queries using vector dimensionality reduction
US11170032B2 (en) * 2018-10-03 2021-11-09 Walmart Apollo, Llc Method and apparatus for determining responses to digital inquiry related questions
US11194331B2 (en) * 2018-10-30 2021-12-07 The Regents Of The University Of Michigan Unsupervised classification of encountering scenarios using connected vehicle datasets
US11404058B2 (en) 2018-10-31 2022-08-02 Walmart Apollo, Llc System and method for handling multi-turn conversations and context management for voice enabled ecommerce transactions
US11238850B2 (en) * 2018-10-31 2022-02-01 Walmart Apollo, Llc Systems and methods for e-commerce API orchestration using natural language interfaces
US11288453B1 (en) * 2019-03-22 2022-03-29 Pinterest, Inc. Key-word identification
CN112351076B (zh) * 2020-10-21 2023-07-18 咪咕文化科技有限公司 推荐系统api的生成方法、装置、电子设备及存储介质
CN112799928B (zh) * 2021-01-29 2023-08-18 索为技术股份有限公司 基于知识图谱的工业app关联性分析方法、装置及介质
US11635878B2 (en) * 2021-01-31 2023-04-25 Walmart Apollo, Llc Systems and methods for altering a graphical user interface
US20220262359A1 (en) * 2021-02-17 2022-08-18 Samsung Electronics Co., Ltd. Electronic device and operation method thereof
CN115862333B (zh) * 2022-12-07 2023-11-21 东南大学 考虑信息流特征的高速公路车路协同场景和功能划分方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011078186A1 (ja) 2009-12-22 2011-06-30 日本電気株式会社 文書クラスタリングシステム、文書クラスタリング方法および記録媒体
JP2014506702A (ja) 2011-02-25 2014-03-17 エンパイア テクノロジー ディベロップメント エルエルシー オントロジ拡張
US20160162456A1 (en) 2014-12-09 2016-06-09 Idibon, Inc. Methods for generating natural language processing systems
US20160239711A1 (en) 2013-10-18 2016-08-18 Vision Semanatics Limited Visual Data Mining
US20160342685A1 (en) 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Ontology-Crowd-Relevance Deep Response Generation
CN106209959A (zh) 2015-05-26 2016-12-07 徐尚英 基于用户需求的网络服务智能发现方法
US20170277693A1 (en) 2016-03-28 2017-09-28 International Business Machines Corporation Image and data capture and machine learning for automatic generation of search queries

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286047B1 (en) 1998-09-10 2001-09-04 Hewlett-Packard Company Method and system for automatic discovery of network services
US6640231B1 (en) 2000-10-06 2003-10-28 Ontology Works, Inc. Ontology for database design and application development
US7734652B2 (en) 2003-08-29 2010-06-08 Oracle International Corporation Non-negative matrix factorization from the data in the multi-dimensional data table using the specification and to store metadata representing the built relational database management system
US7383269B2 (en) * 2003-09-12 2008-06-03 Accenture Global Services Gmbh Navigating a software project repository
US7716357B2 (en) 2003-10-24 2010-05-11 Microsoft Corporation Service discovery and publication
US20070288419A1 (en) 2006-06-07 2007-12-13 Motorola, Inc. Method and apparatus for augmenting data and actions with semantic information to facilitate the autonomic operations of components and systems
US8813102B2 (en) 2008-02-22 2014-08-19 Samsung Electronics Co., Ltd. Method and apparatus for generating mashup graph, and method and apparatus for recommending mashup service
US20100235313A1 (en) * 2009-03-16 2010-09-16 Tim Rea Media information analysis and recommendation platform
US20110153590A1 (en) 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Apparatus and method for searching for open api and generating mashup block skeleton code
US8627322B2 (en) 2010-10-29 2014-01-07 Google Inc. System and method of active risk management to reduce job de-scheduling probability in computer clusters
US8719257B2 (en) 2011-02-16 2014-05-06 Symantec Corporation Methods and systems for automatically generating semantic/concept searches
US8577914B2 (en) 2011-05-18 2013-11-05 Google Inc. APIS discovery service
US9621435B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US9454767B2 (en) 2013-03-13 2016-09-27 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a related command with a predictive query interface
US9130900B2 (en) 2013-03-15 2015-09-08 Bao Tran Assistive agent
US9965792B2 (en) 2013-05-10 2018-05-08 Dell Products L.P. Picks API which facilitates dynamically injecting content onto a web page for search engines
US9448859B2 (en) 2013-09-17 2016-09-20 Qualcomm Incorporated Exploiting hot application programming interfaces (APIs) and action patterns for efficient storage of API logs on mobile devices for behavioral analysis
CN104516910B (zh) * 2013-09-26 2018-01-12 Sap欧洲公司 在客户端服务器环境中推荐内容
EP3063652B1 (en) * 2013-10-30 2020-04-29 Hewlett-Packard Enterprise Development LP Application programable interface (api) discovery
US9146787B2 (en) * 2013-11-07 2015-09-29 Accenture Global Services Limited Analytics for application programming interfaces
US9015730B1 (en) 2013-12-17 2015-04-21 International Business Machines Corporation Natural language access to application programming interfaces
KR102067017B1 (ko) 2014-01-27 2020-02-11 한국전자통신연구원 매쉬업 서비스를 위한 가상 api 제공 장치 및 방법
US9886247B2 (en) * 2014-10-30 2018-02-06 International Business Machines Corporation Using an application programming interface (API) data structure in recommending an API composite
US9588738B2 (en) * 2015-02-16 2017-03-07 International Business Machines Corporation Supporting software application developers to iteratively refine requirements for web application programming interfaces
US9921952B2 (en) 2015-06-02 2018-03-20 International Business Machines Corporation Early risk identification in DevOps environments
US10354006B2 (en) * 2015-10-26 2019-07-16 International Business Machines Corporation System, method, and recording medium for web application programming interface recommendation with consumer provided content
US10705835B2 (en) 2015-12-03 2020-07-07 International Business Machines Corporation Transparent multi-architecture support in a container based cloud
US9626627B1 (en) * 2016-01-26 2017-04-18 International Business Machines Corporation Predicting API storytelling mapping
US10031745B2 (en) 2016-02-02 2018-07-24 International Business Machines Corporation System and method for automatic API candidate generation
US10606658B2 (en) * 2016-03-22 2020-03-31 International Business Machines Corporation Approach to recommending mashups
US20170364331A1 (en) 2016-06-17 2017-12-21 International Business Machines Corporation Method to support multiple versions of apis and to control run-time execution of an api
CN106445515A (zh) 2016-09-18 2017-02-22 深圳市华云中盛科技有限公司 一种基于容器的PaaS云的实现方法
US20180232442A1 (en) * 2017-02-16 2018-08-16 International Business Machines Corporation Web api recommendations
CN107122469B (zh) * 2017-04-28 2019-12-17 中国人民解放军国防科学技术大学 基于语义相似度与时效性频率的查询推荐排序方法与装置
CN107479879B (zh) 2017-07-28 2021-09-14 扬州大学 一种面向软件功能维护的api及其使用推荐方法
US10409820B2 (en) * 2017-09-19 2019-09-10 Adobe Inc. Semantic mapping of form fields
US10360087B2 (en) * 2017-10-27 2019-07-23 International Business Machines Corporation Web API recommendations based on usage in cloud-provided runtimes
US10579371B2 (en) * 2017-12-13 2020-03-03 International Business Machines Corporation Recommendations for custom software upgrade by cognitive technologies

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011078186A1 (ja) 2009-12-22 2011-06-30 日本電気株式会社 文書クラスタリングシステム、文書クラスタリング方法および記録媒体
JP2014506702A (ja) 2011-02-25 2014-03-17 エンパイア テクノロジー ディベロップメント エルエルシー オントロジ拡張
US20160239711A1 (en) 2013-10-18 2016-08-18 Vision Semanatics Limited Visual Data Mining
US20160162456A1 (en) 2014-12-09 2016-06-09 Idibon, Inc. Methods for generating natural language processing systems
US20160342685A1 (en) 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Ontology-Crowd-Relevance Deep Response Generation
CN106209959A (zh) 2015-05-26 2016-12-07 徐尚英 基于用户需求的网络服务智能发现方法
US20170277693A1 (en) 2016-03-28 2017-09-28 International Business Machines Corporation Image and data capture and machine learning for automatic generation of search queries

Also Published As

Publication number Publication date
US20190188319A1 (en) 2019-06-20
GB202010666D0 (en) 2020-08-26
GB2583638A (en) 2020-11-04
DE112018005813T5 (de) 2020-07-30
JP2021508866A (ja) 2021-03-11
US10803108B2 (en) 2020-10-13
CN111386524A (zh) 2020-07-07
CN111386524B (zh) 2023-09-12
WO2019123112A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
JP7316721B2 (ja) 対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨の促進
JP7303195B2 (ja) 対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨の促進
US11436487B2 (en) Joint embedding of corpus pairs for domain mapping
US11755843B2 (en) Filtering spurious knowledge graph relationships between labeled entities
Wang et al. Application of convolutional neural network in natural language processing
Nguyen et al. Aggregating and predicting sequence labels from crowd annotations
US20220050967A1 (en) Extracting definitions from documents utilizing definition-labeling-dependent machine learning background
US10061766B2 (en) Systems and methods for domain-specific machine-interpretation of input data
US10657189B2 (en) Joint embedding of corpus pairs for domain mapping
Mehmood et al. A precisely xtreme-multi channel hybrid approach for roman urdu sentiment analysis
Al Hamoud et al. Sentence subjectivity analysis of a political and ideological debate dataset using LSTM and BiLSTM with attention and GRU models
US10642919B2 (en) Joint embedding of corpus pairs for domain mapping
Zhang et al. Event recognition based on deep learning in Chinese texts
Vidyashree et al. An improvised sentiment analysis model on twitter data using stochastic gradient descent (SGD) optimization algorithm in stochastic gate neural network (SGNN)
Mutanga et al. Detecting hate speech on Twitter network using ensemble machine learning
Lee et al. Detecting suicidality with a contextual graph neural network
Arbaaeen et al. Natural language processing based question answering techniques: A survey
Sampathirao Suneetha et al. Aspect-based sentiment analysis: A comprehensive survey of techniques and applications
US20220318316A1 (en) Graph-based event schema induction for information retrieval
US20220164598A1 (en) Determining a denoised named entity recognition model and a denoised relation extraction model
Mai et al. Scalable disambiguation system capturing individualities of mentions
Chen et al. Learning word embeddings from intrinsic and extrinsic views
US20240303496A1 (en) Exploiting domain-specific language characteristics for language model pretraining
Xu et al. Intent Recognition
Esmailzadeh et al. Cognitive-aware Short-text Understanding for Inferring Professions

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210525

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220802

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20220928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20220929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230602

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230620

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20230620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230713

R150 Certificate of patent or registration of utility model

Ref document number: 7316721

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150