NLPのテキスト埋め込みとベクトル検索をデプロイする方法
本記事はNLP(自然言語処理)に関する連載シリーズの一部です。今回はテキスト埋め込みモデルを使ってテキストコンテンツのベクトル表現を生成する手法を説明するほか、生成されたベクトルを使ったベクトル類似性検索のデモンストレーションを実施します。全体の流れとして、はじめに一般に公開されているモデルをElasticsearchにデプロイします。次に、そのモデルをインジェストパイプラインの中で使用してテキストドキュメントからの埋め込みを行います。記事後半では、この埋め込みをベクトル類似性検索で使用し、所与のクエリに対しセマンティックな類似性を持つドキュメントを見つける手法を説明します。
ベクトル類似性検索は一般的に、セマンティック検索とも呼ばれます。この手法を使うと共通のキーワードがない場合にも意味論的に類似のドキュメントを発見することが可能になり、従来型のキーワードベース検索に比べて検索結果の幅が広がります。ベクトル類似性検索は高密度ベクトルに対して動作し、k近傍検索を使用して類似のベクトルを見つけます。したがってテキスト形式のコンテンツは、テキスト埋め込みモデルを使って数的ベクトル表現に変換しておく必要があります。
本記事のデモンストレーションでは、MS MARCO Passage Ranking Taskの公開データセットを使用します。このデータセットには、Microsoft Bing検索エンジンから提供された実際の質問と、それに対して人間が作成した回答が含まれています。このデータセットがベクトル類似性検索のテスト用リソースにふさわしいと言える理由は複数あります。第1に、Q&Aはベクトル検索の最も一般的なユースケースの1つです。第2に、MS MARCOランキングの上位の文書は、何らかの形式でベクトル検索を使用しています。
今回はこのデータセットのサンプルで作業を開始し、モデルを使ってテキスト埋め込みを行った後、ベクトル検索を実行します。また最後に、ベクトル検索が提供した検索結果の質について簡単な検証を行います。
1. テキスト埋め込みモデルをデプロイする
最初の手順は、テキスト埋め込みモデルのインストールです。本記事ではHugging Faceが公開しているmsmarco-MiniLM-L-12-v3を使用します。msmarco-MiniLM-L-12-v3は1つの文または段落を処理し、384次元の高密度ベクトルにマッピングする文変換モデルです。セマンティック検索に最適化されており、またMS MARCO Passageに特化した教育が施されていることから、今回の目的に適ったモデルとなっています。Elasticsearchはこの他にも多数のテキスト埋め込みモデルをサポートしています。サポート対象モデル一覧は、こちらをご覧ください。
今回は、NERの事例の手順で構築したEland dockerエージェントを使ってmsmarco-MiniLM-L-12-v3モデルをインストールします。下のスクリプトを実行すると、このモデルがローカルのクラスターにインポートされ、デプロイが完了します。
eland_import_hub_model \
--url https://<user>:<password>@localhost:9200/ \
--hub-model-id sentence-transformers/msmarco-MiniLM-L-12-v3 \
--task-type text_embedding \
--start
今回は--task-typeをtext_embeddingに設定し、--startオプションをElandスクリプトにパスします。これにより、Model Management UIを起動せずに自動でモデルをデプロイすることが可能になります。推論を高速化するために、inference_threadsパラメーターで推論スレッドの数を増やすこともできます。
Kibanaのコンソールで次の例を実行すると、モデルのデプロイが正常に完了しているかテストできます。
POST /_ml/trained_models/sentence-transformers__msmarco-minilm-l-12-v3/deployment/_infer
{
"docs": {
"text_field": "how is the weather in jamaica"
}
}
正常にデプロイできている場合、予定通り高密度ベクトルの結果が表示されます。
{
"predicted_value" : [
0.3345310091972351,
-0.305600643157959,
0.2592800557613373,
…
]
}
2.初期データを読み込む
冒頭で触れた通り、今回はMS MARCO Passage Rankingデータセットを使用します。これは800万超のパッセージで構成される、非常に大きなデータセットです。そこで本記事では、2019 TREC Deep Learning Trackのテスト段階で使用されたサブセットを利用します。この再順位付けタスクに使用されたデータセット「msmarco-passagetest2019-top1000.tsv」は、シンプルなIRシステムによって抽出された200のクエリと、各クエリに関連するテキストパッセージのリストで構成されています。今回はこのデータセットからすべてのユニークパッセージとそのIDを抽出して、個別のtsvファイルに入れました。パッセージの数は合計182,469個でした。本記事では、このファイルをデータセットとして使用します。
データセットのアップロードに際しては、Kibanaのファイルアップロード機能を使用します。Kibanaのファイルアップロード機能を使うと、フィールドにカスタム名を付与できます。今回は、パッセージのIDをタイプlongのidとし、パッセージのコンテンツをタイプtextのtextと命名します。インデックス名はcollectionとします。アップロードが完了すると、collectionという名前のインデックスに、182,469のドキュメントがあることを確認できます。
3. パイプラインを作成する
この手順では初期データを推論プロセッサーで処理します。この処理の中で各パッセージに埋め込みが追加されます。このためにまずテキスト埋め込みインジェストパイプラインを作成し、その後このパイプラインで初期データを再インデックスします。
前回のブログ記事でもご紹介したように、インジェストパイプラインの作成はKibanaのコンソールで行うことができます。今回はテキスト埋め込み用なので、text-embeddingsという名前のインジェストパイプラインにしました。パッセージはtextという名称のフィールドにあります。前回の記事同様に、field_mapを定義することにより、モデルが期待するフィールドtext_fieldにテキストをマッピングします。さらにon_failureハンドラーを設定し、失敗した場合は別のインデックスにインデックスを行えるようにします。
PUT _ingest/pipeline/text-embeddings
{
"description": "Text embedding pipeline",
"processors": [
{
"inference": {
"model_id": "sentence-transformers__msmarco-minilm-l-12-v3",
"target_field": "text_embedding",
"field_map": {
"text": "text_field"
}
}
}
],
"on_failure": [
{
"set": {
"description": "Index document to 'failed-<index>'",
"field": "_index",
"value": "failed-{{{_index}}}"
}
},
{
"set": {
"description": "Set error message",
"field": "ingest.failure",
"value": "{{_ingest.on_failure_message}}"
}
}
]
}
4. データを再インデックスする
ここからは、ドキュメントをtext-embeddingsパイプラインに投入し、collectionインデックスのドキュメントをcollection-with-embeddingsインデックスに再インデックスします。このように再インデックスすることでcollection-with-embeddingsインデックスのドキュメントに付加的なフィールドを持たせ、パッセージの埋め込みに使うことができます。この作業に先立ち、送信先インデックス用のマッピングを作成して定義する必要があります。この定義のポイントは、インジェストプロセッサーに対し、埋め込みの格納先としてtext_embedding.predicted_valueフィールドを使用するよう指定することです。マッピングの定義がないと、埋め込みは通常のfloatフィールドにインデックスされてしまい、ベクトル類似性検索に使用できません。今回使用するモデルは384次元のベクトルとして埋め込みを生成します。したがって以下の通り、384のdimsを持つdense_vectorフィールドタイプをインデックスで使用できるようにします。
PUT collection-with-embeddings
{
"mappings": {
"properties": {
"text_embedding.predicted_value": {
"type": "dense_vector",
"dims": 384,
"index": true,
"similarity": "cosine"
},
"text": {
"type": "text"
}
}
}
}
これで再インデックスの準備が整いました。再インデックスではすべてのドキュメントを処理、および推論するため、ある程度時間がかかります。この点を考慮し、APIでwait_for_completion=falseフラグを呼び出すことにより、再インデックスをバックグラウンドで実行します。
POST _reindex?wait_for_completion=false
{
"source": {
"index": "collection"
},
"dest": {
"index": "collection-with-embeddings",
"pipeline": "text-embeddings"
}
}
上記のスクリプトを実行すると、1つのタスクIDが返されます。次のスクリプトを使うと、そのタスクの進捗を監視できます。
GET _tasks/<task_id>
別の方法として、model stats API、またはモデル統計UIでInference countの増加を確認して進捗を追跡することも可能です。
この時点で、再インデックスされたドキュメントに推論の結果、すなわち、ベクトル埋め込みが含まれています。サンプルとして1つドキュメントを開くと、次のようになります。
{
"id": "G7PPtn8BjSkJO8zzChzT",
"text": "This is the definition of RNA along with examples of types of RNA molecules. This is the definition of RNA along with examples of types of RNA molecules. RNA Definition",
"text_embedding":
{
"predicted_value":
[
0.057356324046850204,
0.1602816879749298,
-0.18122544884681702,
0.022277727723121643,
....
],
"model_id": "sentence-transformers__msmarco-minilm-l-12-v3"
}
}
5.ベクトル類似性検索
本記事の執筆時点で、Elasticは検索リクエスト時にクエリの語句から埋め込みを暗黙に生成する機能をサポートしていません。そこで今回は、セマンティック検索を2段階のプロセスへ整理します。
- テキストクエリからテキスト埋め込みを取得します。このプロセスに際しては、埋め込みモデルの_infer APIを使用します。
- ベクトル検索を使用して、クエリテキストにセマンティックに類似するドキュメントを見つけます。ElasticはElasticsearch v8.0で新たに、_knn_search(K最近傍検索)を導入しました。K最近傍を使うと、インデックス済みのdense_vectorフィールドで効率的に近似最近傍検索を実行できます。ここでは、_knn_search APIを使用して最も近いドキュメントを見つけます。
たとえば"how is the weather in jamaica"というテキストクエリを扱う場合、はじめに_infer APIを実行し、このクエリの埋め込みを高密度ベクトルとして取得します。
POST /_ml/trained_models/sentence-transformers__msmarco-minilm-l-12-v3/deployment/_infer
{
"docs": {
"text_field": "how is the weather in jamaica"
}
}
その後、以下のようにして、取得した高密度ベクトルを_knn_searchに代入します。
GET collection-with-embeddings/_knn_search
{
"knn": {
"field": "text_embedding.predicted_value",
"query_vector": [
0.3345310091972351,
-0.305600643157959,
0.2592800557613373,
…
],
"k": 10,
"num_candidates": 100
},
"_source": [
"id",
"text"
]
}
この結果、最も近い上位10のクエリドキュメントが、クエリとの近接性が強い順に表示されます。
"hits" : [
{
"_index" : "collection-with-embeddings",
"_id" : "47TPtn8BjSkJO8zzKq_o",
"_score" : 0.94591534,
"_source" : {
"id" : 434125,
"text" : "The climate in Jamaica is tropical and humid with warm to hot temperatures all year round. The average temperature in Jamaica is between 80 and 90 degrees Fahrenheit. Jamaican nights are considerably cooler than the days, and the mountain areas are cooler than the lower land throughout the year. Continue Reading."
}
},
{
"_index" : "collection-with-embeddings",
"_id" : "3LTPtn8BjSkJO8zzKJO1",
"_score" : 0.94536424,
"_source" : {
"id" : 4498474,
"text" : "The climate in Jamaica is tropical and humid with warm to hot temperatures all year round. The average temperature in Jamaica is between 80 and 90 degrees Fahrenheit. Jamaican nights are considerably cooler than the days, and the mountain areas are cooler than the lower land throughout the year"
}
},
{
"_index" : "collection-with-embeddings",
"_id" : "KrXPtn8BjSkJO8zzPbDW",
"_score" : 0.9432083,
"_source" : {
"id" : 190804,
"text" : "Quick Answer. The climate in Jamaica is tropical and humid with warm to hot temperatures all year round. The average temperature in Jamaica is between 80 and 90 degrees Fahrenheit. Jamaican nights are considerably cooler than the days, and the mountain areas are cooler than the lower land throughout the year. Continue Reading"
}
},
...
6.簡単な検証
この手順ではMS MARCOデータセットのサブセットのみを使用したため、完全な検証を行うことはできません。しかし、少数のクエリで簡単に検証を行い、結果が決してランダムではないことや関連性のある結果が確かに得られるという感覚を確かめることはできます。そこでTREC 2019 Deep Learning Track judgementsのPassage Ranking Task(パッセージ順位付けタスク)に用いられたクエリのうち最後の3つを使い、上の手順で構築したベクトル類似性検索に送信します。次に、取得した上位10の結果をTREC judgmentsで調べ、取得した結果がどの程度関連性があるかを確認します。このPassage Rankingタスクでは、パッセージを4パターンの得点基準で評価します。「Irrelevant (0)」は無関係(0点)、「Related (1)」は関連性がある(1点、同じトピックに関するパッセージだが、質問の答えにはなっていない)、「Highly Relevant (2)」は高い関連性がある(2点)、「Perfectly Relevant (3)」は完全に関連性がある(3点)という意味です。
この検証は厳密な評価を保証するものではなく、簡単なデモンストレーションのみを目的としている点にご留意ください。また今回は、クエリとの関連性があることが分かっているパッセージだけをインデックスしており、元のパッセージ取得タスクに比べてはるかに難易度が低くなっています。Elasticは将来的に、このMS MARCOデータセットを使って厳密な評価を行うことを検討しています。
さて、今回構築したベクトル検索にクエリ#1124210 “tracheids are part of _____”を送信したことろ、次の結果が得られました。
Passage id(パッセージID) | Relevance rating(関連性評価) | Passage(パッセージ) |
---|---|---|
2258591 | 2 - highly relevant | Tracheid of oak shows pits along the walls. It is longer than a vessel element and has no perforation plates. Tracheids are elongated cells in the xylem of vascular plants that serve in the transport of water and mineral salts.Tracheids are one of two types of tracheary elements, vessel elements being the other. Tracheids, unlike vessel elements, do not have perforation plates.racheids provide most of the structural support in softwoods, where they are the major cell type. Because tracheids have a much higher surface to volume ratio compared to vessel elements, they serve to hold water against gravity (by adhesion) when transpiration is not occurring. |
2258592 | 3 - perfectly relevant | Tracheid. a dead lignified plant cell that functions in water conduction. Tracheids are found in the xylem of all higher plants except certain angiosperms, such as cereals and sedges, in which the water-conducting function is performed by vessels, or tracheae.Tracheids are usually polygonal in cross section; their walls have annular, spiral, or scalene thickenings or rimmed pores.racheids are found in the xylem of all higher plants except certain angiosperms, such as cereals and sedges, in which the water-conducting function is performed by vessels, or tracheae. Tracheids are usually polygonal in cross section; their walls have annular, spiral, or scalene thickenings or rimmed pores. |
2258596 | 2 - highly relevant | Woody angiosperms have also vessels. The mature tracheids form a column of superposed, cylindrical dead cells whose end walls have been perforated, resulting in a continuous tube called vessel (trachea). Tracheids are found in all vascular plants and are the only conducting elements in gymnosperms and ferns. Tracheids have Pits on their end walls. Pits are not nearly as efficient for water translocation as Perforation Plates found in vessel elements. Woody angiosperms have also vessels. The mature tracheids form a column of superposed, cylindrical dead cells whose end walls have been perforated, resulting in a continuous tube called vessel (trachea). Tracheids are found in all vascular plants and are the only conducting elements in gymnosperms and ferns |
2258595 | 2 - highly relevant | Summary: Vessels have perforations at the end plates while tracheids do not have end plates. Tracheids are derived from single individual cells while vessels are derived from a pile of cells. Tracheids are present in all vascular plants whereas vessels are confined to angiosperms. Tracheids are thin whereas vessel elements are wide. Tracheids have a much higher surface-to-volume ratio as compared to vessel elements. Vessels are broader than tracheids with which they are associated. Morphology of the perforation plate is different from that in tracheids. Tracheids are thin whereas vessel elements are wide. Tracheids have a much higher surface-to-volume ratio as compared to vessel elements. Vessels are broader than tracheids with which they are associated. Morphology of the perforation plate is different from that in tracheids. |
131190 | 3 - perfectly relevant | Xylem tracheids are pointed, elongated xylem cells, the simplest of which have continuous primary cell walls and lignified secondary wall thickenings in the form of rings, hoops, or reticulate networks. |
7443586 | 2 - highly relevant | 1 The xylem tracheary elements consist of cells known as tracheids and vessel members, both of which are typically narrow, hollow, and elongated. Tracheids are less specialized than the vessel members and are the only type of water-conducting cells in most gymnosperms and seedless vascular plants. |
181177 | 2 - highly relevant | In most plants, pitted tracheids function as the primary transport cells. The other type of tracheary element, besides the tracheid, is the vessel element. Vessel elements are joined by perforations into vessels. In vessels, water travels by bulk flow, as in a pipe, rather than by diffusion through cell membranes. |
2947055 | 0 - irrelevant | Cholesterol belongs to the groups of lipids called _______.holesterol belongs to the groups of lipids called _______. |
6541866 | 2 - highly relevant | In most plants, pitted tracheids function as the primary transport cells. The other type of tracheary element, besides the tracheid, is the vessel element. Vessel elements are joined by perforations into vessels. In vessels, water travels by bulk flow, as in a pipe, rather than by diffusion through cell membranes. In most plants, pitted tracheids function as the primary transport cells. The other type of tracheary element, besides the tracheid, is the vessel element. Vessel elements are joined by perforations into vessels. In vessels, water travels by bulk flow, as in a pipe, rather than by diffusion through cell membranes. |
次に、クエリ#1129237 “hydrogen is a liquid below what temperature”について得られた結果は以下の通りです。
Passage id(パッセージID) | Relevance rating(関連性評価) | Passage(パッセージ) |
---|---|---|
8588222 | 0 - irrelevant | Answer to: Hydrogen is a liquid below what temperature? By signing up, you'll get thousands of step-by-step solutions to your homework questions.... for Teachers for Schools for Companies |
128984 | 3 - perfectly relevant | Hydrogen gas has the molecular formula H 2. At room temperature and under standard pressure conditions, hydrogen is a gas that is tasteless, odorless and colorless. Hydrogen can exist as a liquid under high pressure and an extremely low temperature of 20.28 kelvin (−252.87°C, −423.17 °F). Hydrogen is often stored in this way as liquid hydrogen takes up less space than hydrogen in its normal gas form. Liquid hydrogen is also used as a rocket fuel. |
8588219 | 3 - perfectly relevant | User: Hydrogen is a liquid below what temperature? a. 100 degrees C c. -183 degrees C b. -253 degrees C d. 0 degrees C Weegy: Hydrogen is a liquid below 253 degrees C. User: What is the boiling point of oxygen? a. 100 degrees C c. -57 degrees C b. 8 degrees C d. -183 degrees C Weegy: The boiling point of oxygen is -183 degrees C. |
3905057 | 3 - perfectly relevant | Hydrogen is a colorless, odorless, tasteless gas. Its density is the lowest of any chemical element, 0.08999 grams per liter. By comparison, a liter of air weighs 1.29 grams, 14 times as much as a liter of hydrogen. Hydrogen changes from a gas to a liquid at a temperature of -252.77°C (-422.99°F) and from a liquid to a solid at a temperature of -259.2°C (-434.6°F). It is slightly soluble in water, alcohol, and a few other common liquids. |
4254811 | 3 - perfectly relevant | At STP (standard temperature and pressure) hydrogen is a gas. It cools to a liquid at -423 °F, which is only about 37 degrees above absolute zero. Eleven degrees cooler, at … -434 °F, it starts to solidify. |
2697752 | 2 - highly relevant | Hydrogen's state of matter is gas at standard conditions of temperature and pressure. Hydrogen condenses into a liquid or freezes solid at extremely cold... Hydrogen's state of matter is gas at standard conditions of temperature and pressure. Hydrogen condenses into a liquid or freezes solid at extremely cold temperatures. Hydrogen's state of matter can change when the temperature changes, becoming a liquid at temperatures between minus 423.18 and minus 434.49 degrees Fahrenheit. It becomes a solid at temperatures below minus 434.49 F.Due to its high flammability, hydrogen gas is commonly used in combustion reactions, such as in rocket and automobile fuels. |
6080460 | 3 - perfectly relevant | Hydrogen can exist as a liquid under high pressure and an extremely low temperature of 20.28 kelvin (−252.87°C, −423.17 °F). Hydrogen is often stored in this way as liquid hydrogen takes up less space than hydrogen in its normal gas form. Liquid hydrogen is also used as a rocket fuel. Hydrogen is found in large amounts in giant gas planets and stars, it plays a key role in powering stars through fusion reactions. Hydrogen is one of two important elements found in water (H 2 O). Each molecule of water is made up of two hydrogen atoms bonded to one oxygen atom. |
128989 | 3 - perfectly relevant | Confidence votes 11.4K. At STP (standard temperature and pressure) hydrogen is a gas. It cools to a liquid at -423 °F, which is only about 37 degrees above absolute zero. Eleven degrees cooler, at -434 °F, it starts to solidify. |
1959030 | 0 - irrelevant | While below 4 °C the breakage of hydrogen bonds due to heating allows water molecules to pack closer despite the increase in the thermal motion (which tends to expand a liquid), above 4 °C water expands as the temperature increases. Water near the boiling point is about 4% less dense than water at 4 °C (39 °F) |
3905800 | 0 - irrelevant | Hydrogen is the lightest of the elements with an atomic weight of 1.0. Liquid hydrogen has a density of 0.07 grams per cubic centimeter, whereas water has a density of 1.0 g/cc and gasoline about 0.75 g/cc. These facts give hydrogen both advantages and disadvantages. |
クエリ#1133167 “how is the weather in jamaica”の結果は、次のようになりました。
Passage id(パッセージID) | Relevance rating(関連性評価) | Passage(パッセージ) |
---|---|---|
434125 | 3 - perfectly relevant | The climate in Jamaica is tropical and humid with warm to hot temperatures all year round. The average temperature in Jamaica is between 80 and 90 degrees Fahrenheit. Jamaican nights are considerably cooler than the days, and the mountain areas are cooler than the lower land throughout the year. |
4498474 | 3 - perfectly relevant | The climate in Jamaica is tropical and humid with warm to hot temperatures all year round. The average temperature in Jamaica is between 80 and 90 degrees Fahrenheit. Jamaican nights are considerably cooler than the days, and the mountain areas are cooler than the lower land throughout the year. |
190804 | 3 - perfectly relevant | Quick Answer. The climate in Jamaica is tropical and humid with warm to hot temperatures all year round. The average temperature in Jamaica is between 80 and 90 degrees Fahrenheit. Jamaican nights are considerably cooler than the days, and the mountain areas are cooler than the lower land throughout the year. Continue Reading. |
1824479 | 3 - perfectly relevant | A: The climate in Jamaica is tropical and humid with warm to hot temperatures all year round. The average temperature in Jamaica is between 80 and 90 degrees Fahrenheit. Jamaican nights are considerably cooler than the days, and the mountain areas are cooler than the lower land throughout the year. |
1824480 | 3 - perfectly relevant | Quick Answer. The climate in Jamaica is tropical and humid with warm to hot temperatures all year round. The average temperature in Jamaica is between 80 and 90 degrees Fahrenheit. Jamaican nights are considerably cooler than the days, and the mountain areas are cooler than the lower land throughout the year. |
1824488 | 2 - highly relevant | Learn About the Weather of Jamaica The weather patterns you'll encounter in Jamaica can vary dramatically around the island Regardless of when you visit, the tropical climate and warm temperatures of Jamaica essentially guarantee beautiful weather during your vacation. Average temperatures in Jamaica range between 80 degrees Fahrenheit and 90 degrees Fahrenheit, with July and August being the hottest months and February the coolest. |
4922619 | 2 - highly relevant | Weather. Jamaica averages about 80 degrees year-round, so climate is less a factor in booking travel than other destinations. The days are warm and the nights are cool. Rain usually falls for short periods in the late afternoon, with sunshine the rest of the day. |
190806 | 2 - highly relevant | It is always important to know what the weather in Jamaica will be like before you plan and take your vacation. For the most part, the average temperature in Jamaica is between 80 °F and 90 °F (27 °FCelsius-29 °Celsius). Luckily, the weather in Jamaica is always vacation friendly. You will hardly experience long periods of rain fall, and you will become accustomed to weeks upon weeks of sunny weather. |
2613296 | 2 - highly relevant | Average temperatures in Jamaica range between 80 degrees Fahrenheit and 90 degrees Fahrenheit, with July and August being the hottest months and February the coolest. Temperatures in Jamaica generally vary approximately 10 degrees from summer to winter |
1824486 | 2 - highly relevant | The climate in Jamaica is tropical and humid with warm to hot temperatures all year round. The average temperature in Jamaica is between 80 and 90 degrees Fahrenheit. Jamaican nights are considerably... |
上に示す通り、Elasticsearchは3つすべてのクエリについておおむね関連性のある結果を返しています。またすべてのクエリの1番目の結果は「高い関連性がある」、または「完全な関連性がある」のいずれかとなっています。
試してみよう
Elastic StackのNLPはパワフルな機能であり、エキサイティングなロードマップも公開されています。最新のリリースや新登場の機能を提供するElastic Cloudにクラスターを構築してご活用ください。本記事でご紹介した手法は、Elastic Cloudの14日間の無料トライアルでもすぐにお試しいただくことができます。
NLPに関するその他の記事はこちらをご覧ください。
- How to deploy NLP named entity recognition NER(NLPの固有表現抽出をデプロイする方法)
- How to deploy NLP sentiment analysis(NLPセンチメント分析をデプロイする方法)
- How to deploy natural language processing: Getting started(自然言語処理をデプロイする ― はじめに)