JP2024020653A - テキストの意味的類似性をそのサブセクションに基づいて決定すること - Google Patents
テキストの意味的類似性をそのサブセクションに基づいて決定すること Download PDFInfo
- Publication number
- JP2024020653A JP2024020653A JP2023210677A JP2023210677A JP2024020653A JP 2024020653 A JP2024020653 A JP 2024020653A JP 2023210677 A JP2023210677 A JP 2023210677A JP 2023210677 A JP2023210677 A JP 2023210677A JP 2024020653 A JP2024020653 A JP 2024020653A
- Authority
- JP
- Japan
- Prior art keywords
- text
- record
- segments
- sample
- vector
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 83
- 239000013598 vector Substances 0.000 claims description 229
- 238000010801 machine learning Methods 0.000 claims description 33
- 238000012549 training Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 16
- 230000002085 persistent effect Effects 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims 2
- 230000002123 temporal effect Effects 0.000 claims 1
- 230000001052 transient effect Effects 0.000 claims 1
- 239000000523 sample Substances 0.000 description 121
- 238000013528 artificial neural network Methods 0.000 description 48
- 238000007726 management method Methods 0.000 description 37
- 238000004891 communication Methods 0.000 description 25
- 238000013500 data storage Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 230000008901 benefit Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 10
- 230000018109 developmental process Effects 0.000 description 10
- 238000003058 natural language processing Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 102100033973 Anaphase-promoting complex subunit 10 Human genes 0.000 description 4
- OAUWKHSGCCPXOD-UHFFFAOYSA-N DOC1 Natural products C1=CC(O)=C2C(CC(=O)NCCCCCNCCCNCCCNCCCN)=CNC2=C1 OAUWKHSGCCPXOD-UHFFFAOYSA-N 0.000 description 4
- 101000779315 Homo sapiens Anaphase-promoting complex subunit 10 Proteins 0.000 description 4
- 101000737813 Homo sapiens Cyclin-dependent kinase 2-associated protein 1 Proteins 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000012706 support-vector machine Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 206010012586 Device interaction Diseases 0.000 description 1
- 102100028572 Disabled homolog 2 Human genes 0.000 description 1
- 101000866272 Homo sapiens Double C2-like domain-containing protein alpha Proteins 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3347—Query execution using vector based model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】テキストの対象サンプルをテキストレコードのセットと比較するシステム及び方法を提供する。【解決手段】各テキストレコードは、テキストのサンプルと、テキストのサンプル内のテキストの1つ又は複数のセグメントの標識とを含む。テキストの対象サンプルとテキストレコードの各々との間の意味的類似性値が決定される。テキストの対象サンプルとコーパスの特定のテキストレコードとの間の特定の意味的類似性値を決定することは、(i)テキストの対象サンプルと特定のテキストレコードにより示されるテキストのセグメントの各々との間の個別の意味的類似性値を決定すること、及び(ii)個別の意味的類似性値に基づいて、テキストの対象サンプルと特定のテキストレコードとの間の特定の意味的類似性値を生成することを含む。次いで、テキストレコードが意味的類似性に基づいて選択される。【選択図】図11
Description
テキストのサンプル間の類似性を決定すること又は他の形式でテキストのサンプルを比較することは、様々な用途において有益である。これは、テキストサンプルのコーパスから、何らかの点でテキストの対象サンプルと類似する1つ又は複数のサンプルを識別するために行うことができる。例えば、テキストの対象サンプルは、情報技術の問題に関するユーザの記述を含むことがあり、対象サンプルは、様々な情報技術のトピック及び/又は情報技術の問題の解決を記述するデータベース内の記事と比較され得る。問題についてのユーザの記述をデータベース内の記事と比較することによって、1つ又は複数の「最も関連性のある」又は他の点で類似する記事をユーザ及び/又は技術者に提供して、ユーザ及び/又は技術者を効率的に解決に導くことができる。
自然言語処理又は他の方法を用いてテキストのサンプルを比較することができる。これは、テキストのサンプル内のパターンを見つけ出すため、又はクエリに関連するサンプル若しくは他の形式でテキストの対象サンプルに類似するサンプルを識別するため、又は他の何らかの利点を提供するために行われ得る。例えば、クエリは、ユーザが経験している問題を記述するテキストのサンプルを含むことができる。次いで、クエリテキストとデータベース内の記事のテキストとの間で類似性値を決定することができ、クエリに最も類似する1つ又は複数の記事をユーザに提供できるようになる。この比較により、ユーザに提供される結果の質を改善し、及び/又は問題の解決策を決定し実施する前にユーザが費やす時間を削減することができる。
しかしながら、記事又はテキストの他のサンプルが(例えば、クエリテキストに対して)大きい場合、有用な結果を生成するような形で記事をクエリテキストと比較することが困難になる可能性がある。例えば、より長い記事が、特定のクエリテキストに関連するサブセクションを含みながらも、関連しない他の部分も含むことがある。結果として、記事における関連しない部分の影響により、そのような関連する記事が検出されない可能性がある。
この問題に対処するために、記事又はテキストの他の大きなサンプルがセグメントに分割され得る。セグメントは、テキストの大きなサンプル内の文、パラグラフ、若しくは他の句読法に従って、クエリテキストのサンプルに基づいて訓練されたセグメンテーションアルゴリズムを使用して、又は他の何らかの方法に従って決定され得る。これは、テキストのセグメントのサイズが、比較される可能性のあるクエリと同様のサイズになるように行われ得る。次いで、クエリテキストと、テキストの大きなサンプルのそれぞれの各セグメントとの間で、類似性値を作成することができる。次いで、テキストの特に大きなサンプルの全体的な類似性値が、テキストのその大きなサンプル内のテキストセグメントの各々についての類似性値に基づいて決定され得る。これは、それらのセグメント類似性値を合計すること、最大セグメント類似性値を決定すること、何個のセグメント類似性値が閾値を超えるかを決定すること、又は他の何らかの方法を含み得る。次いで、テキストの大きなサンプルの全体的な類似性値を使用して、クエリテキストに関連するテキストの大きなサンプルを選択し、又は他の何らかの用途を容易にすることができる。
したがって、第1の例示的実施形態は、コンピュータ実装方法を含むことができ、コンピュータ実装方法は、(i)サーバ装置によって、テキストレコードのコーパスを取得するステップであって、テキストレコードの各々が、テキストのサンプルと、テキストのサンプル内のテキストの1つ又は複数のセグメントの標識とを含み、テキストレコードのうちの少なくとも1つは、テキストのサンプル内のテキストの少なくとも2つのセグメントの標識を含む、ステップと、(ii)サーバ装置によって、クライアント装置から、テキストの対象サンプルを取得するステップと、(iii)サーバ装置によって、テキストの対象サンプルとテキストレコードの各々との間の意味的類似性値を決定するステップと、(iv)意味的類似性値に基づいて、サーバ装置によって、コーパスから、テキストレコードが他のいずれのテキストレコードよりもテキストの対象サンプルに類似することを示す意味的類似性を有するテキストレコードを選択するステップと、(v)サーバ装置によって、クライアント装置へ、テキストレコードの表現を提供するステップとを含む。テキストの対象サンプルとコーパスの特定のテキストレコードとの間の特定の意味的類似性値を決定するステップは、(i)テキストの対象サンプルと特定のテキストレコードにより示されるテキストのセグメントの各々との間の個別の意味的類似性値を決定するステップ、及び(ii)個別の意味的類似性値に基づいて、テキストの対象サンプルと特定のテキストレコードとの間の特定の意味的類似性値を生成するステップを含む。
第2の例示的実施形態では、製造品が、プログラム命令を記憶した非一時的コンピュータ可読媒体を含むことができ、プログラム命令は、コンピューティングシステムによって実行されると、第1の例示的実施形態に従う動作をコンピューティングシステムに実行させる。
第3の例示的実施形態では、コンピューティングシステムは、少なくとも1つのプロセッサ、並びにメモリ及びプログラム命令を含むことができる。プログラム命令は、メモリに記憶され、少なくとも1つのプロセッサによって実行されると、第1の例示的実施形態に従う動作をコンピューティングシステムに実行させることができる。
第4の例示的実施形態では、システムは、第1の例示的実施形態の動作のそれぞれを実行するための様々な手段を含むことができる。
いくつかの実施形態では、テキストレコードの各々が、テキストの別個のサンプル内のテキストの少なくとも2つのセグメントの別個の標識を含む。すなわち、テキストレコードの全てが、テキストの複数のセグメントを含むことができる。代替的に、テキストレコードの1つ又は複数は、テキストの単一のセグメントのみを含んでもよい。例えば、テキストのより短いサンプルは、複数のセグメントに分割されないことがある。
いくつかの実施形態では、テキストの対象サンプルと特定のテキストレコード内のテキストの特定のセグメントとの間の個別の意味的類似性値を決定するステップが、(i)テキストの対象サンプルのベクトル表現を取得するステップであって、テキストの対象サンプルのベクトル表現は、(a)第1の意味的に符号化されたベクトル空間において、テキストの対象サンプルの各別個のワードの意味を記述するワードベクトル、又は(b)第2の意味的に符号化されたベクトル空間において、テキストの対象サンプルの複数ワードの意味を記述するパラグラフベクトルのうちの少なくとも一方を含む、ステップと、(ii)テキストの特定のセグメントのベクトル表現を取得するステップであってテキストの特定のセグメントのベクトル表現は、(a)第1の意味的に符号化されたベクトル空間において、テキストの特定のセグメントの各別個のワードの意味を記述するワードベクトル、又は(ii)第2の意味的に符号化されたベクトル空間において、テキストの特定のセグメントの複数ワードの意味を記述するパラグラフベクトルのうちの少なくとも一方を含む、ステップと、(iii)テキストの対象サンプルのベクトル表現とテキストの特定のセグメントのベクトル表現との間の意味的類似性値を決定するステップとを含む。
いくつかの実施形態では、個別の意味的類似性値に基づいて、テキストの対象サンプルと特定のテキストレコードとの間の特定の意味的類似性値を生成するステップは、(i)テキストの対象サンプルと特定のテキストレコードにより示されるテキストのセグメントの各々との間の個別の意味的類似性値の各々を、閾値類似性レベルと比較するステップと、(ii)閾値類似性レベルを超える個別の意味的類似性値の数を、特定の意味的類似性値として決定するステップとを含む。
いくつかの実施形態では、個別の意味的類似性値に基づいて、テキストの対象サンプルと特定のテキストレコードとの間の特定の意味的類似性値を生成するステップは、(i)テキストの対象サンプルと特定のテキストレコードにより示されるテキストのセグメントの各々との間の個別の意味的類似性値の合計を生成するステップと、(ii)合計を、特定のテキストレコードにより示されるテキストのセグメントの数に正規化するステップとを含む。
いくつかの実施形態では、テキストの各サンプル内のテキストの1つ又は複数のセグメントの標識は、テキストの非重複セグメントを示す。
いくつかの実施形態では、テキストの各サンプル内のテキストの1つ又は複数のセグメントの標識は、それぞれが1つ又は複数の別々の文を表すテキストのセグメントを示す。
いくつかの実施形態では、実行される上記方法は、(i)1つ又は複数のクライアント装置から複数のクエリを取得するステップであって、各クエリはテキストのサンプルを含む、ステップと、(ii)テキストのサンプル内のテキストの関係付けられたセグメントを予測するために、複数のクエリに基づいて、機械学習モデルを訓練するステップと、(iii)テキストレコードのコーパスのテキストのサンプル内のテキストの1つ又は複数のセグメントの標識を生成するために、訓練された機械学習モデルをテキストレコードのコーパスに適用するステップとを更に含む。
上記及び他の実施形態、態様、利点、及び代替形態は、添付の図面を適宜参照して以下の詳細な説明を読むことによって当業者に明らかになるであろう。更に、本明細書に提供されたこの概要並びに他の説明及び図は、単に例として実施形態を示すことを意図しており、したがって、多くの変形が可能である。例えば、構造要素及び処理ステップは、請求項に係る実施形態の範囲内に留まりながら、再配置、結合、分散、若しくは除去され、又は他の方法で変更され得る。
例示的な方法、装置、及びシステムが本明細書で説明される。「例」及び「例示的」という言葉は、本明細書では「実施例、例、又は例示として機能すること」を意味するように使用されると理解されるべきである。本明細書で「例」又は「例示的」であると説明される任意の実施形態又は特徴は、そのように明言されない限り、他の実施形態又は特徴よりも好ましい又は有利であると必ずしも解釈される必要はない。したがって、本明細書で示される主題の範囲から逸脱することなく、他の実施形態が使用されてよく、他の変更がなされてよい。
したがって、本明細書に記載の例示的実施形態は、限定するように意図されていない。本開示の態様は、本明細書に一般的に記載され図示されるように、様々な異なる形態で配置、置換、結合、分離、設計され得ることは容易に理解されるであろう。例えば、「クライアント」構成要素と「サーバ」構成要素への特徴の分離は、多くの方法で生じ得る。
更に、文脈が別段に示唆しない限り、各図に示される特徴は互いに組み合わされて使用されてよい。したがって、図面は、一般に、全ての図示された特徴が各実施形態に必要であるとは限らないことを理解した上で、1つ又は複数の全体的な実施形態の構成要素の態様とみなされるべきである。
更に、本明細書又は特許請求の範囲における要素、ブロック又は、ステップの列挙は、明瞭性の目的のためである。したがって、このような列挙は、これらの要素、ブロック、又はステップが特定の配列に固定される又は特定の順序で実行されることを必要とする又は示唆すると解釈されるべきではない。
I.序論
大企業は、相互に関連する多くの業務を含む複雑な実体である。これらの中には、人事(HR)、サプライチェーン、情報技術(IT)、及び財務などのように企業に横断的に見られるものもある。しかしながら、それぞれの企業は、本質的な機能を提供し及び/又は競争優位性を創出する、それ独自の業務も有する。
大企業は、相互に関連する多くの業務を含む複雑な実体である。これらの中には、人事(HR)、サプライチェーン、情報技術(IT)、及び財務などのように企業に横断的に見られるものもある。しかしながら、それぞれの企業は、本質的な機能を提供し及び/又は競争優位性を創出する、それ独自の業務も有する。
広く実施される業務をサポートするために、企業は一般的に、顧客関係管理(CRM)及び人的資本管理(HCM)パッケージのような既製のソフトウェアアプリケーションを使用する。しかしながら、企業は、自身の独自の要件を満たすためにカスタムソフトウェアアプリケーションを必要とすることもある。大企業は、多くの場合、数十から数百のこうしたカスタムソフトウェアアプリケーションを有する。それにもかかわらず、本明細書の実施形態によって提供される利点は、大企業に限定されず、任意の規模の企業又は他の任意のタイプの組織に適用され得る。
多くのそのようなソフトウェアアプリケーションは、企業内の個々の部門によって開発される。これらは、簡単なスプレッドシートからカスタムメイドのソフトウェアツール及びデータベースまで様々である。しかし、サイロ化されたカスタムソフトウェアアプリケーションの急増には多くの欠点がある。それは、企業の業務を運営し成長させ、革新し、規制要件を満たすための企業の能力に対して悪影響を及ぼす。企業は、そのサブシステムとデータを統合する単一のシステムがないために、その業務を統合し合理化し強化することが困難になる可能性がある。
カスタムアプリケーションを効率的に作成するために、企業は、不必要な開発の複雑さを排除するリモートホストされたアプリケーションプラットフォームの恩恵を受けるであろう。そのようなプラットフォームの目標は、時間を消費する反復的なアプリケーション開発タスクを減らして、ソフトウェアエンジニア及び他の役割の個人が独自の高価値の機能の開発に集中できるようにすることである。
この目標を達成するために、サービスとしてのアプリケーションプラットフォーム(aPaaS)の概念が導入されて、企業全体にわたるワークフローがインテリジェントに自動化される。aPaaSシステムは企業からリモートでホストされるが、安全な接続を介して企業内のデータ、アプリケーション、及びサービスにアクセスすることができる。そのようなaPaaSシステムは、いくつかの有利な能力及び特徴を有することができる。これらの利点及び特徴は、IT、HR、CRM、顧客サービス、アプリケーション開発、及びセキュリティに関する企業の業務及びワークフローを改善する可能性がある。
aPaaSシステムは、モデル・ビュー・コントローラ(MVC)アプリケーションの開発及び実行をサポートすることができる。MVCアプリケーションは、情報の表現をその情報がユーザに提示される方法から分離するために、それらの機能を3つの相互接続部分(モデル、ビュー、及びコントローラ)に分割し、それにより、効率的なコード再利用及び並列開発を可能にする。これらのアプリケーションはウェブベースとすることができ、作成、読取り、更新、削除(CRUD)能力を提供することができる。これにより、新しいアプリケーションを共通のアプリケーションインフラストラクチャ上に構築することが可能になる。
aPaaSシステムは、グラフィカルユーザインターフェース(GUI)開発用のウィジェットの標準化されたセットなど、標準化されたアプリケーション構成要素をサポートすることができる。このようにして、aPaaSシステムを使用して構築されたアプリケーションは共通のルックアンドフィールを有する。他のソフトウェア構成要素及びモジュールも標準化されることがある。場合によっては、このルックアンドフィールは、企業のカスタムロゴ及び/又は配色を用いてブランド化又はスキン化され得る。
aPaaSシステムは、メタデータを使用してアプリケーションの挙動を設定する能力をサポートすることができる。これにより、アプリケーションの挙動を特定のニーズに合うように迅速に適応させることができる。そのような手法により、開発時間が短縮し、柔軟性が向上する。更に、aPaaSシステムは、メタデータの作成及び管理を容易にするGUIツールをサポートし、それによりメタデータ内のエラーを減らすことができる。
aPaaSシステムは、アプリケーション間の明確に定義されたインターフェースをサポートしているため、ソフトウェア開発者は望ましくないアプリケーション間の依存関係を回避することができる。したがって、aPaaSシステムは、永続的状態情報及び他のデータが記憶されるサービス層を実装することができる。
aPaaSシステムは、統合機能の豊富なセットをサポートしているため、システム上のアプリケーションがレガシアプリケーション及びサードパーティアプリケーションと対話することができる。例えば、aPaaSシステムは、レガシーのHR、IT、及び会計システムと統合するカスタムの従業員オンボーディングシステムをサポートすることができる。
aPaaSシステムは、エンタプライズレベルのセキュリティをサポートすることができる。また、aPaaSシステムはリモートでホストされ得るので、企業内のシステム、又は企業外でホストされるサードパーティのネットワーク及びサービスと対話するときに、セキュリティ手順も利用すべきである。例えば、aPaaSシステムは、一般的なセキュリティの脅威を検出し識別するために、企業及び他の関係者の間でデータを共有するように構成され得る。
aPaaSシステムには他の特徴、機能、及び利点もあり得る。この説明は、例示を目的としており、限定することを意図していない。
aPaaS開発プロセスの例として、ソフトウェア開発者は、aPaaSシステムを使用して新しいアプリケーションを作成する任務を与えられることがある。まず、開発者はデータモデルを定義することができ、それにより、アプリケーションが使用するデータのタイプ及びそれらの間の関係を指定する。次いで、aPaaSシステムのGUIを介して、開発者はデータモデルを入力(例えばアップロード)する。aPaaSシステムは、対応するデータベーステーブル、フィールド、及び関係の全てを自動的に作成し、それらには、オブジェクト指向サービス層を介してアクセスすることができる。
更に、aPaaSシステムは、クライアント側のインターフェースとサーバ側のCRUDロジックを有する完全機能MVCアプリケーションを構築することもできる。この生成されたアプリケーションは、ユーザのための更なる開発の基盤として機能することができる。有利なことに、開発者は基本的なアプリケーション機能に大量の時間を費やす必要がない。更に、アプリケーションはウェブベースとすることができるので、任意のインターネット対応クライアント装置からアクセスすることができる。代替的又は追加的に、例えばインターネットサービスが利用できないときに、アプリケーションのローカルコピーにアクセスできることがある。
aPaaSシステムは、アプリケーションに追加できる予め定義された機能の豊富なセットをサポートすることもできる。これらの機能は、検索、電子メール、テンプレート、ワークフロー設計、レポート、分析、ソーシャルメディア、スクリプト作成、モバイル対応の出力、及びカスタマイズされたGUIのサポートを含む。
以下の実施形態は、例示的なaPaaSシステムのアーキテクチャ及び機能的態様、並びにその特徴及び利点を説明する。
II.例示的なコンピューティング装置及びクラウドベースのコンピューティング環境
図1は、コンピューティング装置100を例示する簡略ブロック図であり、本明細書の実施形態に従って動作するように構成されたコンピューティング装置に含まれ得る構成要素のいくつかを示す。コンピューティング装置100は、クライアント装置(例えば、ユーザによって能動的に操作される装置)、サーバ装置(例えば、クライアント装置に計算サービスを提供する装置)、又は他の何らかのタイプの計算プラットフォームであり得る。サーバ装置によっては、特定の動作を実行するために時としてクライアント装置として動作する場合があり、クライアント装置によっては、サーバ機能を組み込んでいる場合がある。
図1は、コンピューティング装置100を例示する簡略ブロック図であり、本明細書の実施形態に従って動作するように構成されたコンピューティング装置に含まれ得る構成要素のいくつかを示す。コンピューティング装置100は、クライアント装置(例えば、ユーザによって能動的に操作される装置)、サーバ装置(例えば、クライアント装置に計算サービスを提供する装置)、又は他の何らかのタイプの計算プラットフォームであり得る。サーバ装置によっては、特定の動作を実行するために時としてクライアント装置として動作する場合があり、クライアント装置によっては、サーバ機能を組み込んでいる場合がある。
この例では、コンピューティング装置100は、プロセッサ102、メモリ104、ネットワークインターフェース106、及び入出力ユニット108を含み、それらの全ては、システムバス110又は同様のメカニズムによって結合することができる。いくつかの実施形態では、コンピューティング装置100は、他の構成要素及び/又は周辺装置(例えば、取外し可能ストレージ、プリンタなど)を含んでよい。
プロセッサ102は、中央処理装置(CPU)、コプロセッサ(例えば、数学、グラフィックス、又は暗号化コプロセッサ)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、及び/又はプロセッサ動作を実行する集積回路若しくはコントローラの形態など、任意のタイプのコンピュータ処理要素のうちの1つ又は複数とすることができる。場合によっては、プロセッサ102は、1つ又は複数のシングルコアプロセッサであってよい。他の場合、プロセッサ102は、複数の独立した処理ユニットを有する1つ又は複数のマルチコアプロセッサであってよい。また、プロセッサ102は、実行されている命令及び関連データを一時的に記憶するためのレジスタメモリ、並びに最近使用された命令及びデータを一時的に記憶するためのキャッシュメモリを含むことができる。
メモリ104は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、及び不揮発性メモリ(例えば、フラッシュメモリ、ハードディスクドライブ、ソリッドステートドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、及び/又はテープストレージ)を含むがこれらに限定されない、任意の形態のコンピュータ使用可能メモリであってよい。したがって、メモリ104は主記憶装置と長期記憶装置の両方を表す。他のタイプのメモリは生物学的メモリを含み得る。
メモリ104は、プログラム命令及び/又はプログラム命令が動作し得るデータを記憶することができる。例として、メモリ104は、これらのプログラム命令を非一時的コンピュータ可読媒体に記憶することができ、したがって、これらの命令は、本明細書又は添付の図面で開示される任意の方法、プロセス、又は動作を行うためにプロセッサ102によって実行可能である。
図1に示されるように、メモリ104は、ファームウェア104A、カーネル104B、及び/又はアプリケーション104Cを含むことができる。ファームウェア104Aは、コンピューティング装置100の一部又は全部をブート又は他の様式で起動するために使用されるプログラムコードであり得る。カーネル104Bは、メモリ管理、プロセスのスケジューリング及び管理、入出力、並びに通信のためのモジュールを含む、オペレーティングシステムであり得る。カーネル104Bは、オペレーティングシステムがコンピューティング装置100のハードウェアモジュール(例えば、メモリユニット、ネットワーキングインターフェース、ポート、及びバス)と通信することを可能にする、デバイスドライバを含むこともできる。アプリケーション104Cは、ウェブブラウザ又は電子メールクライアント、並びにこれらのプログラムによって使用される任意のソフトウェアライブラリなどの、1つ又は複数のユーザ空間ソフトウェアプログラムであり得る。メモリ104は、これら並びに他のプログラム及びアプリケーションによって使用されるデータを記憶することもできる。
ネットワークインターフェース106は、イーサネット(例えば、ファストイーサネット、ギガビットイーサネット)などの1つ又は複数の有線インターフェースの形態をとることができる。ネットワークインターフェース106は、同軸ケーブル若しくは電力線などの1つ若しくは複数の非イーサネット媒体を介する通信、又は同期光ネットワーク(SONET)又はデジタル加入者線(DSL)技術などの広域媒体を介する通信をサポートすることもできる。ネットワークインターフェース106は更に、IEEE802.11(Wifi)、BLUETOOTH(登録商標)、全地球測位システム(GPS)、又は広域無線インターフェースなどの1つ又は複数の無線インターフェースの形態をとることもできる。しかしながら、他の形態の物理層インターフェース及び他のタイプの標準又は独自仕様の通信プロトコルがネットワークインターフェース106を介して使用されてもよい。更に、ネットワークインターフェース106は複数の物理インターフェースを含むこともできる。例えば、コンピューティング装置100のいくつかの実施形態は、イーサネット、BLUETOOTH(登録商標)、及びWifiインターフェースを含むことができる。
入出力ユニット108は、コンピューティング装置100とユーザ及び周辺装置の対話を容易にすることができる。入出力ユニット108は、キーボード、マウス、タッチスクリーンなどの1つ又は複数のタイプの入力装置を含むことができる。同様に、入出力ユニット108は、スクリーン、モニタ、プリンタ、及び/又は1つ若しくは複数の発光ダイオード(LED)などの1つ又は複数のタイプの出力装置を含むことができる。追加的又は代替的に、コンピューティング装置100は、例えば、ユニバーサルシリアルバス(USB)又は高精細マルチメディアインターフェース(HDMI)ポートインターフェースを使用して、他の装置と通信することができる。
いくつかの実施形態では、コンピューティング装置100のような1つ又は複数のコンピューティング装置が展開されてaPaaSアーキテクチャをサポートすることができる。これらのコンピューティング装置の正確な物理的位置、接続性、及び構成は、クライアント装置にとって不明であってよく、及び/又は重要でなくてもよい。したがって、コンピューティング装置は、様々なリモートデータセンタの場所に収容され得る「クラウドベース」装置と呼ばれることがある。
図2は、例示的実施形態によるクラウドベースのサーバクラスタ200を示す。図2では、コンピューティング装置(例えば、コンピューティング装置100)の動作は、サーバ装置202、データストレージ204、及びルータ206の間で分散されることができ、それらの全ては、ローカルクラスタネットワーク208によって接続することができる。サーバクラスタ200内のサーバ装置202、データストレージ204、及びルータ206の数は、サーバクラスタ200に割り当てられたコンピューティングタスク及び/又はアプリケーションに依存し得る。
例えば、サーバ装置202は、コンピューティング装置100の様々なコンピューティングタスクを実行するように構成され得る。したがって、コンピューティングタスクは、1つ又は複数のサーバ装置202の間で分散することができる。これらのコンピューティングタスクを並列に実行できる限り、タスクのそのような分散により、これらのタスクを完了して結果を返すまでの合計時間を短縮することができる。簡単にするために、サーバクラスタ200と個々のサーバ装置202の両方が「サーバ装置」と呼ばれることがある。この命名は、1つ又は複数の別個のサーバ装置、データストレージ装置、及びクラスタルータがサーバ装置動作に関与し得ることを示唆すると理解されるべきである。
データストレージ204は、ハードディスクドライブ及び/又はソリッドステートドライブのグループに対する読取り及び書込みアクセスを管理するように構成されたドライブアレイコントローラを含むデータストレージアレイであり得る。また、ドライブアレイコントローラは、単独で又はサーバ装置202と共に、データストレージ204に記憶されたデータのバックアップ又は冗長コピーを管理して、1つ又は複数のサーバ装置202がデータストレージ204のユニットにアクセスするのを妨げるドライブの障害又は他のタイプの障害からの保護をするように構成され得る。ドライブ以外の他のタイプのメモリが使用されてもよい。
ルータ206は、サーバクラスタ200のための内部及び外部通信を提供するように構成されたネットワーク機器を含むことができる。例えば、ルータ206は、(i)ローカルクラスタネットワーク208を介するサーバ装置202とデータストレージ204との間のネットワーク通信、及び/又は(ii)ネットワーク212への通信リンク210を介するサーバクラスタ200と他の装置との間のネットワーク通信を提供するように構成された、1つ又は複数のパケット交換及び/又はルーティング装置(スイッチ及び/又はゲートウェイを含む)を含むことができる。
更に、ルータ206の構成は、サーバ装置202及びデータストレージ204のデータ通信要件、ローカルクラスタネットワーク208のレイテンシ及びスループット、通信リンク210のレイテンシ、スループット、及びコスト、並びに/又は、コスト、速度、耐故障性、回復力、効率、及び/若しくはシステムアーキテクチャの他の設計目標に寄与し得る他のファクタに、少なくとも部分的に基づくことができる。
可能な例として、データストレージ204は、構造化照会言語(SQL)データベースなどの任意の形態のデータベースを含むことができる。テーブル、アレイ、リスト、ツリー、及びタプルを含むがこれらに限定されない様々なタイプのデータ構造により、そのようなデータベースに情報を格納することができる。更に、データストレージ204における任意のデータベースは、モノリシックであってよく、又は複数の物理装置にわたって分散されてもよい。
サーバ装置202は、データストレージ204との間でデータを送受信するように構成され得る。この送信及び取得はそれぞれ、SQLクエリ又は他のタイプのデータベースクエリの形態、及びそのようなクエリの出力の形態をとることができる。追加のテキスト、画像、ビデオ、及び/又はオーディオも含まれてよい。更に、サーバ装置202は、受信したデータをウェブページ表現へ編成することができる。そのような表現は、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)、又は他の何らかの標準化された若しくは独自仕様のフォーマットなど、マークアップ言語の形態をとることができる。更に、サーバ装置202は、限定されないが、Perl、Python、PHPハイパーテキストプリプロセッサ(PHP)、アクティブサーバページ(ASP)、JavaScript(登録商標)など、様々なタイプのコンピュータ化スクリプト言語を実行する能力を有することができる。これらの言語で書かれたコンピュータプログラムコードは、クライアント装置へのウェブページの提供、並びにウェブページとクライアント装置の対話を容易にすることができる。
III.例示的リモートネットワーク管理アーキテクチャ
図3は、例示的実施形態によるリモートネットワーク管理アーキテクチャを示す。このアーキテクチャは、インターネット350を介して全て接続された3つの主な構成要素である、管理対象ネットワーク300、リモートネットワーク管理プラットフォーム320、及びサードパーティネットワーク340を含む。
図3は、例示的実施形態によるリモートネットワーク管理アーキテクチャを示す。このアーキテクチャは、インターネット350を介して全て接続された3つの主な構成要素である、管理対象ネットワーク300、リモートネットワーク管理プラットフォーム320、及びサードパーティネットワーク340を含む。
管理対象ネットワーク300は、例えば、コンピューティング及び通信タスク、並びにデータの記憶のために実体によって使用される企業ネットワークであり得る。したがって、管理対象ネットワーク300は、クライアント装置302、サーバ装置304、ルータ306、仮想マシン308、ファイアウォール310、及び/又はプロキシサーバ312を含むことができる。クライアント装置302はコンピューティング装置100によって具現化されてよく、サーバ装置304はコンピューティング装置100又はサーバクラスタ200によって具現化されてよく、ルータ306は任意のタイプのルータ、スイッチ、又はゲートウェイであってよい。
仮想マシン308は、コンピューティング装置100又はサーバクラスタ200のうちの1つ又は複数によって具現化され得る。一般に、仮想マシンは、コンピューティングシステムのエミュレーションであり、物理的コンピュータの機能(例えば、プロセッサ、メモリ、及び通信リソース)を模倣する。サーバクラスタ200などの1つの物理的コンピューティングシステムは、最大数千個の個別仮想マシンをサポートすることができる。いくつかの実施形態では、仮想マシン308は、個別仮想マシンに対する物理的コンピューティングリソースの割り当て、並びにパフォーマンス及びエラーの報告を容易にする、集中型サーバ装置又はアプリケーションによって管理され得る。企業は、必要に応じて、効率的にコンピューティングリソースを割り当てるために仮想マシンをしばしば使用する。仮想化コンピューティングシステムのプロバイダには、VMWARE(登録商標)及びMICROSOFT(登録商標)が含まれる。
ファイアウォール310は、管理対象ネットワーク300から開始される許可された通信を可能にしながら、管理対象ネットワーク300をその中の装置、アプリケーション、及びサービスにアクセスする不正な試みから保護する、1つ又は複数の専用ルータ又はサーバ装置であり得る。ファイアウォール310はまた、侵入検出、ウェブフィルタリング、ウイルススキャン、アプリケーション層ゲートウェイ、及び他のアプリケーション又はサービスを提供することができる。図3に示されていないいくつかの実施形態では、管理対象ネットワーク300は、リモートネットワーク管理プラットフォーム320と通信するために用いる1つ又は複数の仮想プライベートネットワーク(VPN)ゲートウェイを含むことができる(下記参照)。
管理対象ネットワーク300は、1つ又は複数のプロキシサーバ312を含むこともできる。プロキシサーバ312の一実施形態は、管理対象ネットワーク300、リモートネットワーク管理プラットフォーム320、及びサードパーティネットワーク340の間のデータの通信及び移動を容易にするサーバ装置とすることができる。特に、プロキシサーバ312は、リモートネットワーク管理プラットフォーム320の1つ又は複数の計算インスタンスとの安全な通信セッションを確立し維持することが可能であり得る。そのようなセッションによって、リモートネットワーク管理プラットフォーム320は、管理対象ネットワーク300及びその構成要素のアーキテクチャ及び構成の態様を発見し管理することが可能であり得る。場合によっては、プロキシサーバ312の助けを借りて、リモートネットワーク管理プラットフォーム320は、管理対象ネットワーク300によって使用されるサードパーティネットワーク340の態様を発見し管理することも可能であり得る。
ファイアウォール310などのファイアウォールは、通常、インターネット350を介して着信する全ての通信セッションに関して、そのようなセッションがファイアウォールの背後から(即ち、管理対象ネットワーク300上の装置から)最終的に開始されたか、又はファイアウォールがそのセッションをサポートするように明示的に構成されていない限り、それら全ての通信セッションを拒否する。プロキシサーバ312をファイアウォール310の背後に(例えば、管理対象ネットワーク300内に、ファイアウォール310によって保護されるように)配置することによって、プロキシサーバ312は、ファイアウォール310を介してこれらの通信セッションを開始することが可能であり得る。したがって、ファイアウォール310はリモートネットワーク管理プラットフォーム320からの着信セッションをサポートするために特に構成される必要がなく、それにより、管理対象ネットワーク300に対する潜在的なセキュリティリスクを回避し得る。
場合によっては、管理対象ネットワーク300は、数個の装置と少数のネットワークとから構成されることがある。他の展開では、管理対象ネットワーク300は複数の物理的場所にまたがり、数百のネットワーク及び数十万の装置を含むことができる。したがって、図3に示されるアーキテクチャは桁違いに拡大又は縮小することが可能である。
更に、管理対象ネットワーク300のサイズ、アーキテクチャ、及び接続性に応じて、様々な数のプロキシサーバ312がその中に展開され得る。例えば、プロキシサーバ312のそれぞれが、管理対象ネットワーク300の一部分に関してリモートネットワーク管理プラットフォーム320との通信を担当することができる。代替的又は追加的に、負荷分散、冗長性、及び/又は高可用性を目的として、2つ以上のプロキシサーバのセットが管理対象ネットワーク300のそのような一部分に割り当てられてもよい。
リモートネットワーク管理プラットフォーム320は、aPaaSサービスをユーザに特に管理対象ネットワーク300のオペレータに提供するホストされた環境である。これらのサービスは、例えば、ウェブベースのポータルの形態をとることができる。したがって、ユーザは、例えば、クライアント装置302から、又は潜在的に管理対象ネットワーク300の外部のクライアント装置から、リモートネットワーク管理プラットフォーム320に安全にアクセスすることができる。ウェブベースのポータルを介して、ユーザは、アプリケーションを設計、テスト、及び展開し、レポートを生成し、分析を表示し、並びに他のタスクを実行することができる。
図3に示されるように、リモートネットワーク管理プラットフォーム320は、4つの計算インスタンス322、324、326、及び328を含む。これらのインスタンスのそれぞれは、特定の顧客に利用可能な一組のウェブポータル、サービス、及びアプリケーション(例えば、完全に機能するaPaaSシステム)を提供する1つ又は複数のサーバ装置及び/又は1つ又は複数のデータベースを表すことができる。場合によっては、単一の顧客が複数の計算インスタンスを使用してもよい。例えば、管理対象ネットワーク300は、リモートネットワーク管理プラットフォーム320の企業顧客であってよく、計算インスタンス322、324、及び326を使用してもよい。複数のインスタンスを1人の顧客に提供する理由は、顧客が独立してそのアプリケーション及びサービスを開発、テスト、及び展開したいと希望することがあるからである。したがって、計算インスタンス322は、管理対象ネットワーク300に関連するアプリケーション開発に専用とされてよく、計算インスタンス324は、これらのアプリケーションのテストに専用とされてよく、計算インスタンス326は、テストされるアプリケーション及びサービスのライブ運用に専用とされてよい。計算インスタンスは、ホストインスタンス、リモートインスタンス、顧客インスタンス、又は他の何らかの名称で呼ばれてもよい。計算インスタンス上に展開された任意のアプリケーションは、計算インスタンス内のデータベースへのアクセスが、その中の特定の要素(例えば、1つ又は複数の特定のデータベーステーブル又は1つ又は複数のデータベーステーブルを有する特定の行)に限定され得るという点で、スコープ指定されたアプリケーションであり得る。
明瞭にするために、本明細書の開示では、物理的なハードウェア、ソフトウェア、及びそれらの配置を「計算インスタンス」と呼ぶ。ユーザがそれによって提供されるグラフィカルユーザインターフェースを口語的に「インスタンス」と呼び得ることに留意されたい。しかし、本明細書において特に定義されない限り、「計算インスタンス」は、リモートネットワーク管理プラットフォーム320内に配置されたコンピューティングシステムである。
リモートネットワーク管理プラットフォーム320のマルチインスタンスアーキテクチャは従来のマルチテナントアーキテクチャとは対照的であり、マルチインスタンスアーキテクチャはいくつかの利点を有する。マルチテナントアーキテクチャでは、異なる顧客(例えば企業)からのデータが、単一のデータベースに一緒にされる。これらの顧客のデータは互いに分離されているが、その分離は単一のデータベースを動作させるソフトウェアによって実施される。結果として、このシステムでのセキュリティ違反は全ての顧客のデータに影響を及ぼし、特に政府、医療、及び/又は金融規制の対象となる実体にとって追加のリスクを発生させる可能性がある。更に、1人の顧客に影響を及ぼす任意のデータベース動作が、そのデータベースを共有する全ての顧客に影響を及ぼす可能性がある。したがって、ハードウェア又はソフトウェアのエラーによる機能停止がある場合、この機能停止は全てのそのような顧客に影響を与える。同様に、データベースが1人の顧客のニーズに合わせてアップグレードされる場合、アップグレードプロセス中に全ての顧客に利用できなくなる。しばしば、そのようなメンテナンス期間は、共有されるデータベースのサイズが原因で長くなる。
対照的に、マルチインスタンスアーキテクチャは、各顧客に対し、専用のコンピューティングインスタンスにおいてその独自のデータベースを提供する。これにより、顧客データの混合を防ぎ、各インスタンスを独立して管理することが可能になる。例えば、ある顧客のインスタンスがエラー又はアップグレードによる機能停止を経験しても、他の計算インスタンスは影響されない。データベースには1人の顧客のデータしか含まないので、メンテナンスのダウン時間は限定される。更に、マルチインスタンスアーキテクチャのより単純な設計は、各顧客データベース及びインスタンスの冗長コピーが地理的に多様な方法で展開されることを可能にする。これにより、障害が検出されたとき又はメンテナンスが実行されているときに顧客のインスタンスのライブバージョンを移動できるような、高可用性を促進する。
いくつかの実施形態では、リモートネットワーク管理プラットフォーム320は、このプラットフォームを動作させるエンティティによって制御される1つ又は複数の中央インスタンスを含むことができる。計算インスタンスと同様に、中央インスタンスは、いくつかの数の物理的又は仮想的なサーバ及びデータベース装置を含むことができる。そのような中央インスタンスは、少なくともいくつかの計算インスタンスの間で共有できるデータのためのリポジトリとして機能することができる。例えば、計算インスタンス上で発生し得る共通のセキュリティ脅威の定義、計算インスタンス上で一般的に発見されるソフトウェアパッケージ、及び/又は計算インスタンスに展開され得るアプリケーションのためのアプリケーションストアが、中央インスタンス内に存在することができる。計算インスタンスは、このデータを得るために、明確に定義されたインターフェースを介して中央インスタンスと通信することができる。
複数の計算インスタンスを効率的な方法でサポートするために、リモートネットワーク管理プラットフォーム320は、単一のハードウェアプラットフォーム上に複数のこれらのインスタンスを実装することができる。例えば、aPaaSシステムがサーバクラスタ200などのサーバクラスタ上に実装された場合、それは様々な量の計算、記憶、及び通信リソースをインスタンス専用とする仮想マシンを動作させることができる。しかし、サーバクラスタ200の完全な仮想化は必要ではない場合もあり、他のメカニズムがインスタンスを分離するために使用されてもよい。いくつかの例では、各インスタンスは、サーバクラスタ200上に、専用アカウント及び1つ又は複数の専用データベースを有することができる。代替的に、計算インスタンス322は複数の物理装置にまたがることがある。
場合によっては、リモートネットワーク管理プラットフォーム320の単一のサーバクラスタが、複数の独立した企業をサポートすることができる。更に、後述するように、リモートネットワーク管理プラットフォーム320は、負荷分散、冗長性、及び/又は高可用性を促進するために、地理的に様々なデータセンタに展開された複数のサーバクラスタを含むことができる。
サードパーティネットワーク340は、アウトソーシングされた計算、データ記憶、通信、及びサービスホスティング動作のために使用できるリモートサーバ装置(例えば、サーバクラスタ200などの複数のサーバクラスタ)であり得る。これらのサーバは仮想化されてもよい(即ち、サーバは仮想マシンであってもよい)。サードパーティネットワーク340の例には、AMAZON WEB SERVICES(登録商標)及びMICROSOFT(登録商標)AZURE(登録商標)が含まれ得る。リモートネットワーク管理プラットフォーム320と同様に、サードパーティネットワーク340をサポートする複数のサーバクラスタは、負荷分散、冗長性、及び/又は高可用性を目的として、地理的に様々な場所に展開され得る。
管理対象ネットワーク300は、サードパーティネットワーク340の1つ又は複数を使用して、アプリケーション及びサービスをそのクライアント及び顧客に展開することができる。例えば、管理対象ネットワーク300がオンライン音楽ストリーミングサービスを提供する場合、サードパーティネットワーク340が、音楽ファイルを記憶し、ウェブインターフェース及びストリーミング機能を提供することができる。このように、管理対象ネットワーク300の企業は、これらの動作のためにそれ自体のサーバを構築し維持する必要がない。
リモートネットワーク管理プラットフォーム320は、サードパーティネットワーク340と統合してその中の仮想マシン及び管理対象サービスを管理対象ネットワーク300に公開するモジュールを含むことができる。そのモジュールは、ユーザが、仮想リソースを要求し、サードパーティネットワーク340についての柔軟なレポートを提供することを可能にすることができる。この機能を確立するために、管理対象ネットワーク300からのユーザは、まずサードパーティネットワーク340とのアカウントを確立し、関連リソースのセットを要求し得る。次いで、ユーザは、アカウント情報をリモートネットワーク管理プラットフォーム320の適切なモジュールに入力することができる。これらのモジュールは、次いで、アカウント内の管理可能なリソースを自動的に発見し、更に、使用、パフォーマンス、及び課金に関する報告を提供することもできる。
インターネット350は、グローバルインターネットの一部を表し得る。しかしながら、インターネット350は、代替的に、プライベートワイドエリア又はローカルエリアパケット交換ネットワークのような異なるタイプのネットワークを表すこともある。
図4は更に、管理対象ネットワーク300と計算インスタンス322との間の通信環境を示し、追加の特徴及び代替的実施形態を導入する。図4では、計算インスタンス322は、データセンタ400A及び400Bにまたがって複製されている。これらのデータセンタは、互いに地理的に離れており、場合によっては異なる都市又は異なる国にあってよい。各データセンタは、管理対象ネットワーク300及びリモートユーザとの通信を容易にするサポート機器を含む。
データセンタ400Aにおいて、外部装置との間のネットワークトラフィックは、VPNゲートウェイ402A又はファイアウォール404Aのいずれかを通って流れる。VPNゲートウェイ402Aは、インターネットプロトコルセキュリティ(IPSEC)又はトランスポート層セキュリティ(TLS)などのセキュリティプロトコルを介して、管理対象ネットワーク300のVPNゲートウェイ412とピア接続され得る。ファイアウォール404Aは、ユーザ414及びリモートユーザ416のような許可されたユーザからのアクセスを可能にし、許可されていないユーザへのアクセスを拒否するように構成され得る。ファイアウォール404Aを介して、これらのユーザは、計算インスタンス322に、場合によっては他の計算インスタンスにアクセスすることができる。ロードバランサ406Aは、計算インスタンス322をホストする1つ又は複数の物理又は仮想サーバ装置の間でトラフィックを分散させるために使用され得る。ロードバランサ406Aは、クライアント装置からデータセンタ400Aの内部構成(例えば、計算インスタンス322)を隠すことによって、ユーザクセスを単純化することができる。例えば、計算インスタンス322が複数のデータベースへのアクセスを共有する複数の物理又は仮想コンピューティング装置を含む場合、ロードバランサ406Aは、どのコンピューティング装置又はデータベースも他より著しくビジーにならないように、ネットワークトラフィック及び処理タスクをこれらのコンピューティング装置及びデータベースにわたって分散させることができる。いくつかの実施形態では、計算インスタンス322は、VPNゲートウェイ402A、ファイアウォール404A、及びロードバランサ406Aを含むことができる。
データセンタ400Bは、データセンタ400A内の構成要素のそれ自体のバージョンを含むことができる。したがって、VPNゲートウェイ402B、ファイアウォール404B、及びロードバランサ406Bはそれぞれ、VPNゲートウェイ402A、ファイアウォール404A、及びロードバランサ406Aと同じ又は類似の動作を行うことができる。更に、リアルタイム又は準リアルタイムのデータベースレプリケーション及び/又は他の動作によって、計算インスタンス322はデータセンタ400A及び400B内に同時に存在することができる。
図4に示されるようなデータセンタ400A及び400Bは、冗長性及び高可用性を促進することができる。図4の構成では、データセンタ400Aがアクティブであり、データセンタ400Bがパッシブである。したがって、データセンタ400B内の計算インスタンス322のバージョンがほぼリアルタイムで更新されている一方で、データセンタ400Aは管理対象ネットワーク300との間の全てのトラフィックを処理している。両方のデータセンタがアクティブであるような他の構成もサポートされ得る。
データセンタ400Aが何らかの様式で失敗し又はユーザに利用できなくなった場合、データセンタ400Bがアクティブなデータセンタとして引き継ぐことができる。例えば、計算インスタンス322のドメイン名をデータセンタ400Aの1つ又は複数のインターネットプロトコル(IP)アドレスと関連付けるドメインネームシステム(DNS)サーバが、そのドメイン名をデータセンタ400Bの1つ又は複数のIPアドレスと再関連付けすることができる。この再関連付けが完了した後(1秒未満又は数秒かかることがある)、ユーザはデータセンタ400Bを介して計算インスタンス322にアクセスすることができる。
図4は、管理対象ネットワーク300の可能な構成も示す。上述のように、プロキシサーバ312及びユーザ414は、ファイアウォール310を介して計算インスタンス322にアクセスすることができる。プロキシサーバ312はまた、構成項目410にアクセスすることができる。図4では、構成項目410は、クライアント装置302、サーバ装置304、ルータ306、仮想マシン308、それらの上で実行される任意のアプリケーション又はサービス、並びに、装置、アプリケーション、及びサービスの間の関係のうちのいずれか又は全てを指すことができる。したがって、「構成項目」という用語は、任意の物理装置若しくは仮想装置、又はリモートで発見可能な若しくは計算インスタンス322により管理される任意のアプリケーション若しくはサービス、又は発見された装置、アプリケーション、及びサービスの間の関係の省略表現であり得る。構成項目は、計算インスタンス322の構成管理データベース(CMDB)内で表現することができる。
上述のように、VPNゲートウェイ412は、VPNゲートウェイ402Aに専用VPNを提供することができる。そのようなVPNは、管理対象ネットワーク300と計算インスタンス322との間にかなりの量のトラフィックがある場合、さもなければ、セキュリティポリシーがこれらのサイト間のVPNの使用を推奨又は要求する場合に、有用であり得る。いくつかの実施形態では、VPNを介して直接通信する管理対象ネットワーク300及び/又は計算インスタンス322における任意の装置に、パブリックIPアドレスが割り当てられる。管理対象ネットワーク300及び/又は計算インスタンス322内の他の装置には、プライベートIPアドレス(例えば、それぞれサブネット10.0.0.0/8及び192.168.0.0/16と略して表現される10.0.0.0~10.255.255.255又は192.168.0.0~192.168.255.255の範囲から選択されるIPアドレス)が割り当てられ得る。
IV.例示的な装置、アプリケーション、及びサービス発見
リモートネットワーク管理プラットフォーム320が管理対象ネットワーク300の装置、アプリケーション、及びサービスを管理するために、まず、リモートネットワーク管理プラットフォーム320は、管理対象ネットワーク300内にどんな装置が存在するか、これらの装置の構成及び動作状態、それらの装置により提供されるアプリケーション及びサービス、並びに発見された装置、アプリケーション、及びサービスの間の関係を決定することができる。上述のように、各装置、アプリケーション、サービス、及び関係は、構成項目と呼ばれ得る。管理対象ネットワーク300内の構成項目を定義するプロセスは、発見と呼ばれ、プロキシサーバ312によって少なくとも部分的に容易にされ得る。
リモートネットワーク管理プラットフォーム320が管理対象ネットワーク300の装置、アプリケーション、及びサービスを管理するために、まず、リモートネットワーク管理プラットフォーム320は、管理対象ネットワーク300内にどんな装置が存在するか、これらの装置の構成及び動作状態、それらの装置により提供されるアプリケーション及びサービス、並びに発見された装置、アプリケーション、及びサービスの間の関係を決定することができる。上述のように、各装置、アプリケーション、サービス、及び関係は、構成項目と呼ばれ得る。管理対象ネットワーク300内の構成項目を定義するプロセスは、発見と呼ばれ、プロキシサーバ312によって少なくとも部分的に容易にされ得る。
本明細書の実施形態の目的では、「アプリケーション」は、1つ又は複数のプロセス、スレッド、プログラム、クライアントモジュール、サーバモジュール、又は装置若しくは装置のグループ上で実行される他の任意のソフトウェアを指すことができる。「サービス」とは、互いに関連して動作する1つ又は複数の装置上で実行される複数のアプリケーションによって提供される高レベルの能力を指すことがある。例えば、高レベルのウェブサービスは、複数のウェブアプリケーションサーバスレッドを含むことができ、これらのスレッドは、1つの装置上で実行され、別の装置上で実行されるデータベースアプリケーションの情報にアクセスする。
図5Aは、構成項目がどのように発見されることが可能か、及び、発見された構成項目に関係する情報がどのように記憶されるかについての論理的な表現を示す。簡単にするため、リモートネットワーク管理プラットフォーム320、サードパーティネットワーク340、及びインターネット350は図示されていない。
図5Aにおいて、CMDB500及びタスクリスト502は計算インスタンス322内で記憶される。計算インスタンス322は、プロキシサーバ312に発見コマンドを送信することができる。応答として、プロキシサーバ312は、管理対象ネットワーク300内の様々な装置、アプリケーション、及びサービスに対してプローブを送信することができる。これらの装置、アプリケーション、及びサービスは、プロキシサーバ312に応答を送信することができ、次いでプロキシサーバ312は、発見された構成項目に関する情報を記憶するためにCMDB500に提供することができる。CMDB500に記憶された構成項目は、管理対象ネットワーク300の環境を表す。
タスクリスト502は、プロキシサーバ312が計算インスタンス322に代わって行うアクティビティのリストを表す。発見が行われると、タスクリスト502が設定される。プロキシサーバ312は、繰り返しタスクリスト502を照会し、リスト内の次のタスクを取得し、タスクリスト502が空になるか又は別の停止条件に達するまでこのタスクを実行する。
発見を容易にするために、プロキシサーバ312は、プロキシサーバ312を介して到達できる管理対象ネットワーク300内の1つ又は複数のサブネットに関する情報で構成されることが可能である。例えば、プロキシサーバ312は、サブネットとしてIPアドレス範囲192.168.0/24を与えられてよい。次いで、計算インスタンス322は、この情報をCMDB500に記憶し、これらの各アドレスにおける装置の発見のためにタスクリスト502にタスクを配置することができる。
図5Aはまた、構成項目504、506、508、510、及び512として、管理対象ネットワーク300内の装置、アプリケーション、及びサービスを示す。上述のように、これらの構成項目は、セットの物理及び/又は仮想装置(例えば、クライアント装置、サーバ装置、ルータ、又は仮想マシン)、それらの上で実行されるアプリケーション(例えば、ウェブサーバ、電子メールサーバ、データベース、又はストレージアレイ)、それらの間の関係、並びに複数の個別構成項目を含むサービスを表す。
タスクリスト502にタスクを配置することがトリガーとなって又は別様にプロキシサーバ312に発見を開始させる。代替的又は追加的に、発見は手動でトリガーされてもよく、トリガーイベントに基づいて自動的にトリガーされてもよい(例えば、1日1回の特定の時間に自動的に発見が開始してもよい)。
一般に、発見は、スキャン、分類、識別、及び探査という4つの論理フェーズで進行することができる。発見の各フェーズは、プロキシサーバ312により管理対象ネットワーク300内の1つ又は複数の装置に送信される様々なタイプのプローブメッセージを含む。これらのプローブに対する応答は、プロキシサーバ312によって受信され処理され、それらの表示はCMDB500に送信され得る。したがって、各フェーズの結果、より多くの構成項目が発見されてCMDB500に記憶され得る。
スキャンフェーズでは、プロキシサーバ312は、オープン伝送制御プロトコル(TCP)及び/又はユーザデータグラムプロトコル(UDP)ポートについて、IPアドレス内の指定された範囲の各IPアドレスをプローブして、装置の一般的なタイプを決定することができる。IPアドレスにおけるそのようなオープンポートの存在は、特定のアプリケーションがそのIPアドレスを割り当てられた装置上で動作していることを示すことができ、それにより、その装置によって使用されるオペレーティングシステムを識別することができる。例えば、TCPポート135が開いている場合、装置はWINDOWS(登録商標)オペレーティングシステムを実行している可能性が高い。同様に、TCPポート22が開いている場合、装置はLINUX(登録商標)などのUNIX(登録商標)オペレーティングシステムを実行している可能性が高い。UDPポート161が開いている場合、装置は簡易ネットワーク管理プロトコル(SNMP)を介して更に識別されることが可能であり得る。他の可能性もある。特定のIPアドレスにおける装置とそのオープンポートの存在がいったん発見されると、これらの構成項目はCMDB500に保存される。
分類フェーズでは、プロキシサーバ312は更に、発見された各装置をプローブして、そのオペレーティングシステムのバージョンを決定することができる。特定の装置に使用されるプローブは、その装置に関してスキャンフェーズ中に収集された情報に基づく。例えば、TCPポート22が開いている装置が見つかった場合、UNIX(登録商標)固有のプローブのセットが使用され得る。同様に、TCPポート135が開いている装置が見つかった場合、WINDOWS(登録商標)固有のプローブのセットが使用され得る。いずれの場合も、プロキシサーバ312が実行するためにタスクの適切なセットをタスクリスト502に配置することができる。これらのタスクは、特定の装置からの情報に対してプロキシサーバ312がログオン又は他のアクセスをする結果をもたらすことができる。例えば、TCPポート22が開いている場合、プロキシサーバ312は、特定の装置に対するセキュアシェル(SSH)接続を開始し、その上のオペレーティングシステムに関する情報をファイルシステム内の特定の場所から得るように指示されることが可能である。この情報に基づいて、オペレーティングシステムを決定することができる。例として、TCPポート22が開いているUNIX(登録商標)装置は、AIX(登録商標)、HPUX、LINUX(登録商標)、MACOS(登録商標)、又はSOLARIS(登録商標)として分類することができる。この分類情報は、CMDB500内に1つ又は複数の構成項目として記憶することができる。
識別フェーズでは、プロキシサーバ312は、分類された装置に関する特定の詳細を決定することができる。このフェーズ中に使用されるプローブは、分類フェーズ中に特定の装置に関して収集された情報に基づくことができる。例えば、装置がLINUX(登録商標)として分類された場合、LINUX(登録商標)固有のプローブのセットが使用され得る。同様に、装置がWINDOWS(登録商標)2012として分類された場合、WINDOWS(登録商標)2012固有のプローブのセットが使用され得る。分類フェーズの場合と同様に、プロキシサーバ312が実行するためにタスクの適切なセットをタスクリスト502に配置することができる。これらのタスクの結果、プロキシサーバ312は、特定の装置から、基本入出力システム(BIOS)情報、シリアル番号、ネットワークインターフェース情報、これらのネットワークインターフェースに割り当てられたメディアアクセス制御アドレス、その特定の装置により使用されているIPアドレスなどの情報を読み取ることができる。この識別情報は、CMDB500内に1つ又は複数の構成項目として記憶することができる。
探査フェーズでは、プロキシサーバ312は、分類された装置の動作状態に関して更なる詳細を決定することができる。このフェーズ中に使用されるプローブは、分類フェーズ及び/又は識別フェーズ中に特定の装置に関して収集された情報に基づくことができる。ここでも、プロキシサーバ312が実行するためにタスクの適切なセットをタスクリスト502に配置することができる。これらのタスクの結果、プロキシサーバ312が、特定の装置から、プロセッサ情報、メモリ情報、実行中のプロセス(アプリケーション)のリストなどの追加の情報を読み取ることができる。やはり、発見された情報は、CMDB500内に1つ又は複数の構成項目として記憶することができる。
ルータなどのネットワーク装置上で発見を実行するのにSNMPを利用することができる。発見は、実行中のプロセス又は他のアプリケーション関連情報のリストを決定することに代えて又は加えて、ルータに認識された追加サブネット、及びルータのネットワークインターフェースの動作状態(例えば、アクティブ、非アクティブ、キューの長さ、廃棄されたパケットの数など)を決定してもよい。追加のサブネットのIPアドレスは、更なる発見手順の候補になり得る。したがって、発見は反復的又は再帰的に進行することがある。
発見が完了すると、各発見された装置、アプリケーション、及びサービスのスナップショット表現がCMDB500で利用可能である。例えば、管理対象ネットワーク300内のクライアント装置、サーバ装置、及びルータについての、オペレーティングシステムバージョン、ハードウェア構成、及びネットワーク構成の詳細、並びにそれらの上で実行されているアプリケーションが、発見の後に記憶され得る。この収集された情報は、装置のハードウェア構成及び動作状態並びに複数の装置及びアプリケーションにわたるサービスの特性をユーザが見ることを可能にするために、様々な方法でユーザに提示され得る。
更に、CMDB500は、構成項目間の依存関係及び関係性についてのエントリを含むことができる。より具体的には、特定のサーバ装置上で実行されているアプリケーション、並びにこのアプリケーションに依存するサービスが、CMDB500内でそのように表されることが可能である。例えば、データベースアプリケーションがサーバ装置上で実行されており、このデータベースアプリケーションが新入社員オンボーディングサービス及び給与計算サービスによって使用されていると想定する。したがって、そのサーバ装置がメンテナンスのために運用から外された場合、従業員オンボーディングサービス及び給与計算サービスが影響を受けることは明白である。同様に、構成項目間の依存関係及び関係性は、特定のルータが故障したときに影響を受けるサービスを表現することも可能であり得る。
一般に、構成項目間の依存関係及び関係性は、ウェブベースのインターフェース上に表示され、階層的な様式で表すことができる。したがって、そのような依存関係及び関係性の追加、変更、又は削除は、このインターフェースを介して達成することができる。
更に、管理対象ネットワーク300のユーザは、複数の発見された装置にわたって特定の協調アクティビティが行われることを可能にするワークフローを開発することができる。例えば、ITワークフローは、ユーザが全ての発見されたLINUX(登録商標)装置に対して共通の管理者パスワードを1回の操作で変更することを可能にし得る。
上述した方法で発見を行うために、プロキシサーバ312、CMDB500、及び/又は1つ若しくは複数の資格証明ストアが、発見される1つ又は複数の装置の資格証明を用いて構成され得る。資格証明は、装置にアクセスするために必要とされる任意のタイプの情報を含むことができる。これらは、ユーザID/パスワードの対、証明書などを含むことができる。いくつかの実施形態では、これらの資格証明は、CMDB500の暗号化されたフィールドに記憶することができる。プロキシサーバ312は資格証明の復号鍵を含むことができ、したがって、プロキシサーバ312はこれらの資格証明を使用して、発見される装置にログオン又は他のアクセスをすることができる。
発見プロセスは、図5Bにフローチャートとして示されている。ブロック520で、計算インスタンス内のタスクリストに、例えば、IPアドレスの範囲が設定される。ブロック522では、スキャンフェーズが行われる。それにより、プロキシサーバは、これらのIPアドレスを使用して装置のIPアドレスをプローブして、これらの装置で実行されているオペレーティングシステムを決定しようとする。ブロック524では、分類フェーズが行われる。プロキシサーバは、発見された装置のオペレーティングシステムのバージョンを決定しようとする。ブロック526では、識別フェーズが行われる。プロキシサーバは、発見された装置のハードウェア構成及び/又はソフトウェア構成を決定しようとする。ブロック528では、探査フェーズが行われる。プロキシサーバは、発見された装置上で実行されている動作状態及びアプリケーションを決定しようとする。ブロック530では、発見された装置及びアプリケーションを表す構成項目の更なる編集が行われ得る。この編集は、本質的に自動及び/又は手動とすることができる。
図5Bに表されるブロックは例示を目的としている。発見は、より多い又はより少ないフェーズを有し得る高度に構成可能な手順とすることができ、各フェーズの動作は異なってもよい。場合によっては、1つ又は複数のフェーズがカスタマイズされてもよく、又は他のやり方で上記の例示的な説明から逸脱してもよい。
V.テキストクエリの自然言語処理
自然言語処理は、アクティビティの中でも特に、コンピュータを使用して人間の言語の構造及び意味を理解することを含む分野である。この決定された構造及び意味は、以下に説明するように、ITインシデントの処理に適用可能であり得る。
自然言語処理は、アクティビティの中でも特に、コンピュータを使用して人間の言語の構造及び意味を理解することを含む分野である。この決定された構造及び意味は、以下に説明するように、ITインシデントの処理に適用可能であり得る。
各インシデントは、インシデントレポートとして表現され得る。インシデントレポートは、様々なフォーマットで存在し様々なタイプの情報を含み得るが、図6に例示的なインシデントレポート600が示されている。インシデントレポート600は、左列の複数のフィールドで構成され、少なくともその一部が右列の値に関連付けられる。
フィールド602は、インシデントの発信者(originator)、この場合、ボブ・スミスを識別する。フィールド604は、インシデントが作成された時刻、この場合、2018年2月7日のAM9:56を識別する。フィールド605は、問題の簡単な説明(short description)を提供するテキスト文字列である。フィールド606は、発信者によって提供された問題の説明を識別する。したがって、フィールド606は、数個のワードから数個の文又はそれより長い自由形式のテキスト文字列であり得る。フィールド608は、インシデントのカテゴリ分類、この場合、電子メール(email)である。このカテゴリ分類は、発信者、若しくはインシデントを割り当てられたIT担当者によって、又は自動的に問題説明(problem description)フィールドのコンテキストに基づいて提供される。
フィールド610は、インシデントが割り当てられたIT担当者(該当する場合)、この場合、アリス・ジョーンズを識別する。フィールド612は、インシデントのステータス(status)を識別する。ステータスは、例えば、「オープン」(open)、「割り当て済み」(assigned)、「作業中」(working)、又は「解決済み」(resolved)のうちの1つであり得る。フィールド614は、インシデントがどのように解決されたか(該当する場合)を識別する。このフィールドは、インシデントを割り当てられたIT担当者又は別の個人によって記入され得る。フィールド616は、インシデントが解決された時刻、この場合、2018年2月7日のAM10:10を識別する。フィールド618は、インシデントのクローズコード(closure code)を指定し(該当する場合)、「クローズド(恒久的)」、「クローズド(ワークアラウンド)」、「クローズド(再現不可)」などの値を取ることができる。フィールド620は、インシデントを割り当てられたIT担当者などによってレコードに追加される任意の追加の注記(notes)を識別する。フィールド622は、将来にユーザが同様の問題に対処する必要を回避するのを助ける可能性があるオンライン記事へのリンクを識別する。
インシデントレポート600は例示を目的として提示されている。他のタイプのインシデントレポートが使用されてもよく、これらのレポートは、より多い、より少ない、及び/又は異なるフィールドを含んでもよい。
インシデントレポート600などのインシデントレポートは、様々な方法で作成され得る。例えば、ウェブフォーム、指定されたアドレスに送信される電子メール、音声-テキスト変換を使用するボイスメールボックスなどを介して。これらのインシデントレポートは、照会可能なインシデントレポートデータベースに記憶され得る。例として、テキスト文字列の形式のクエリが、テキスト文字列でワードを含む1つ又は複数のインシデントレポートを返すことがある。追加的又は代替的に、インシデントレポートの1つ又は複数の要素(例えば、「簡単な説明」フィールド)を使用して、ナレッジベース記事、他のインシデントレポート、又はテキストの他の何らかのコーパスのデータベースに照会することができる。これは、他のインシデントレポート、解決済みの過去のインシデントレポート、過去の問題の解決に関するレポート、ナレッジベース記事、又はインシデントレポートに関連し得る他の情報を識別して、インシデントレポートで表される問題の解決を容易にするために行われ得る。
このプロセスが図7に示される。テキストクエリがウェブインターフェース700に入力され得る。このウェブインターフェースは、リモートネットワーク管理プラットフォーム320の計算インスタンスを介して供給され得る。ウェブインターフェース700は、テキストクエリをデータベースクエリ(例えばSQLクエリ)に変換し、SQLクエリをデータベース702に提供する。このデータベースは、CMDB500又は他の何らかのデータベースであり得る。データベース702は、図6に示すような問題説明フィールドを有する複数のインシデントレポートを含む。いずれにせよ、データベース702はクエリを実行し、一致する結果をウェブインターフェース700に返す。1つ又は複数のそのような結果が返され得る。ウェブインターフェース700、これらの結果をウェブページとして提供する。
例えば、テキストクエリが「電子メール」である場合、ウェブインターフェース700は、このクエリをデータベース702のSQLクエリに変換することができる。例えば、クエリは、インシデントレポートを含むテーブルの問題説明フィールドを参照することができる。クエリに一致する(すなわち、「電子メール」(email)という語を含む)そのようなインシデントレポートは、照会結果において提供され得る。したがって、「私の電子メールクライアントが新しい電子メールをダウンロードしていない」(My email client is not downloading new emails)、「電子メールがクラッシュした」(Email crashed)、及び「電子メールに接続できない」(Can’t connect to email)という問題説明を有するインシデントレポートは提供される可能性があるが、「VPNがタイムアウトした」(VPN timed out)という問題説明を有するインシデントレポートは返されない。
このマッチング技法は単純であり、いくつかの欠点を有する。それは、インシデントにおけるクエリのテキストの存在のみを考慮している。したがって、それは、クエリテキストの前後に現れるワードなどの文脈情報は考慮していない。また、クエリテキストの同義語(例えば、「メール」又は「メッセージ」)及びクエリテキストのスペルミス(例えば「emial」)は、この例では結果を返さないことになる。
更に、そのような解決策を実施することは、英語の各ワードのための1つの次元のエントリと、各インシデントの問題説明のための他の次元のエントリとを有する、非効率的な疎行列の使用を伴うことになる、英語のワードの正確な数は、議論の余地があるが、少なくとも150,000~200,000語あり、一般的な使用においては約20,000語未満である。忙しいIT部門が数万件のインシデントのデータベースを有し得ることを考えると、この行列は、20,000個の最も一般的に使用され得るワードのみが含まれる場合であっても、記憶するにはかなり大きく浪費的であろう。
したがって、上述の比較の方法は、テキストサンプルの意味的内容及び/又はコンテキストを比較する種々の方法によって置き換えられ、及び/又は補強される可能性がある。これらの方法は、自然言語処理を容易にするために様々な機械学習技法を改善することができる。そのような技法は、テキストのサンプルからワード及び/又はパラグラフベクトルを決定し、人工ニューラルネットワーク若しくは他の深層学習アルゴリズム、センチメント分析、又は他の技法を適用して、テキストのサンプル間の類似性を決定することを含むことができる。例えば、これら又は他の自然言語処理技法を適用して、インシデントレポート及び他のインシデントレポート、解決されたインシデントレポート、ナレッジベース記事、又はテキストの他の潜在的に関連するサンプルの1つ又は複数のテキストフィールドの間の類似性を決定することができる。
しかしながら、テキストの大きなサンプル内のテキストの特定のセグメントは、クエリテキストサンプルに対する類似性又は関連性について変動することがある。例えば、特定の記事が、特定のクエリテキストに高く関連するセグメントを含む一方、記事の残りの部分では、そのクエリテキストに対する類似性が非常に低いことがある。そのような例では、記事全体についての類似性値を決定することにより、関連するサブセクションを含む記事を廃棄する結果となることがある。加えて、全体的に「関連する」特定の記事又は他のテキストの大きなサンプルをユーザに提供する結果として、ユーザがその記事全体に目を通してユーザの問題に関連性のある特定のサブセクションを見つけるために、損失時間をもたらす可能性がある。更に、テキストクエリを、そのテキストクエリとサイズが同様のテキストのセクションと比較することは有益であり得る。
したがって、ナレッジベース記事又は他のテキストの大きなサンプルを複数のセグメントに分割することは有益であり得る。次いで、クエリテキストと大きなテキストのセグメントの各々との間の類似性が決定され、大きなテキストがクエリテキストに関連するかどうかを決定するために使用され得る。これは、大きなテキストのセグメントの各々についての類似性値を使用して、大きなテキストについての全体的な類似性値を決定することを含み得る。追加的又は代替的に、大きなテキストのセグメントは、独立したテキストサンプルとして扱われてもよい。そのような例では、選択をテキストサンプル全体に限るのではなく、テキストサンプルのセグメントのセットから、クエリテキストに「最も関連する」又は他の点で最も類似するセグメントが選択され得る。
セグメントレベルでの類似性及び/又は関連性を決定することは、テキストサンプルのコーパス内のテキストの関連部分のよりきめ細かい検出を可能にし、大きなテキストサンプルの関連部分を、それを一部とする大きなテキストサンプルの比較的小さな部分を構成しているという理由で廃棄することを防止することができる。更に、テキストクエリを、そのテキストクエリと同様のサイズ(例えば、ワードの数、節の数、文の数)を有するテキストセグメントと比較することは、テキストクエリと、そのテキストクエリより非常に大きいサイズを有するテキストの非セグメント化サンプルとの間の比較よりも、より適切な比較が行われることを可能にし得る。更に、これらの方法は、テキストの大きなサンプルの全体的な類似性の決定を特定の用途に適合させることを可能にし得る。例えば、テキストサンプルのコーパス内のテキストの全ての関連部分を検出する際により綿密にするために、特定のテキストサンプルの類似性値が、特定のテキストサンプル内のテキストのセグメントについて決定された類似性値の最大値として決定され得る。別の例では、各記事について、単一の「類似」セグメントのみを含む記事は、複数の「類似」セグメントを含む記事と比較して好まれないように、各記事内のテキストのセグメントの類似性値の平均を決定することによって、全体的により「トピックに関する」記事が選択され得る。
図8は、例示的なクエリテキストサンプル810、第1の大きなテキストサンプル820、及び第2の大きなテキストサンプル830を示す。第1の大きなテキストサンプル820は、テキストの3つのセグメント820A、820B、820Cに分割され、第2の大きなテキストサンプル830は、テキストの3つのセグメント830A、830B、830Cに分割される。クエリテキストサンプル810は、インシデントレポートからのテキストのサンプルであり得る。例えば、クエリテキストサンプル810は、図6に示されたインシデントレポート600からの問題説明フィールド606であり得る。大きなテキストサンプルは、ナレッジベース若しくは他のデータベースにおける記事、又は他のインシデントレポートのフィールドであり得る。
テキストのそのようなサンプル内のセグメントは、様々な方法で決定され得る。いくつかの例では、セグメントは、例えば、記事の概念的に別々のセグメントを示すために、記事に注釈を付けるナレッジベース記事の著者によって、手動で生成され得る。追加的又は代替的に、セグメントは自動的に生成されてもよい。これは、テキストのサンプル内のセグメントを改行、句読点、ヘッダ、又は他の情報に基づいて決定することを含み得る。機械学習アルゴリズムは、例えば、クエリテキストの訓練セットに基づいて、テキストのサンプル内のセグメントを識別するように訓練されてもよい。
図8に示されるように、テキストのセグメントは重複しないことが可能であり、それぞれが別々の文のセットを表し得る。しかしながら、図8は、テキストのサンプル内のセグメントの非限定的例として意図されており、テキストの他のタイプのセグメント化も期待される。例えば、テキストのセグメントは、文の一部を含み得る。すなわち、テキストのセグメントは、文の途中で終わり及び/又は始まり得る。いくつかの例では、テキストの特定の大きなサンプル内のテキストのセグメントが重複し得る。そのような重複は、テキストの移行部分をテキストの前の部分とテキストの後の部分との両方に関連付けることを可能にし得る。
上述のように、類似性値は、クエリテキストと、テキストサンプルのコーパスにおけるテキストの各サンプル内の各セグメントとの間(例えば、インシデントレポートの1つ又は複数のフィールドと、過去のインシデントレポートの解決を記述する記事のコーパスとの間)で決定され得る。次いで、これらの類似性値は、クエリテキストに最も類似するセグメントを選択しユーザに提供するために使用され得る。セグメントは、それら自体で、又はそれらが部分となる記事の一部として提供され得る(例えば、選択されたセグメントがハイライトされ又は別の方法で記事内に示される)。
追加的又は代替的に、テキストサンプルのセグメントに対して決定された類似性値のセットが、テキストサンプルに対する全体的な類似性値を決定するために使用され得る。次いで、全体的な類似性値が、クエリテキストに最も類似するテキストサンプルを選択しユーザに提供するために使用され得る。セグメント類似性値から全体的な類似性値を生成するために使用される方法は、選択されたテキストサンプルのソートに影響を与えるように選択され得る。
いくつかの例では、テキストサンプルについての全体的な類似性値は、テキストサンプル内のテキストセグメントの類似性値の最大値として決定され得る。この方法は、関連性の高いテキストのセグメントを識別するために、たとえそれらのセグメントがテキストサンプルの一部であって、それ以外は関連性が低い場合でも、使用され得る。
いくつかの例では、テキストセグメントの類似性値の合計が、テキストサンプルの全体的な類似性値として決定され得る。この方法は、クエリテキストに「より」関連するテキストの「より多くの」セグメントを含むテキストサンプルを識別するために使用され得る。合計は、クエリテキストに関連する内容についてより「トピックに関する」テキストサンプルを強調するために、テキストサンプルにおけるセグメントの数に正規化され得る(すなわち、全体的な類似性値はセグメント類似性値の平均であり得る)。
いくつかの例では、セグメント類似性値の一部又は全部の重み付けされた合計が、テキストサンプルの全体的な類似性値として決定され得る。例えば、全体的な類似性値は、最も類似するセグメントの類似性値の100%、第2の最も類似するセグメントの類似性値の80%、第3の最も類似するセグメントの類似性値の60%などの合計として決定され得る。別の例では、反復法を適用して、各セグメントの類似性の重み付けされたバージョンを足し合わせることができる。この反復法の例として、0以上1以下の類似性値について、以下のように表すことができる。
セグメント類似性値を高から低にソートする
全体的な類似性値←最も高いセグメントスコア
for セグメント[i]の残り=2 to end:
if セグメント[i]についての類似性値>=全体的な類似性値/ρ
全体的な類似性値←全体的な類似性値+(1-全体的な類似性値)*セグメント[i]についての類似性値
セグメント類似性値を高から低にソートする
全体的な類似性値←最も高いセグメントスコア
for セグメント[i]の残り=2 to end:
if セグメント[i]についての類似性値>=全体的な類似性値/ρ
全体的な類似性値←全体的な類似性値+(1-全体的な類似性値)*セグメント[i]についての類似性値
パラメータρは、有利には1以上2以下の値に設定される。1の値が選択された場合、最も高い類似性値のみが考慮される。重み付けパラメータρは、複数の低値セグメントを有するテキストサンプルが、高い類似性値を有する単一のセグメントを持つテキストサンプルよりも高い全体的スコアで終わらないように提供される。また、この方法は、特定のテキストサンプル内のセグメントの数にかかわらず、全体的な類似性値が1より大きくならないことを保証する。
これらの方法は、数個の「非常に関連性の高い」セグメントを有するテキストサンプルを識別するために、また、クエリテキストに対し個別的には関連性は低いが全体的には関連し得る複数のセグメントを含むテキストサンプルを識別するために使用され得る。重み付けされた合計を生成するために使用されるセグメント類似性値の数は、例えば、上位3つのセグメントに制限され得る。これは、より多数の比較的関連性の低いセグメントを有するテキストサンプルに対して、より高い類似性スコアを有するより少ないセグメントを含むテキストサンプルを強調するために行われ得る。
いくつかの例では、テキストサンプルについての全体的な類似性値を決定するために、テキストセグメント類似性が閾値と比較され得る。例えば、全体的なテキストサンプル類似性値を生成するために、閾値類似性値を超えるセグメント類似性値のみが合計され得る。別の例では、閾値類似性値を超えるセグメント類似性値の数は、全体的なテキストサンプル類似性値として決定され得る。そのような閾値比較方法は、テキストサンプルの全体的な関連性の評価を、クエリテキストに実際に関連する可能性のあるセグメントのみに基づくようにするために使用され得る。個々のセグメントの類似性値が閾値レベルよりも大きいことは、そのような可能性の代わりとして使用され得る。閾値を超えた類似性値のカウントは、クエリテキストに関連する内容に対し一部が大きく関わるテキストサンプルを強調するために、テキストサンプルにおけるセグメントの数に正規化され得る。
VI.意味的内容に基づくテキストクエリの自然言語処理
テキストの2つのサンプル間の類似性の程度は、様々な方法で決定され得る。テキストの2つのサンプルは、インシデントレポートのテキストフィールド及び別のインシデントレポートのテキストフィールド、解決されたインシデントレポートのテキストフィールド、ナレッジベース記事、又はインシデントレポートの解決、分類、若しくは他の態様に関連し得るテキストの他の何らかのサンプルであり得る。追加的又は代替的に、サンプルの一方又は両方は、テキストのより大きなサンプル内のテキストのセグメントであってもよい。上記のように、テキストの2つのサンプルに存在するワードのアイデンティティ間の重複の程度、及び/又はワードマトリクス方法が、類似性の程度を決定するために使用され得る。追加的又は代替的に、自然言語処理の1つ又は複数の技法をテキストのサンプルを比較するために適用して、テキストのコンテキスト又は他の意味的内容がテキストのサンプル間の決定された類似性値に影響を与えるようにしてよい。
テキストの2つのサンプル間の類似性の程度は、様々な方法で決定され得る。テキストの2つのサンプルは、インシデントレポートのテキストフィールド及び別のインシデントレポートのテキストフィールド、解決されたインシデントレポートのテキストフィールド、ナレッジベース記事、又はインシデントレポートの解決、分類、若しくは他の態様に関連し得るテキストの他の何らかのサンプルであり得る。追加的又は代替的に、サンプルの一方又は両方は、テキストのより大きなサンプル内のテキストのセグメントであってもよい。上記のように、テキストの2つのサンプルに存在するワードのアイデンティティ間の重複の程度、及び/又はワードマトリクス方法が、類似性の程度を決定するために使用され得る。追加的又は代替的に、自然言語処理の1つ又は複数の技法をテキストのサンプルを比較するために適用して、テキストのコンテキスト又は他の意味的内容がテキストのサンプル間の決定された類似性値に影響を与えるようにしてよい。
そのような技法は、インシデントレポートに関係付けられたテキストクエリマッチングを改善するために適用され得る。これらの技法は、テキストのサンプルに基づいて訓練できる様々な機械学習アルゴリズムを含み得る。訓練に使用されるテキストのサンプルには、インシデントレポートの過去の例、ナレッジベース記事、又は、訓練されたモデルが適用されるテキストサンプルと同じ性質の他のテキストサンプルが含まれ得る。これは、その意図された用途に共通する語彙、トピック、及び慣用語の使用に特異的に適合されたモデルを提供する利点を有する。
そのような技法は、テキストのサンプル間の類似性を決定するため、トピック若しくは内容に従ってテキストの複数のサンプルを一緒にグループ化するため、テキストのサンプルを別々の内部的に関係付けられたセグメントに分割するため、ワード間の統計的関連付けを決定するため、又は他の何らからの言語処理タスクを実行するために、テキストのサンプルからワード及び/若しくはパラグラフベクトルを決定すること、ANN若しくは他の深層学習アルゴリズムを適用すること、センチメント分析を実行すること、又は他の技法を含むことができる。以下では、ワード及びテキスト文字列のコンパクトな意味的表現を提供するANNモデルを使用してテキストのサンプル間の類似性値を決定するための特定の方法が、そのような技法の非限定的例として提供される。しかしながら、本明細書の他の箇所で適用されるテキストのサンプル間の類似性値を生成するために、他の技法が適用されてもよい。以下の議論では、ワードの意味的な意義を表現するためにANNモデルを訓練するための2つの手法、すなわち、ワードベクトルとパラグラフベクトルがある。これらの技法は、互いに又は他の技法と組み合わされてよい。
これらの技法は、テキストのセグメントを複数のテキストセグメントに分割するためにも適用され得る。そのような分割は、クエリテキスト(例えば、インシデントレポートの問題説明フィールド)とテキストのより大きなサンプルとの間の類似性のよりきめ細かい検出を可能にすることができる。これは、クエリテキストとテキストの大きなサンプルのセグメントの各々との間で類似性値を決定できるからである。結果として、クエリテキストとほとんど無関係なテキストのサンプルであるがクエリテキストと関連性が高いサブセクションを含むテキストのサンプルの関連性が検出され得る。
A.ワードベクトル
「ワードベクトル」は、テキストレコードのコーパス内に存在する各ワードについて、類似の意味(又は「意味的内容」)を有するワードが、意味的に符号化されたベクトル空間内で互いに近いワードベクトルと関連付けられるように決定され得る。そのようなベクトルは、数十個、数百個、又はそれ以上の要素を有することがある。これらのワードベクトルは、コンピューティング装置によってワードの基本的な意味が比較され又は他の方法で操作されることを可能にする。したがって、ワードベクトルの使用は、より単純なワードリスト又はワードマトリクス方法よりも大きな改善を可能にし得る。
「ワードベクトル」は、テキストレコードのコーパス内に存在する各ワードについて、類似の意味(又は「意味的内容」)を有するワードが、意味的に符号化されたベクトル空間内で互いに近いワードベクトルと関連付けられるように決定され得る。そのようなベクトルは、数十個、数百個、又はそれ以上の要素を有することがある。これらのワードベクトルは、コンピューティング装置によってワードの基本的な意味が比較され又は他の方法で操作されることを可能にする。したがって、ワードベクトルの使用は、より単純なワードリスト又はワードマトリクス方法よりも大きな改善を可能にし得る。
ワードベクトルを使用して、テキストのサンプルの全体的な意味的内容を迅速かつ効率的に比較することができ、テキストのサンプル間の類似性値を決定することを可能にする。これは、テキストサンプルの各々におけるワードのワードベクトルの間の距離、コサイン類似性、又は他の何らかの類似性の尺度を決定することを含むことができる。例えば、テキストサンプルの各々におけるワードベクトルの平均が決定され、次いで、平均間のコサイン類似性がテキストサンプル間の類似性の尺度として使用されてよい。追加的又は代替的に、ワードベクトルは、センチメント分析を実行するため、テキストのサンプルを分類若しくはクラスタリングするため、テキストのサンプル間の類似性のレベルを決定するため、又は他の言語処理タスクを実行するために、ANN、サポートベクターマシン、決定木、又は他の何らかの機械学習アルゴリズムへの入力として提供され得る。
ワードベクトルは、種々の方法でワードのセットに対して決定され得る。一例では、ワードベクトルの行列はANNの入力層とすることができる。次いで、ANN(ワードベクトルの行列を含む)は、データベースからの多数のテキスト文字列を用いて訓練されて、これらのテキスト文字列に現れるワードの間の文脈関係を決定することができる。そのようなANN900を図9Aに示す。ANN900は、入力層902を含み、入力層902は隠れ層904にフィードし、隠れ層904は出力層906にフィードする。入力層902及び出力層906におけるノードの数は、予め定義された語彙又は辞書内のワードの数(例えば、20,000、50,000、又は100,000個)と等価であり得る。隠れ層904におけるノードの数は、はるかに小さくてもよい(例えば、図9Aに示される64、又は16、32、128、512、1024などの他の値)。
ANN900は、データベースにおける各テキスト文字列について、1つ又は複数のワード配置で訓練される。例えば、図9Bにおいて、ANN900は、入力ワード「email」(電子メール)、並びに出力(コンテキスト)ワード「can’t」(できない)、「connect」(接続)及び「to」(に)を用いて訓練されていることが示されている。出力ワードは、出力層906により生成された結果が比較されるグラウンドトゥルース出力値の役割をする。この配置は、データベース702内のテキスト文字列において「email」が、「can’t」、「connect」及び「to」の近くに現れることを反映している。
実装において、これは、1の入力を受け取るノードI2として表されてよく、入力層902内の他の全てのノードは0の入力を受け取る。同様に、ノードO1は「can’t」のグラウンドトゥルース値に関連付けられ、ノードO2は「connect」のグラウンドトゥルース値に関連付けられ、ノードO3は「to」のグラウンドトゥルース値に関連付けられる。実装において、これは、ノードO1、O2、及びO3が1のグラウンドトゥルース値に関連付けられ、出力層906における他の全てのノードは0のグラウンドトゥルース値に関連付けられているように表される。損失関数は、例えば、上述の入力に応答して出力層906により生成された出力と、出力層ノードに関連付けられたグラウンドトゥルース値を含むベクトルとの間の、二乗誤差の合計であり得る。
データベース702からのこのテキスト文字列の他の配置がANN900を訓練するために使用されてもよい。例えば、図9Cに示されるように、入力ワードが「can’t」であってよく、出力ワードは「connect」、「to」、及び「email」であってよい。図9Dに示される別の例では、入力ワードが「connect」であってよく、出力ワードは「can’t」、「to」、及び「email」であってよい。
一般に、これらの配置は、出力ワードが入力ワードのwワード内(例えば、wは1、2、3、5など)であり、出力ワードが入力ワードと同じ文内にあり、出力ワードが入力ワードと同じパラグラフ内である等のように選択され得る。更に、データベース702における各テキスト文字列の様々なワード配置が、ANN900を訓練するために使用され得る。これらのテキスト文字列は、簡単な説明(short description)フィールド605、問題説明(problem description)フィールド606、カテゴリ(category)フィールド608、解決(resolution)フィールド614、注記(notes)フィールド620、及び/又はインシデントレポート内の他の任意のフィールド若しくはフィールドの組み合わせから選択され得る。
ANN900がテキスト文字列のこれらの配置で訓練された後、隠れ層904は、入力ワードのコンテキスト及び意味のコンパクトなベクトル表現になる。すなわち、入力層902における特定のノード(例えばI3)から隠れ層904までの重み付けが、特定のノード(例えば「can’t」)に対応するワードのワードベクトルの要素を表す。例えば、ANN900が(より多い又はより少ないテキスト文字列が使用されてもよいが)10,000個程度のテキスト文字列のコーパスで完全に訓練されていると想定すると、「email」の入力ワードは、「mail」の入力ワードと類似のベクトル表現を有することができる。直感的には、隠れ層904は、ANN900が入力ワードのコンテキストを決定するための全てであるため、2つのワードが類似のコンテキストを有する場合、それらは類似のベクトル表現を有する可能性が高い。
いくつかの実施形態では、ANN900は、出力ノードO1…Onに関連付けられた入力ワード、及び入力ノードI1…Inに関連付けられた出力(コンテキスト)ワードで訓練することができる。この配置は、隠れ層904に対して同一又は類似のベクトルを生成することができる。
更に、この様式で生成されたベクトルは加法的である。したがって、「email」のベクトル表現から「mail」のベクトル表現を引くと、0に近い値を有するベクトルが生成されることが期待される。しかしながら、「email」のベクトル表現から「VPN」のベクトル表現を引くことによって、より高い値を有するベクトルを生成することが期待される。このように、モデルは「email」と「mail」が「email」と「VPN」よりも近い意味を有することを示す。
対象の全てのワードについてベクトル表現が決定されると、これらのベクトルの線形及び/又は乗算集約がテキスト文字列を表すために使用され得る。例えば、テキスト文字列のベクトル「can’t connect to email」(電子メールに接続できない)は、ワード「can’t」、「connect」、「to」、及び「email」の個々のベクトルを合計することによって見出すことができる。場合によっては、ワードのベクトルに平均又は他の何らかの演算が適用され得る。これは、以下のように、各エントリがmで割られる、m個のベクトルviのベクトル和として表すことができ、ここで、i={1…m}である。しかし、加重平均など他の可能性も存在する。
集約がどのように決定されるかにかかわらず、この一般的な技法は、データベース702内の各テキスト文字列のベクトル表現を見出すことを可能にする。これらのベクトル表現は、関連するテキスト文字列と共に又は別個に、データベース702に同様に記憶され得る。次いで、これらのベクトル表現を使用して、テキスト文字列を比較し、テキスト文字列をクラスタリング若しくはグループ化し、他の何らかの機械学習分類器を訓練し、又は他のタスクを実行することができる。例えば、特にクエリテキストのためのマッチングテキスト文字列は、クエリテキストのベクトル表現とデータベース702内のテキストのサンプルの記憶されたベクトル表現との間のコサイン類似性又は他の類似性値を決定することによって決定され得る。
比較は、この様式で「一致」するデータベース702からの1つ又は複数のテキスト文字列ベクトルを識別することができる。場合によっては、これは、最も類似性の高いk個のテキスト文字列ベクトル、又は予め決定された値よりも大きい類似性を有する任意のテキスト文字列ベクトルであり得る。識別されたテキスト文字列ベクトルは、データベース702に記録されるインシデントレポートのより大きなコーパス内で、インシデントレポートのサブセットに対応してよく、それらは、クエリテキスト文字列ベクトルに対応する追加のインシデントレポートに関連する。識別されたテキスト文字列ベクトルの各々について、関連付けられたテキスト文字列は、データベース702において検索され出力テキスト文字列として提供され得る。場合によっては、関連付けられたインシデントレポートも提供され得る。
場合によっては、予め決定された経過時間を超えないインシデントレポートのみが提供される。例えば、システムは、過去3カ月、6カ月、又は12カ月以内に解決されたインシデントレポートのみからのテキスト文字列ベクトルを識別するように構成され得る。代替的に、システムは、過去3カ月、6カ月、又は12カ月以内にオープンされたインシデントレポートのみからのテキスト文字列ベクトルを識別するように構成され得る。
このようにして、入力テキスト文字列と同様の問題説明を有するインシデントレポートを迅速に識別することができる。注目すべきことに、このシステムは、入力テキスト文字列に対し関連し意味がある可能性が高い文脈的結果を提供する。結果として、個人がこれらのインシデントレポートをレビューして、問題説明におけるものと類似した問題が過去にどのように報告され対処されたかを決定することができる。この結果、インシデントを解決するのに要する時間の量が劇的に減少する可能性がある。
追加的又は代替的に、これらの実施形態は、インシデントレポートのコーパス内の意味的及び/又は文脈的に類似するインシデントレポートのクラスタを検出及び識別するために適用することができる。例えば、インシデントレポートのクラスタは、ITシステムのユーザに影響を与える可能性のある類似の問題、ITシステムの1つ又は複数の態様の継続的な誤設定、ITシステムのコンポーネントにおける進行性のハードウェア障害、又はITシステム内で繰り返される他の何らかの問題に関係する。そのような関係するインシデントレポートのクラスタを識別することにより、(例えば、ハードウェア又はソフトウェアの障害又は不整合な実行を置き換え及び/又は再構成することによって)ITシステムを修復又はアップグレードすること、ユーザが共通の誤りを回避するように訓練されること、まれに発生するハードウェア又はソフトウェアの問題の検出及び修正、或いは他の利益を可能にすることができる。
そのような関連するインシデントレポートのクラスタは、インシデントレポートに対応する集約されたワード(及び/又はパラグラフ)ベクトルを意味的に符号化されたベクトル空間内で識別することによって、検出及び/又は識別されることが可能である。意味的に符号化されたベクトル空間内のそのようなクラスタを検出するために、様々な方法が利用されてよく、例えば、k平均法、サポートベクターマシン、ANN(例えば、利用可能な訓練例のコーパス内の訓練例の関連サブセットを識別するように構成及び/又は訓練された教師なしANN)、又はベクトル空間内の関係するベクトルのクラスタを識別するための他の何らかの分類器若しくは他の方法が利用されてよい。
B.パラグラフベクトル
先に論じられたように、ANNモデル900は、ワードのコンパクトで意味的に関連するベクトル表現を提供するために、周囲のコンテキストを使用する。訓練後に、同様の意味を有するワードは、ベクトル空間における同様の位置にマッピングすることができる。例えば、「パワフル」と「ストロング」のベクトルは互いに近く見え得るが、「パワフル」と「パリ」のベクトルは更に離れ得る。ワードベクトル間の加算と減算も意味を持つ。決定されたワードベクトルに対してベクトル代数を用いて、「王」-「男」+「女」=「女王」のような類推問題に答えることができる。
先に論じられたように、ANNモデル900は、ワードのコンパクトで意味的に関連するベクトル表現を提供するために、周囲のコンテキストを使用する。訓練後に、同様の意味を有するワードは、ベクトル空間における同様の位置にマッピングすることができる。例えば、「パワフル」と「ストロング」のベクトルは互いに近く見え得るが、「パワフル」と「パリ」のベクトルは更に離れ得る。ワードベクトル間の加算と減算も意味を持つ。決定されたワードベクトルに対してベクトル代数を用いて、「王」-「男」+「女」=「女王」のような類推問題に答えることができる。
しかしながら、文又は他の節(例えば、句、複数の文、パラグラフ、テキストのより大きなサンプル内のテキストセグメント、又は文書)の完全な意味は、(例えば、ベクトル代数を適用することによって)文の個々のワードベクトルから必ずしも捕捉することはできない。ワードベクトルは、個々のワードの意味的内容を表すことができ、短いコンテキストウィンドウを使用して訓練され得る。したがって、ワードベクトルのみに基づいて動作するときには、短いコンテキストウィンドウ外のワード順序及び任意の情報の意味的内容は失われる。
例えば、「I want a big green cell right now」(私は大きな緑のセルを今欲しい)という文を例にとれば、この場合、ワード「cell」は複数の可能な意味を有し、したがって曖昧であり得るので、個々のワードに対する単純なベクトル代数は、ワード「cell」の正しい意味を提供できない可能性がある。コンテキストに応じて、「cell」は、生物学的細胞、刑務所の監房、又はセルラー通信ネットワークのセルであり得る。したがって、所与のワードがサンプリングされたパラグラフ、文、又は句は、重要な文脈情報を提供することができる。
別の例では、文「Where art thou ___」が与えられた場合、文がシェークスピアに関するパラグラフから取り出されたと言われるならば、欠けたワードが「Romeo」であると予測するのは容易である。したがって、パラグラフ全体の意味的ベクトル表現を学習することは、そのパラグラフからサンプリングされたワードのコンテキストを予測する助けとなることができる。
ワードベクトルを学習するための上記の方法と同様に、ANN又は他の機械学習構造は、パラグラフ全体、文、句、又は他の複数ワードのテキストサンプルの文脈的意味を決定するために、また、コーパス内のパラグラフを構成する個々のワードの意味を決定するために、コーパス内の多数のパラグラフを使用して訓練され得る。そのようなANN1000を図10Aに示す。ANN1000は、入力層1002を含み、入力層1002は隠れ層1004にフィードし、隠れ層1004は出力層1006にフィードする。入力層1002は、2つのタイプの入力サブ構造、すなわち、ワードを表す上部サブ構造1008(入力ノードI1…Inから構成される)、及びパラグラフ(文書)を表す下部サブ構造1010(入力ノードD1…Dmから構成される)から構成されることに留意されたい。出力層1006及び上部入力層サブ構造1008内のノードの数は、コーパス全体における固有ワードの数と等しくすることができる。下部入力層サブ構造1010内のノードの数は、コーパス全体における固有パラグラフの数と等価にすることができる。本明細書で使用される「パラグラフ」は、文、パラグラフ、インシデントレポートの1つ若しくは複数のフィールド、テキストのより大きな文字列のセグメント、又はテキストの他の何らかの複数ワード文字列であり得ることに留意されたい。
コーパス内の各パラグラフについて、ANN1000は、パラグラフ上でスライドウインドウを移動させることにより生成される固定長コンテキストを用いて訓練される。したがって、所与のパラグラフベクトルは、そのソースパラグラフから作成された全ての訓練コンテキストにわたって共有されるが、他のパラグラフから作成された訓練コンテキストにわたっては共有されない。ワードベクトルは、全てのパラグラフから作成された訓練コンテキストにわたって共有され、例えば、「cannot」のベクトルは、全てのパラグラフに対して同じとなる。パラグラフはサイズを制限されず、文書全体ほどに大きくても、文又は句ほどに小さくてもよい。図10Aでは、ANN1000が、単一の訓練の反復において、入力ワードコンテキスト「can’t」、「connect」、及び「to」、入力パラグラフコンテキストDOC1、及び出力ワード「email」で訓練されている様子が示されている。出力ワードは、出力層1006により生成された結果が比較されるグラウンドトゥルース出力値の役割をする。この配置は、「email」が「can’t」、「connect」、「to」の近くに現れ、DOC1内にあることを反映している。
実装において、これは、グラウンドトゥルース値1を受け取る出力ノードO4、及びグラウンドトゥルース値0を有する出力層1006内の他の全てのノードとして表され得る。同様に、ノードI1は「can’t」のグラウンドトゥルース値を有し、ノードI2は「connect」のグラウンドトゥルース値を有し、ノードI3は「to」のグラウンドトゥルース値を有し、ノードD1は、DOC1のグラウンドトゥルース値を有する。実装において、これは、ノードI1、I2、I3、及びD1が1の値に関連付けられ、入力層1002における他の全てのノードは0の値を有するように表され得る。損失関数は、例えば、出力層1006の出力とグラウンドトゥルース値を含むベクトルとの間の、二乗誤差の合計であり得る。対応するワードベクトル及びパラグラフベクトルの重み値、並びに全ての出力層パラメータの重み値(例えばソフトマックス重み)は、(例えば逆伝搬を介して)損失関数に基づいて更新される。
図10Bは、後続のコンテキストウィンドウで訓練されているANN1000を示す。このコンテキストウィンドウは、同じ文書から派生するが、文書内のワードを前にシフトし、入力ワードコンテキスト「connect」、「to」及び「email」、入力パラグラフコンテキスト「DOC1」、並びに出力ワード「server」を使用する。実装において、これらの入力及び出力は、上述されたのと同様にグラウンドトゥルース値で符号化され得る。
図10Cは、コーパス内の別の文書で訓練されたANN1000の例を示す。コンテキストウィンドウは、この文書から派生し、入力ワードコンテキスト「can’t」、「load」、及び「my」、入力パラグラフコンテキストDOC2、並びに出力ワード「database」を使用する。実装では、これらの入力及び出力は、上述されたのと同様にグラウンドトゥルース値で符号化され得る。
ANN1000が訓練された後、隠れ層1004に関連付けられた重みは、入力ワード及びパラグラフのコンテキスト及び意味のコンパクトなベクトル表現になる。例えば、ANN1000が1,000個のパラグラフのコーパスで完全に訓練され、コーパス全体が10,000個の固有ワードを含むと想定すると、各パラグラフ及び各ワードは、隠れ層1004内の隠れノードの数に等しい長さを有する固有のベクトルによって表され得る。これらの固有のベクトルは、パラグラフ内のワード又はパラグラフ自体の文脈的意味を符号化する。
図10Dは、予測時間におけるANN1000を示し、ANN1000は、推論ステップを実行して、以前に見られない新たなパラグラフのパラグラフベクトルを計算している。この推論ステップは、見られないパラグラフ(DOC M+1)を表す入力層サブ構造1010に追加の入力ノード1012を追加することによって開始する。この推論プロセス中は、ワードベクトルサブ構造1008の係数、並びに隠れ層1004と出力層1006との間の学習された重みは固定される。したがって、このモデルは、入力パラグラフベクトルサブ構造1010における見られないパラグラフに対応する追加のパラグラフベクトル1012を生成し、見られないパラグラフの新しい意味的ベクトル表現を取得する。任意の追加の見られないパラグラフが、入力ノードを入力層サブ構造1010に追加することによって同様のプロセスを介して訓練され得る。
代替的に、パラグラフベクトルは、入力層におけるワードコンテキストを無視し、パラグラフベクトルのみを入力として使用し、出力層におけるパラグラフからランダムにサンプリングされた異なるワードコンテキストをモデルに予測させることによって、訓練され得る。そのようなANNの入力層は、パラグラフベクトルのみから構成され、出力層は、与えられたパラグラフからランダムに生成された単一のコンテキストウィンドウを表す。そのようなANNを訓練することは、コーパス内のパラグラフの意味的内容についてのベクトル表現をもたらし得るが、その中のワードについての意味的ベクトル表現を必ずしも提供しない。
コーパス内のパラグラフに対してベクトル表現が決定されると、これらのベクトルの線形及び/又は乗算集約が、対象となるトピックを表すために使用され得る。更に、ANN1000に示されるように、パラグラフベクトルの次元がワードベクトルの次元と同じである場合、ワードベクトルとパラグラフベクトルとの間の線形及び乗算集約を得ることができる。例えば、百科事典をコーパスとして使用して「ジュリアス・シーザー」の中国版を見つけることは、ベクトル演算PV(「ジュリアス・シーザー」)-WV(「ローマ」)+WV(「中国」)によって達成することができ、ここで、PVはパラグラフベクトル(ウィキペディア記事全体を表す)であり、WVはワードベクトルである。したがって、パラグラフベクトルは、コンテキストに基づく結果を用いて、ワードベクトルと同じ種類の類推を達成することができる。
実際に、そのような学習されたパラグラフベクトルは、センチメント予測モデルのような他の教師あり学習モデルへの入力として使用され得る。ANN、サポートベクターマシン(SVM)、又は単純ベイズ分類器を含み得るがこれらに限定されないそのようなモデルでは、パラグラフベクトルが入力として使用され、対応するセンチメントラベルを出力として有する。パラグラフベクトルには、コサイン類似性や最近傍クラスタリングアルゴリズムなどの他のメトリクスが、パラグラフのコーパス内の類似するトピックのパラグラフの見つけ出し又はグループ化するためにパラグラフベクトルに適用され得る。
本実施形態では、学習されたワードベクトル及びパラグラフベクトルの組み合わせは、図6に示されるように、インシデントレポート、例えば、インシデントレポート600の構造及び意味を決定するのに役立つことができる。インシデントレポート600は、左列の複数のフィールドで構成され、少なくともその一部が右列の値に関連付けられる。簡単な説明フィールド605、問題説明フィールド606、解決フィールド614、及び注記フィールド620などの長いテキストフィールドについては、テキストを形成する個々のワードベクトルを集約するよりも、より多くの文脈的意味を得るために、関連付けられた右列テキストをパラグラフベクトルとして又は右列テキスト内の各別個のテキストセグメントに対応する複数のパラグラフベクトルとして表すのが好ましいことがある。インシデントレポート600は例示を目的として提示されている。インシデントレポートの様々なフィールドは、パラグラフベクトル、ワードベクトル、又は2つの重み付けされた組み合わせとして表現されるように配置され得る。他のタイプのインシデントレポート、問題レポート、ケースファイル、ナレッジベース記事も使用されてよく、これらのレポートは、より多い、より少ない、及び/又は異なるフィールドを含んでもよい。
パラグラフベクトル、ワードベクトル、又はこれら2つの重み付けされた組み合わせとして、異なるフィールドを表した後に、インシデント全体を表す単一のベクトルが、連結、ベクトル和の生成、又は個々のインシデントフィールドのワード及び/若しくはパラグラフベクトル表現の他の形式での集約によって、生成され得る。単一の集約インシデントベクトル表現を用いて、システムは、コサイン類似性又は上述された他のメトリクスに基づいて、類似する集約ベクトル(したがって、類似するインシデントレポート)を識別するように構成され得る。代替的に、類似するインシデントレポートの検索では、1つ又は複数の個別のフィールドのパラグラフテキストのみを使用してもよい。このようにして、インシデントレポートにおける1つ又は複数の個別のフィールドからのテキストが、テキストの単一のパラグラフへ組み合わされてよい。次いで、パラグラフベクトルが、連結されたテキストのこの単一の大きなパラグラフから生成され、類似のインシデントを検索するために使用され得る。
このプロセスは、前述のANN構造に基づいて説明することができる。最初に、図7のデータベース702からテキスト文字列が取得される。上述のように、これらのテキスト文字列は、インシデントレポートの一部からのものであり得る。次いで、テキスト文字列からワードが抽出される。抽出されたワードは、テキスト文字列内の全てのワード又はこれらのワードの一部であってよい。これらの抽出されたワードは、図9A~図9DのANN900への入力として提供される。これらのワードの部分文字列コンテキストがテキスト文字列から抽出される。部分文字列コンテキストは、抽出された関連付けられたワードの前、後、又は周囲にワードを含む1つ又は複数の部分文字列であり得る。次いで、これらのベクトル表現は、それらの各別個のテキストサンプルを、(例えばコサイン類似性を使用して)比較するために使用され得る。
比較は、この様式で「一致」するデータベース702からの1つ又は複数のインシデントレポートを識別することができる。場合によっては、これは、最も高い類似性を有するk個のインシデントレポート、又は予め決定された値よりも大きい類似性を有するインシデントレポートであり得る。ユーザには、これらの識別されたインシデントレポート又はそれらへの参照を提供され得る。
場合によっては、予め決定された経過時間を超えないインシデントレポートのみが提供される。例えば、システムは、過去3カ月、6カ月、又は12カ月以内に解決されたインシデントレポートのみを識別するように構成され得る。代替的に、システムは、過去3カ月、6カ月、又は12カ月以内にオープンされたインシデントレポートのみを識別するように構成され得る。
このようにして、入力インシデントレポートと同様の内容を有するインシデントレポートを迅速に識別することができる。結果として、個人がこれらのインシデントレポートをレビューして、インシデントにおけるものと類似した問題が過去にどのように報告され対処されたかを決定することができる。この結果、インシデントを解決するのに要する時間の量が劇的に減少する可能性がある。
この節ではワードベクトル及びパラグラフベクトルのいくつかの可能な実施形態を説明しているが、他の実施形態も存在し得る。例えば、異なるANN構造及び異なる訓練手順が使用され得る。
C.テキストサンプルの分割
上述したように、クエリテキストと比較テキストサンプル全体との間の類似性を決定するのではなく、又はそれに加えて、クエリテキストと比較テキストサンプルの個々のセグメントとの間の類似性を決定することは有益であり得る。セグメントは重複してもよく又は重複していなくてもよい。セグメントは、別々のパラグラフ全体若しくは文全体を含むように制限されてもよく、又は文の一部及び/若しくはパラグラフの一部を含むように指定されてもよい。
上述したように、クエリテキストと比較テキストサンプル全体との間の類似性を決定するのではなく、又はそれに加えて、クエリテキストと比較テキストサンプルの個々のセグメントとの間の類似性を決定することは有益であり得る。セグメントは重複してもよく又は重複していなくてもよい。セグメントは、別々のパラグラフ全体若しくは文全体を含むように制限されてもよく、又は文の一部及び/若しくはパラグラフの一部を含むように指定されてもよい。
セグメントは手動で決定されてよい。例えば、ユーザはテキストサンプルに注釈を付けて、テキストサンプルの概念的に別々の部分の範囲を示すことができる。いくつかの例では、これはセクション見出しを挿入することを含んでよく、セクション見出しは、テキストサンプル内のセグメントの標識として後で使用される。追加的又は代替的に、自動アルゴリズムを使用してテキストのサンプルがセグメント化されてもよい。
そのような自動アルゴリズムは、テキストサンプルに存在する句読点に基づいて動作し得る。例えば、アルゴリズムは、テキストサンプル内の各パラグラフ及び/又は文が別個のセグメントに割り当てられるように、タブ、キャリッジリターン、及び/又はテキストに存在する他の何らかの句読点に基づいて、テキストサンプルをセグメント化することができる。
追加的又は代替的に、そのようなアルゴリズムは、テキストのサンプルを分割するために自然言語処理技法を組み込んでもよい。例えば、アルゴリズムは、各セグメント内のワード間の意味的類似性に関係するコスト関数を最小限にするためにパーティション境界を選択するように動作することができる。これは、各セグメント内のワードのワードベクトルの間の分散を最小限にすることを含み得る。
別の例では、機械学習アルゴリズム(例えばANN)が、テキストのサンプルを受け取り、そこからセグメントを生成するように訓練され得る。そのような機械学習アルゴリズムは、単一の概念に関係するテキストの短いサンプルの例を含む訓練データを提供されることによって、テキストのより大きなサンプル内のテキストの意味的に関係付けられたセグメントを検出するように訓練され得る。例えば、機械学習アルゴリズムは、以前に受け取ったテキストクエリのセット(例えば、インシデントレポートからの問題説明フィールド)を提供され、類似する特性を示すテキストのサンプル内のセグメントを識別するように訓練され得る。別の例では、機械学習アルゴリズムは、非文末句読点(例えば、「Dr.」におけるピリオド)に基づくセグメント化を回避しながら、セグメントが句読点のみに基づいて決定されるように、文の終わりを通知する句読点(例えば、!?.)に先行するワードを認識するように訓練され得る。更に別の例では、機械学習アルゴリズムは、(例えば、句読点を持たない言語のために)文の範囲を検出するために、音声タグの一部を検出するように訓練され得る。
VII.例示的動作
図11は、例示的実施形態を示すフローチャートである。図11に示すプロセスは、コンピューティング装置100などのコンピューティング装置、及び/又はサーバクラスタ200などのコンピューティング装置のクラスタによって実行され得る。しかしながら、このプロセスは、他のタイプの装置又は装置サブシステムによって実行することもできる。例えば、このプロセスは、ラップトップ又はタブレット装置のようなポータブルコンピュータによって実行されてもよい。
図11は、例示的実施形態を示すフローチャートである。図11に示すプロセスは、コンピューティング装置100などのコンピューティング装置、及び/又はサーバクラスタ200などのコンピューティング装置のクラスタによって実行され得る。しかしながら、このプロセスは、他のタイプの装置又は装置サブシステムによって実行することもできる。例えば、このプロセスは、ラップトップ又はタブレット装置のようなポータブルコンピュータによって実行されてもよい。
図11の実施形態は、そこに示された特徴の任意の1つ又は複数を除去することによって簡略化され得る。更に、これらの実施形態は、前述の図のいずれかの又は本明細書に他の形で記載されている特徴、態様、及び/又は実装と組み合わせられ得る。
図11の例示的実施形態は、サーバ装置によって、テキストレコードのコーパスを取得することを含む(1100)。テキストレコードの各々は、テキストのサンプルと、テキストのサンプル内のテキストの1つ又は複数のセグメントの標識とを含む。テキストレコードのうちの少なくとも1つは、テキストのサンプル内のテキストの少なくとも2つのセグメントの標識を含む。
図11の例示的実施形態は更に、サーバ装置によって、クライアント装置から、テキストの対象サンプルを取得することを含む(1102)。
図1の例示的実施形態は更に、サーバ装置によって、テキストの対象サンプルとテキストレコードの各々との間の意味的類似性値を決定することを含む(1104)。テキストの対象サンプルとコーパスの特定のテキストレコードとの間の特定の意味的類似性値を決定することは、(i)テキストの対象サンプルと特定のテキストレコードにより示されるテキストのセグメントの各々との間の個別の意味的類似性値を決定すること、及び(ii)個別の意味的類似性値に基づいて、テキストの対象サンプルと特定のテキストレコードとの間の特定の意味的類似性値を生成することを含む。
図11の例示的実施形態は更に、意味的類似性値に基づいて、サーバ装置によって、コーパスから、テキストレコードが他のいずれのテキストレコードよりもテキストの対象サンプルに類似することを示す意味的類似性を有するテキストレコードを選択することを含む(1106)。
図11の例示的実施形態は更に、サーバ装置によって、クライアント装置へ、テキストレコードの表現を提供することを含む(1108)。
VIII.結語
本開示は、本出願に記載された特定の実施形態の観点から限定されるものではなく、種々の態様の例示として意図されている。多くの変更及び変形は、当業者に明らかであるように、その範囲から逸脱することなく行うことができる。本明細書に説明されているものに加えて、開示の範囲内で機能的に等価な方法及び装置は、上記の説明から当業者には明らかであろう。そのような変更及び変形は、添付の特許請求の範囲内に含まれることを意図されている。
本開示は、本出願に記載された特定の実施形態の観点から限定されるものではなく、種々の態様の例示として意図されている。多くの変更及び変形は、当業者に明らかであるように、その範囲から逸脱することなく行うことができる。本明細書に説明されているものに加えて、開示の範囲内で機能的に等価な方法及び装置は、上記の説明から当業者には明らかであろう。そのような変更及び変形は、添付の特許請求の範囲内に含まれることを意図されている。
上記の詳細な説明は、添付の図面を参照して、開示されているシステム、装置、及び方法の種々の特徴及び動作について説明したものである。本明細書に説明された及び図面における例示的実施形態は、限定するように意図されていない。本明細書で示される主題の範囲から逸脱することなく、他の実施形態が使用されてよく、他の変更がなされてよい。本開示の態様は、本明細書に一般的に記載され図示されるように、様々な異なる形態で配置、置換、結合、分離、設計され得ることは容易に理解されるであろう。
図面における及び本明細書で説明されているメッセージフロー図、シナリオ、及びフローチャートのいずれか又は全てに関して、各ステップ、ブロック、及び/又は通信は、例示的実施形態に従って情報の処理及び/又は情報の送信を表すことができる。代替実施形態は、これらの例示的実施形態の範囲内に含まれる。これらの代替実施形態において、例えば、ステップ、ブロック、送信、通信、要求、応答、及び/又はメッセージとして説明される動作は、関連する機能に応じて、実質的に同時又は逆の順序を含めて、図示又は説明されるものと異なる順序で実行され得る。更に、本明細書で説明されたメッセージフロー図、シナリオ、及びフローチャートのいずれかと共に、より多い又はより少ないブロック及び/又は動作が使用されてよく、これらのメッセージフロー図、シナリオ、及びフローチャートは、部分的又は全体で相互に組み合わされ得る。
情報の処理を表すステップ又はブロックは、本明細書に記載の方法又は技術の特定の論理機能を実行するように構成できる回路に対応することができる。代替的又は追加的に、情報の処理を表すステップ又はブロックは、モジュール、セグメント、又はプログラムコードの一部(関連データを含む)に対応することができる。プログラムコードは、方法又は技術における特定の論理操作又はアクションを実装するためにプロセッサによって実行可能である1つ又は複数の命令を含むことができる。プログラムコード及び/又は関連データは、RAM、ディスクドライブ、ソリッドステートドライブ、又は他の記憶媒体を含む記憶装置など、任意のタイプのコンピュータ可読媒体に記憶され得る。
また、コンピュータ可読媒体には、レジスタメモリ及びプロセッサキャッシュのようにデータを短期間記憶するコンピュータ可読媒体のような、非一時的コンピュータ可読媒体も含まれ得る。コンピュータ可読媒体は更に、プログラムコード及び/又はデータをより長期間記憶する非一時的コンピュータ可読媒体が含まれ得る。したがって、コンピュータ可読媒体には、例えば、ROM、光又は磁気ディスク、ソリッドステートドライブ、コンパクトディスク読取り専用メモリ(CD-ROM)のような、二次又は永続的な長期記憶装置が含まれ得る。コンピュータ可読媒体はまた、他の任意の揮発性又は不揮発性の記憶システムとすることもできる。コンピュータ可読媒体は、例えば、コンピュータ可読記憶媒体又は有形記憶装置であるとみなされ得る。
更に、1つ又は複数の情報伝送を表すステップ又はブロックは、同じ物理装置内のソフトウェア及び/又はハードウェアモジュール間の情報伝送に対応することができる。しかしながら、他の情報伝送は、異なる物理装置におけるソフトウェアモジュール及び/又はハードウェアモジュール間にあり得る。
図面に示された特定の配置は、限定するものとみなされるべきではない。他の実施形態は、所与の図に示される各要素についてより多い又はより少ない要素を含み得ると理解されるべきである。更に、例示された要素のいくつかは、結合又は省略され得る。更に、例示的実施形態は、図面に示されていない要素を含むことができる。
様々な態様及び実施形態が本明細書に開示されているが、他の態様及び実施形態は当業者には明らかであろう。本明細書に開示された様々な態様及び実施形態は例示を目的としており、限定するものではなく、真の範囲は添付の特許請求の範囲によって示される。
Claims (30)
- テキストレコードのコーパスを含む永続ストレージであって、前記テキストレコードの各々が、テキストのサンプルと、テキストの前記サンプル内のテキストの1つ又は複数のセグメントの標識とを含み、前記テキストレコードのうちの少なくとも1つは、テキストの前記サンプル内のテキストの少なくとも2つのセグメントの標識を含み、テキストレコードの前記コーパスのテキストの前記サンプル内のテキストの前記1つ又は複数のセグメントの前記標識を機械学習モデルが生成する、永続ストレージと、
コンピューティング装置と
を含み、前記コンピューティング装置は、
クライアント装置からテキストの対象サンプルを取得することと、
テキストの前記対象サンプルと前記テキストレコードの各々との間の意味的類似性値を決定することであって、テキストの前記対象サンプルと前記コーパスの特定のテキストレコードとの間の特定の意味的類似性値を決定することは、(i)テキストの前記対象サンプルと前記特定のテキストレコードにより示されるテキストの前記1つ又は複数のセグメントの各々との間の個別の意味的類似性値を決定すること、(ii)テキストの前記対象サンプルと前記特定のテキストレコードにより示されるテキストの前記1つ又は複数のセグメントの各々との間の前記個別の意味的類似性値の各々を、閾値類似性レベルと比較すること、及び(iii)前記閾値類似性レベルを超える前記個別の意味的類似性値の数を、前記特定の意味的類似性値として決定することを含む、決定することと、
前記意味的類似性値に基づいて、前記コーパスから、テキストレコードが他のいずれの前記テキストレコードよりもテキストの前記対象サンプルに類似することを示す意味的類似性を有する前記テキストレコードを選択することと、
前記クライアント装置へ前記テキストレコードの表現を提供することと
を行うように構成される、システム。 - テキストの前記対象サンプルと前記特定のテキストレコード内のテキストの特定のセグメントとの間の個別の意味的類似性値を決定することが、
テキストの前記対象サンプルのベクトル表現を取得することであって、テキストの前記対象サンプルの前記ベクトル表現は、(i)第1の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの各別個のワードの意味を記述するワードベクトル、又は(ii)第2の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの複数ワードの意味を記述するパラグラフベクトルのうちの少なくとも一方を含む、取得することと、
テキストの前記特定のセグメントのベクトル表現を取得することであってテキストの前記特定のセグメントの前記ベクトル表現は、(i)前記第1の意味的に符号化されたベクトル空間において、テキストの前記特定のセグメントの各別個のワードの意味を記述するワードベクトル、又は(ii)前記第2の意味的に符号化されたベクトル空間において、テキストの前記特定のセグメントの複数ワードの意味を記述するパラグラフベクトルのうちの少なくとも一方を含む、取得することと、
テキストの前記対象サンプルの前記ベクトル表現とテキストの前記特定のセグメントの前記ベクトル表現との間の意味的類似性値を決定することと
を含む請求項1に記載のシステム。 - 前記機械学習モデルは、テキストの各サンプル内のテキストの前記1つ又は複数のセグメントの前記標識を、テキストの非重複セグメントとして識別するように構成される、請求項1又は2に記載のシステム。
- 前記機械学習モデルは、テキストの各サンプル内のテキストの前記1つ又は複数のセグメントの前記標識を、それぞれが1つ又は複数の別々の文を表すテキストのセグメントとして識別するように構成される、請求項1又は2に記載のシステム。
- 前記コンピューティング装置は、
1つ又は複数のクライアント装置から複数のクエリを取得することであって、各クエリはテキストのクエリサンプルを含む、取得することと、
テキストのサンプル内のテキストの関係付けられたセグメントを予測するために、前記複数のクエリに基づいて、前記機械学習モデルを訓練することと
を行うように構成される、請求項1から4のいずれかに記載のシステム。 - サーバ装置によって、テキストレコードのコーパスのテキストの各別個のサンプル内のテキストの1つ又は複数のセグメントの標識を生成するために、機械学習モデルをテキストレコードの前記コーパスに適用するステップであって、前記テキストレコードの各々が、テキストの各別個のサンプルを含み、前記テキストレコードのうちの少なくとも1つは、テキストの前記サンプル内のテキストの少なくとも2つのセグメントの標識を含む、ステップと、
前記サーバ装置によって、クライアント装置から、テキストの対象サンプルを取得するステップと、
前記サーバ装置によって、テキストの前記対象サンプルと前記テキストレコードの各々との間の意味的類似性値を決定するステップであって、テキストの前記対象サンプルと前記コーパスの特定のテキストレコードとの間の特定の意味的類似性値を決定するステップが、(i)テキストの前記対象サンプルと前記特定のテキストレコードにより示されるテキストの前記1つ又は複数のセグメントの各々との間の個別の意味的類似性値を決定するステップ、及び(ii)前記個別の意味的類似性値を平均して前記特定の意味的類似性値を生成するステップを含む、ステップと、
前記意味的類似性値に基づいて、前記サーバ装置によって、前記コーパスから、テキストレコードが他のいずれの前記テキストレコードよりもテキストの前記対象サンプルに類似することを示す意味的類似性を有する前記テキストレコードを選択するステップと、
前記サーバ装置によって、前記クライアント装置へ、前記テキストレコードの表現を提供するステップと
を含むコンピュータ実装方法。 - テキストの前記対象サンプルと前記特定のテキストレコード内のテキストの特定のセグメントとの間の個別の意味的類似性値を決定するステップが、
テキストの前記対象サンプルのベクトル表現を取得するステップであって、テキストの前記対象サンプルの前記ベクトル表現は、(i)第1の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの各別個のワードの意味を記述するワードベクトル、又は(ii)第2の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの複数ワードの意味を記述するパラグラフベクトルのうちの少なくとも一方を含む、ステップと、
テキストの前記特定のセグメントのベクトル表現を取得するステップであってテキストの前記特定のセグメントの前記ベクトル表現は、(i)前記第1の意味的に符号化されたベクトル空間において、テキストの前記特定のセグメントの各別個のワードの意味を記述するワードベクトル、又は(ii)前記第2の意味的に符号化されたベクトル空間において、テキストの前記特定のセグメントの複数ワードの意味を記述するパラグラフベクトルのうちの少なくとも一方を含む、ステップと、
テキストの前記対象サンプルの前記ベクトル表現とテキストの前記特定のセグメントの前記ベクトル表現との間の意味的類似性値を決定するステップと
を含む、請求項6に記載のコンピュータ実装方法。 - 前記機械学習モデルは、テキストの各サンプル内のテキストの前記1つ又は複数のセグメントの前記標識を、テキストの非重複セグメントとして識別するように構成される、請求項6又は7に記載のコンピュータ実装方法。
- 前記機械学習モデルは、テキストの各サンプル内のテキストの前記1つ又は複数のセグメントの前記標識を、それぞれが1つ又は複数の別々の文を表すテキストのセグメントとして識別するように構成される、請求項6又は7に記載のコンピュータ実装方法。
- 1つ又は複数のクライアント装置から複数のクエリを取得するステップであって、各クエリはテキストのクエリサンプルを含む、ステップと、
テキストのサンプル内のテキストの関係付けられたセグメントを予測するために、前記複数のクエリに基づいて、前記機械学習モデルを訓練するステップと
を含む、請求項6から9のいずれかに記載のコンピュータ実装方法。 - プログラム命令を記憶した非一時的コンピュータ可読媒体であって、前記プログラム命令は、コンピューティングシステムによって実行されると、
テキストレコードのコーパスを取得することであって、前記テキストレコードの各々が、テキストのサンプルと、テキストの前記サンプル内のテキストの1つ又は複数のセグメントの標識とを含み、テキストの前記サンプル内のテキストの前記1つ又は複数のセグメントの前記標識を機械学習モデルが生成する、取得することと、
クライアント装置からテキストの対象サンプルを取得することであって、前記テキストレコードのうちの少なくとも1つは、テキストの前記サンプル内のテキストの少なくとも2つのセグメントの標識を含む、取得することと、
テキストの前記対象サンプルと前記テキストレコードの各々との間の意味的類似性値を決定することであって、テキストの前記対象サンプルと前記コーパスの特定のテキストレコードとの間の特定の意味的類似性値を決定することは、(i)テキストの前記対象サンプルと前記特定のテキストレコードにより示されるテキストの前記1つ又は複数のセグメントの各々との間の個別の意味的類似性値を決定すること、(ii)テキストの前記対象サンプルと前記特定のテキストレコードにより示されるテキストの前記1つ又は複数のセグメントの各々との間の前記個別の意味的類似性値の各々を、閾値類似性レベルと比較すること、及び(iii)前記閾値類似性レベルを超える前記個別の意味的類似性値の数を、前記特定の意味的類似性値として決定することを含む、決定することと、
前記意味的類似性値に基づいて、前記コーパスから、テキストレコードが他のいずれの前記テキストレコードよりもテキストの前記対象サンプルに類似することを示す意味的類似性を有する前記テキストレコードを選択することと、
前記クライアント装置へ前記テキストレコードの表現を提供することと
を含む動作を、前記コンピューティングシステムに実行させる、非一時的コンピュータ可読媒体。 - テキストの前記対象サンプルと前記特定のテキストレコード内のテキストの特定のセグメントとの間の個別の意味的類似性値を決定することが、
テキストの前記対象サンプルのベクトル表現を取得することであって、テキストの前記対象サンプルの前記ベクトル表現は、(i)第1の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの各別個のワードの意味を記述するワードベクトル、又は(ii)第2の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの複数ワードの意味を記述するパラグラフベクトルのうちの少なくとも一方を含む、取得することと、
テキストの前記特定のセグメントのベクトル表現を取得することであってテキストの前記特定のセグメントの前記ベクトル表現は、(i)前記第1の意味的に符号化されたベクトル空間において、テキストの前記特定のセグメントの各別個のワードの意味を記述するワードベクトル、又は(ii)前記第2の意味的に符号化されたベクトル空間において、テキストの前記特定のセグメントの複数ワードの意味を記述するパラグラフベクトルのうちの少なくとも一方を含む、取得することと、
テキストの前記対象サンプルの前記ベクトル表現とテキストの前記特定のセグメントの前記ベクトル表現との間の意味的類似性値を決定することと
を含む、請求項11に記載の非一時的コンピュータ可読媒体。 - 前記機械学習モデルは、テキストの各サンプル内のテキストの前記1つ又は複数のセグメントの前記標識を、テキストの非重複セグメントとして識別するように構成される、請求項11又は12に記載の非一時的コンピュータ可読媒体。
- 前記動作は、
1つ又は複数のクライアント装置から複数のクエリを取得することであって、各クエリはテキストのクエリサンプルを含む、取得することと、
テキストのサンプル内のテキストの関係付けられたセグメントを予測するために、前記複数のクエリに基づいて、前記機械学習モデルを訓練することと
を含む、請求項11から13のいずれかに記載の非一時的コンピュータ可読媒体。 - プロセッサと、
前記プロセッサによってアクセス可能なメモリと
を含み、前記メモリは、前記プロセッサによって実行されると前記プロセッサに動作を行わせる命令を記憶し、前記動作は、
複数のテキストレコードを含むコーパスにアクセスすることと、
機械学習モデルに基づいて、前記コーパスにおける前記複数のテキストレコードの各々内のテキストの1つ又は複数の各別個のセグメントの標識を生成することと、
クライアント装置からテキストの対象サンプルを取得することと、
テキストの前記対象サンプルと前記コーパスにおける前記テキストレコードの各々との間の各別個のレコード意味的類似性値を生成することであって、前記コーパスにおける前記テキストレコードの各々について、
テキストの前記対象サンプルと前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントとの間の1つ又は複数の各別個のセグメント意味的類似性値を決定すること、及び
前記各別個のセグメント意味的類似性値の各々を閾値類似性レベルと比較することと、前記閾値類似性レベルを超える前記各別個のセグメント意味的類似性値の数を、前記各別個のレコード意味的類似性値として決定することによって、テキストの前記対象サンプルと前記テキストレコードとの間の前記各別個のレコード意味的類似性値を生成すること
を含む、生成することと、
前記コーパスから、前記生成された各別個のレコード意味的類似性値に基づいて、テキストの前記対象サンプルについての最も大きい前記別個のレコード意味的類似性値を有する特定のテキストレコードを選択することと、
前記クライアント装置へ前記特定のテキストレコードの表現を提供することと
を含む、システム。 - テキストの前記対象サンプルと前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントとの間の前記1つ又は複数の各別個のセグメント意味的類似性値を決定することは、
テキストの前記対象サンプルのベクトル表現を受け取ることであって、テキストの前記対象サンプルの前記ベクトル表現は、第1の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの各別個のワードの意味を記述するワードベクトル、又は第2の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの複数ワードの意味を記述するパラグラフベクトル、又は両方を含む、受け取ることと、
前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントの1つ又は複数のベクトル表現を受け取ることであって、前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントの前記1つ又は複数のベクトル表現は、前記第1の意味的に符号化されたベクトル空間において、前記テキストレコード内のテキストの前記1つ若しくは複数の各別個のセグメントの各別個のワードの意味を記述するワードベクトル、又は前記第2の意味的に符号化されたベクトル空間において、前記テキストレコード内のテキストの前記1つ若しくは複数の各別個のセグメント内の複数ワードの意味を記述するパラグラフベクトルを含む、受け取ることと、
テキストの前記対象サンプルの前記ベクトル表現と前記テキストレコード内のテキストの前記1つ又は複数のセグメントの各別個の前記ベクトル表現との間のベクトル意味的類似性値を決定することと
を含む、請求項15に記載のシステム。 - 前記機械学習モデルは、前記テキストレコードの各々内のテキストの前記1つ又は複数の各別個のセグメントの前記標識を、テキストの非重複セグメントとして識別するように構成される、請求項15に記載のシステム。
- 前記機械学習モデルは、前記テキストレコードの各々内のテキストの前記1つ又は複数の各別個のセグメントを、1つ又は複数の別々の文として識別するように構成される、請求項15に記載のシステム。
- 前記テキストレコードの各々は、所定の時間閾値内のタイムスタンプの標識を含む、請求項15に記載のシステム。
- サーバ装置によって、複数のテキストレコードを含むコーパスにアクセスするステップと、
機械学習モデルに基づいて、前記コーパスにおける前記複数のテキストレコードの各々内のテキストの1つ又は複数の各別個のセグメントの標識を生成するステップと、
前記サーバ装置によって、クライアント装置から、テキストの対象サンプルを受け取るステップと、
前記サーバ装置によって、テキストの前記対象サンプルと前記コーパスにおける前記テキストレコードの各々との間の各別個のレコード意味的類似性値を生成するステップであって、前記コーパスにおける前記テキストレコードの各々について、
テキストの前記対象サンプルと前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントとの間の1つ又は複数の各別個のセグメント意味的類似性値を決定するステップ、及び
前記1つ又は複数の各別個のセグメント意味的類似性値を平均することによって、テキストの前記対象サンプルと前記テキストレコードとの間の前記各別個のレコード意味的類似性値を生成するステップ
を含む、ステップと、
前記コーパスから、前記生成された各別個のレコード意味的類似性値に基づいて、テキストの前記対象サンプルについての最も大きい前記別個の意味的類似性値を有する特定のテキストレコードを選択するステップと、
前記サーバ装置によって、前記クライアント装置へ、前記特定のテキストレコードの表現を提供するステップと
を含むコンピュータ実装方法。 - テキストの前記対象サンプルと前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントとの間の前記1つ又は複数の各別個のセグメント意味的類似性値を決定するステップは、
テキストの前記対象サンプルのベクトル表現を受け取るステップであって、テキストの前記対象サンプルの前記ベクトル表現は、第1の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの各別個のワードの意味を記述するワードベクトル、又は第2の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの複数ワードの意味を記述するパラグラフベクトル、又は両方を含む、ステップと、
前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントの1つ又は複数のベクトル表現を受け取るステップであって、前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントの前記1つ又は複数のベクトル表現は、前記第1の意味的に符号化されたベクトル空間において、前記テキストレコード内のテキストの前記1つ若しくは複数の各別個のセグメントの各別個のワードの意味を記述するワードベクトル、又は前記第2の意味的に符号化されたベクトル空間において、前記テキストレコード内のテキストの前記1つ若しくは複数の各別個のセグメント内の複数ワードの意味を記述するパラグラフベクトルを含む、ステップと、
テキストの前記対象サンプルの前記ベクトル表現と前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントの前記ベクトル表現との間のベクトル意味的類似性値を決定するステップと
を含む、請求項20に記載のコンピュータ実装方法。 - 前記コーパスにおける前記テキストレコードの各々内のテキストの前記1つ又は複数の各別個のセグメントの標識を生成するステップは、1つ又は複数のドキュメントプロパティに基づくことを特徴とし、前記方法は、前記標識に基づいて、前記テキストレコードの各々をテキストの前記1つ又は複数の各別個のセグメントへ分割するステップを含む、請求項20に記載のコンピュータ実装方法。
- 前記機械学習モデルは、前記テキストレコードの各々内のテキストの前記1つ又は複数の各別個のセグメントの前記標識を、テキストの非重複セグメントとして識別するように構成される、請求項20に記載のコンピュータ実装方法。
- 前記機械学習モデルは、前記テキストレコードの各々内のテキストの前記1つ又は複数の各別個のセグメントを、1つ又は複数の別々の文として識別するように構成される、請求項20に記載のコンピュータ実装方法。
- 前記生成された各別個のレコード意味的類似性値に基づいて、前記コーパスから2つ以上のテキストレコードを選択するステップと、
前記2つ以上のテキストレコードの表現を前記クライアント装置に提供するステップと
を含む、請求項20に記載のコンピュータ実装方法。 - プログラム命令を記憶した非一時的コンピュータ可読媒体であって、前記プログラム命令は、コンピューティングシステムによって実行されると、
サーバ装置によって、複数のテキストレコードを含むコーパスにアクセスすることと、
機械学習モデルに基づいて、前記コーパスにおける前記複数のテキストレコードの各々内のテキストの1つ又は複数の各別個のセグメントの標識を生成することと、
前記サーバ装置によって、クライアント装置から、テキストの対象サンプルを受け取ることと、
前記サーバ装置によって、テキストの前記対象サンプルと前記コーパスにおける前記テキストレコードの各々との間の各別個のレコード意味的類似性値を生成することであって、前記コーパスにおける前記テキストレコードの各々について、
テキストの前記対象サンプルと前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントとの間の1つ又は複数の各別個のセグメント意味的類似性値を決定すること、及び
前記各別個のセグメント意味的類似性値の各々を閾値類似性レベルと比較することと、前記閾値類似性レベルを超える前記各別個のセグメント意味的類似性値の数を、前記各別個のレコード意味的類似性値として決定することによって、テキストの前記対象サンプルと前記テキストレコードとの間の前記各別個のレコード意味的類似性値を生成すること
を含む、生成することと、
前記コーパスから、前記生成された各別個のレコード意味的類似性値に基づいて、テキストの前記対象サンプルについての最も大きい前記別個の意味的類似性値を有する特定のテキストレコードを選択することと、
前記サーバ装置によって、前記クライアント装置へ、前記特定のテキストレコードの表現を提供することと
を含む動作を、前記コンピューティングシステムに実行させる、非一時的コンピュータ可読媒体。 - テキストの前記対象サンプルと前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントとの間の前記1つ又は複数の各別個のセグメント意味的類似性値を決定することは、
テキストの前記対象サンプルのベクトル表現を受け取ることであって、テキストの前記対象サンプルの前記ベクトル表現は、第1の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの各別個のワードの意味を記述するワードベクトル、又は第2の意味的に符号化されたベクトル空間において、テキストの前記対象サンプルの複数ワードの意味を記述するパラグラフベクトル、又は両方を含む、受け取ることと、
前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントの1つ又は複数のベクトル表現を受け取ることであって、前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントの前記1つ又は複数のベクトル表現は、前記第1の意味的に符号化されたベクトル空間において、前記テキストレコード内のテキストの前記1つ若しくは複数の各別個のセグメントの各別個のワードの意味を記述するワードベクトル、又は前記第2の意味的に符号化されたベクトル空間において、前記テキストレコード内のテキストの前記1つ若しくは複数の各別個のセグメント内の複数ワードの意味を記述するパラグラフベクトルを含む、受け取ることと、
テキストの前記対象サンプルの前記ベクトル表現と前記テキストレコード内のテキストの前記1つ又は複数の各別個のセグメントの前記ベクトル表現との間のベクトル意味的類似性値を決定することと
を含む、請求項26に記載の非一時的コンピュータ可読媒体。 - 前記テキストレコードの各々は、所定の時間閾値内のタイムスタンプの標識を含む、請求項26に記載の非一時的コンピュータ可読媒体。
- 前記機械学習モデルは、前記テキストレコードの各々内のテキストの前記1つ又は複数の各別個のセグメントの前記標識を、テキストの非重複セグメントとして識別するように構成される、請求項26に記載の非一時的コンピュータ可読媒体。
- 前記動作は、
前記生成された各別個のレコード意味的類似性値に基づいて、前記コーパスから2つ以上のテキストレコードを選択することと、
前記2つ以上のテキストレコードの表現を前記クライアント装置に提供することと
を含む、請求項26に記載の非一時的コンピュータ可読媒体。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/362,187 | 2019-03-22 | ||
US16/362,187 US11151325B2 (en) | 2019-03-22 | 2019-03-22 | Determining semantic similarity of texts based on sub-sections thereof |
PCT/US2020/023804 WO2020197985A1 (en) | 2019-03-22 | 2020-03-20 | Determining semantic similarity of texts based on sub-sections thereof |
JP2021557074A JP2022527060A (ja) | 2019-03-22 | 2020-03-20 | テキストの意味的類似性をそのサブセクションに基づいて決定すること |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021557074A Division JP2022527060A (ja) | 2019-03-22 | 2020-03-20 | テキストの意味的類似性をそのサブセクションに基づいて決定すること |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024020653A true JP2024020653A (ja) | 2024-02-14 |
Family
ID=70289482
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021557074A Pending JP2022527060A (ja) | 2019-03-22 | 2020-03-20 | テキストの意味的類似性をそのサブセクションに基づいて決定すること |
JP2023210677A Pending JP2024020653A (ja) | 2019-03-22 | 2023-12-14 | テキストの意味的類似性をそのサブセクションに基づいて決定すること |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021557074A Pending JP2022527060A (ja) | 2019-03-22 | 2020-03-20 | テキストの意味的類似性をそのサブセクションに基づいて決定すること |
Country Status (6)
Country | Link |
---|---|
US (2) | US11151325B2 (ja) |
EP (1) | EP3942434A1 (ja) |
JP (2) | JP2022527060A (ja) |
KR (1) | KR20210139426A (ja) |
AU (1) | AU2020248738B2 (ja) |
WO (1) | WO2020197985A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10943068B2 (en) * | 2019-03-29 | 2021-03-09 | Microsoft Technology Licensing, Llc | N-ary relation prediction over text spans |
US11651032B2 (en) * | 2019-05-03 | 2023-05-16 | Servicenow, Inc. | Determining semantic content of textual clusters |
US11601453B2 (en) * | 2019-10-31 | 2023-03-07 | Hewlett Packard Enterprise Development Lp | Methods and systems for establishing semantic equivalence in access sequences using sentence embeddings |
US11153151B2 (en) * | 2020-03-10 | 2021-10-19 | Dish Network L.L.C. | Centralized self-healing update and fix of network device configuration |
US11556788B2 (en) * | 2020-06-15 | 2023-01-17 | International Business Machines Corporation | Text-based response environment action selection |
US11995088B2 (en) * | 2020-12-29 | 2024-05-28 | Atlassian Pty Ltd. | Systems and methods for identifying similar electronic content items |
EP4250132A4 (en) * | 2021-01-22 | 2024-04-24 | Samsung Electronics Co., Ltd. | ELECTRONIC DEVICE AND ITS CONTROL METHOD |
US20220398599A1 (en) * | 2021-06-11 | 2022-12-15 | EMC IP Holding Company LLC | Method and system for predicting next steps for customer support cases |
US20220414128A1 (en) * | 2021-06-23 | 2022-12-29 | Servicenow Canada Inc. | Method and system for interactive searching based on semantic similarity of semantic representations of text objects |
CN113806486B (zh) * | 2021-09-23 | 2024-05-10 | 深圳市北科瑞声科技股份有限公司 | 长文本相似度的计算方法及装置、存储介质、电子装置 |
US11941641B2 (en) | 2021-10-15 | 2024-03-26 | EMC IP Holding Company LLC | Method and system to manage technical support sessions using historical technical support sessions |
US12008025B2 (en) | 2021-10-15 | 2024-06-11 | EMC IP Holding Company LLC | Method and system for augmenting a question path graph for technical support |
US11915205B2 (en) | 2021-10-15 | 2024-02-27 | EMC IP Holding Company LLC | Method and system to manage technical support sessions using ranked historical technical support sessions |
WO2023094002A1 (en) * | 2021-11-27 | 2023-06-01 | Zoe Life Technologies Ag | Configuring a machine device efficiently over a network |
US20230315768A1 (en) * | 2022-03-29 | 2023-10-05 | Workday, Inc. | Computerized systems and methods for semantic searching |
US11934439B1 (en) * | 2023-02-27 | 2024-03-19 | Intuit Inc. | Similar cases retrieval in real time for call center agents |
CN117992898B (zh) * | 2024-04-07 | 2024-06-14 | 腾讯科技(深圳)有限公司 | 异常检测模型的训练方法、物体异常检测方法和装置 |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000079426A1 (en) | 1999-06-18 | 2000-12-28 | The Trustees Of Columbia University In The City Of New York | System and method for detecting text similarity over short passages |
US6983321B2 (en) | 2000-07-10 | 2006-01-03 | Bmc Software, Inc. | System and method of enterprise systems and business impact management |
US6678887B1 (en) | 2000-07-11 | 2004-01-13 | Networks Associates Technology, Inc. | Customizing business logic and data sources by modifying methods defined within an API |
US6609122B1 (en) | 2000-08-01 | 2003-08-19 | Bmc Software, Inc. | Navigation of view relationships in database system |
US7028301B2 (en) | 2000-12-08 | 2006-04-11 | Bmc Software, Inc. | System and method for automatic workload characterization |
JP4065695B2 (ja) * | 2001-01-24 | 2008-03-26 | 住友電気工業株式会社 | 文字列類似度算出装置、文字列類似度算出プログラム、それを記録したコンピュータ読み取り可能な記録媒体および文字列類似度算出方法 |
US7194461B2 (en) * | 2001-03-02 | 2007-03-20 | Hewlett-Packard Development Company, L.P. | Document and information retrieval method and apparatus |
US7170864B2 (en) | 2001-03-08 | 2007-01-30 | Bmc Software, Inc. | System and method for WAP server management using a single console |
US7506047B2 (en) | 2001-03-30 | 2009-03-17 | Bmc Software, Inc. | Synthetic transaction monitor with replay capability |
US7089245B1 (en) | 2001-08-31 | 2006-08-08 | Bmc Software, Inc. | Service desk data transfer interface |
KR100685023B1 (ko) * | 2001-11-13 | 2007-02-20 | 주식회사 포스코 | 유사성 판단을 위한 예제기반 검색 방법 및 검색 시스템 |
WO2003075117A2 (en) | 2002-03-01 | 2003-09-12 | Bmc Software, Inc. | System and method for assessing and indicating the health of components |
US7131037B1 (en) | 2002-06-05 | 2006-10-31 | Proactivenet, Inc. | Method and system to correlate a specific alarm to one or more events to identify a possible cause of the alarm |
US7039634B2 (en) * | 2003-03-12 | 2006-05-02 | Hewlett-Packard Development Company, L.P. | Semantic querying a peer-to-peer network |
US7062683B2 (en) | 2003-04-22 | 2006-06-13 | Bmc Software, Inc. | Two-phase root cause analysis |
US7945860B2 (en) | 2003-05-14 | 2011-05-17 | Hewlett-Packard Development Company, L.P. | Systems and methods for managing conversations between information technology resources |
US7689628B2 (en) | 2005-05-19 | 2010-03-30 | Atul Garg | Monitoring several distributed resource elements as a resource pool |
US7882213B2 (en) | 2003-06-03 | 2011-02-01 | Bmc Software, Inc. | Network management system to monitor managed elements |
US8224683B2 (en) | 2003-07-08 | 2012-07-17 | Hewlett-Packard Development Company, L.P. | Information technology service request level of service monitor |
US7219085B2 (en) | 2003-12-09 | 2007-05-15 | Microsoft Corporation | System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit |
AU2005318955A1 (en) | 2004-12-21 | 2006-06-29 | Bmc Software, Inc. | System and method for business service management and building business service model |
US20070073745A1 (en) * | 2005-09-23 | 2007-03-29 | Applied Linguistics, Llc | Similarity metric for semantic profiling |
US7610512B2 (en) | 2006-01-06 | 2009-10-27 | Hewlett-Packard Development Company, L.P. | System and method for automated and assisted resolution of it incidents |
US8887133B2 (en) | 2006-04-28 | 2014-11-11 | Bmc Software, Inc. | Bi-directional communication between change management tool and implementation tools |
WO2008039964A1 (en) | 2006-09-28 | 2008-04-03 | Nec Laboratories America, Inc. | Software testing using machine learning |
WO2009066501A1 (ja) * | 2007-11-19 | 2009-05-28 | Nippon Telegraph And Telephone Corporation | 情報検索方法及び装置及びプログラム及びコンピュータ読取可能な記録媒体 |
US8051164B2 (en) | 2007-12-14 | 2011-11-01 | Bmc Software, Inc. | Impact propagation in a directed acyclic graph having restricted views |
US8266096B2 (en) | 2008-10-24 | 2012-09-11 | Bmc Software, Inc. | Vendor portfolio management in support of vendor relationship management analysis, planning and evaluation |
US8983982B2 (en) | 2009-12-22 | 2015-03-17 | Bmc Software, Inc. | Mechanism for deprecating object oriented data |
US8743121B2 (en) | 2009-12-23 | 2014-06-03 | Bmc Software, Inc. | Smart impact views |
US8478569B2 (en) | 2010-03-26 | 2013-07-02 | Bmc Software, Inc. | Auto adjustment of baseline on configuration change |
US8457928B2 (en) | 2010-03-26 | 2013-06-04 | Bmc Software, Inc. | Automatic determination of dynamic threshold for accurate detection of abnormalities |
US8674992B2 (en) | 2010-06-24 | 2014-03-18 | Bmc Software, Inc. | Spotlight graphs |
US8909665B2 (en) * | 2011-08-30 | 2014-12-09 | Microsoft Corporation | Subsnippet handling in search results |
US8689241B2 (en) | 2011-09-30 | 2014-04-01 | Bmc Software, Inc. | Dynamic evocations for computer event management |
US8914768B2 (en) | 2012-03-28 | 2014-12-16 | Bmc Software, Inc. | Automated blueprint assembly for assembling an application |
US11157570B2 (en) | 2012-05-24 | 2021-10-26 | Evernote Corporation | Related notes and multi-layer search in personal and shared content |
US8533148B1 (en) * | 2012-10-01 | 2013-09-10 | Recommind, Inc. | Document relevancy analysis within machine learning systems including determining closest cosine distances of training examples |
US9535674B2 (en) | 2012-12-21 | 2017-01-03 | Bmc Software, Inc. | Application wrapping system and method |
US9508051B2 (en) | 2013-03-15 | 2016-11-29 | Bmc Software, Inc. | Business development configuration |
IN2013CH04333A (ja) * | 2013-09-25 | 2015-08-28 | Accenture Global Services Ltd | |
US9348920B1 (en) * | 2014-12-22 | 2016-05-24 | Palantir Technologies Inc. | Concept indexing among database of documents using machine learning techniques |
US9535737B2 (en) | 2015-01-30 | 2017-01-03 | Bladelogic, Inc. | Dynamic virtual port provisioning |
US10140880B2 (en) * | 2015-07-10 | 2018-11-27 | Fujitsu Limited | Ranking of segments of learning materials |
US9852337B1 (en) * | 2015-09-30 | 2017-12-26 | Open Text Corporation | Method and system for assessing similarity of documents |
US10423645B2 (en) * | 2015-12-07 | 2019-09-24 | Facebook, Inc. | Systems and methods for categorizing content |
US20170322930A1 (en) * | 2016-05-07 | 2017-11-09 | Jacob Michael Drew | Document based query and information retrieval systems and methods |
CN108536708A (zh) * | 2017-03-03 | 2018-09-14 | 腾讯科技(深圳)有限公司 | 一种自动问答处理方法及自动问答系统 |
US20180300407A1 (en) * | 2017-04-13 | 2018-10-18 | Runtime Collective Limited | Query Generation for Social Media Data |
US11640436B2 (en) * | 2017-05-15 | 2023-05-02 | Ebay Inc. | Methods and systems for query segmentation |
US20180341686A1 (en) * | 2017-05-26 | 2018-11-29 | Nanfang Hu | System and method for data search based on top-to-bottom similarity analysis |
CN107491547B (zh) * | 2017-08-28 | 2020-11-10 | 北京百度网讯科技有限公司 | 基于人工智能的搜索方法和装置 |
US11409749B2 (en) * | 2017-11-09 | 2022-08-09 | Microsoft Technology Licensing, Llc | Machine reading comprehension system for answering queries related to a document |
CN108197102A (zh) * | 2017-12-26 | 2018-06-22 | 百度在线网络技术(北京)有限公司 | 一种文本数据统计方法、装置和服务器 |
TWI663583B (zh) * | 2018-08-13 | 2019-06-21 | 國立臺灣師範大學 | 發散思維測驗自動評分方法及系統 |
WO2020060718A1 (en) * | 2018-08-22 | 2020-03-26 | Three10 Solutions, Inc. | Intelligent search platforms |
US11003854B2 (en) * | 2018-10-30 | 2021-05-11 | International Business Machines Corporation | Adjusting an operation of a system based on a modified lexical analysis model for a document |
US11308320B2 (en) * | 2018-12-17 | 2022-04-19 | Cognition IP Technology Inc. | Multi-segment text search using machine learning model for text similarity |
-
2019
- 2019-03-22 US US16/362,187 patent/US11151325B2/en active Active
-
2020
- 2020-03-20 AU AU2020248738A patent/AU2020248738B2/en active Active
- 2020-03-20 WO PCT/US2020/023804 patent/WO2020197985A1/en active Application Filing
- 2020-03-20 EP EP20719290.7A patent/EP3942434A1/en not_active Withdrawn
- 2020-03-20 KR KR1020217034119A patent/KR20210139426A/ko unknown
- 2020-03-20 JP JP2021557074A patent/JP2022527060A/ja active Pending
-
2021
- 2021-09-23 US US17/448,667 patent/US20220012431A1/en active Pending
-
2023
- 2023-12-14 JP JP2023210677A patent/JP2024020653A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20200302018A1 (en) | 2020-09-24 |
EP3942434A1 (en) | 2022-01-26 |
WO2020197985A1 (en) | 2020-10-01 |
JP2022527060A (ja) | 2022-05-30 |
US11151325B2 (en) | 2021-10-19 |
KR20210139426A (ko) | 2021-11-22 |
AU2020248738A1 (en) | 2021-10-21 |
US20220012431A1 (en) | 2022-01-13 |
AU2020248738B2 (en) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020248738B2 (en) | Determining semantic similarity of texts based on sub-sections thereof | |
CA3055823C (en) | Selectively generating word vector and paragraph vector representations of fields for machine learning | |
AU2020270417B2 (en) | Clustering and dynamic re-clustering of similar textual documents | |
AU2021200509B2 (en) | Persistent word vector input to multiple machine learning models | |
AU2020269378B2 (en) | Centralized machine learning predictor for a remote network management platform | |
US20230031152A1 (en) | Knowledgebase Development Through Mining of Messaging Transactions | |
JP2024095708A (ja) | 類似のテキスト文書のクラスタリング及び動的再クラスタリング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231214 |