自然言語処理
Azure Databricks では、Spark ML や spark-nlp などの一般的なオープンソース ライブラリ、または Azure Databricks と John Snow Labs のパートナーシップを通じた独自のライブラリを使用して、自然言語処理タスクを実行できます。
Hugging Face での NLP の例については、「その他のリソース」を参照してください
Spark ML を使用したテキストからの特徴の作成
Spark ML には、テキスト列から特徴を作成するためのさまざまなテキスト処理ツールが含まれています。 Spark ML パイプライン内で Spark ML を使って、モデル トレーニング アルゴリズム用の入力特徴をテキストから直接作成できます。 Spark ML では、トークン化、ストップワード処理、word2vec、特徴ハッシュなど、さまざまなテキスト プロセッサがサポートされています。
Spark NLP を使用したトレーニングと推論
オープンソースの Spark NLP ライブラリを使って、Spark での自然言語処理用に、多くのディープ ラーニング方法をスケールアウトできます。 このライブラリでは、トークン化、固有表現認識、含まれるアノテーターを使ったベクター化などの標準的な自然言語処理操作がサポートされています。 また、BERT や T5 Marion などの Spark NLP のトランスフォーマーに基づいて事前トレーニング済みの多くのディープ ラーニング モデルを使って、要約、固有表現認識、翻訳、テキスト生成を行うこともできます。
CPU で Spark NLP を使用してバッチで推論を実行する
Spark NLP には事前トレーニング済みのモデルが多数用意されており、最小限のコードで使用できます。 このセクションでは、機械翻訳に Marian Transformer を使用する例を示します。 すべての例については、Spark NLP のドキュメントをご覧ください。
要件
com.johnsnowlabs.nlp:spark-nlp_2.12:4.1.0
など、Spark NLP 用の最新の Maven 座標を使って、クラスターに Spark NLP をインストールします。 このライブラリを機能させるには、適切な Spark 構成オプションを設定してクラスターを起動する必要があります。- Spark NLP を使用するには、クラスターに John Snow Labs から正しい
.jar
ファイルがダウンロードされている必要があります。 互換性のある任意のランタイムを実行しているクラスターを作成、または使用できます。
機械翻訳のコードの例
ノートブック セルに sparknlp
Python ライブラリをインストールします。
%pip install sparknlp
翻訳用のパイプラインを構築し、いくつかのサンプル テキストでそれを実行します。
from sparknlp.base import DocumentAssembler
from sparknlp.annotator import SentenceDetectorDLModel, MarianTransformer
from pyspark.ml import Pipeline
document_assembler = DocumentAssembler().setInputCol("text").setOutputCol("document")
sentence_detector = SentenceDetectorDLModel.pretrained("sentence_detector_dl", "xx") \
.setInputCols("document").setOutputCol("sentence")
marian_transformer = MarianTransformer.pretrained() \
.setInputCols("sentence").setOutputCol("translation")
pipeline = Pipeline().setStages([document_assembler, sentence_detector, marian_transformer])
data = spark.createDataFrame([["You can use Spark NLP to translate text. " + \
"This example pipeline translates English to French"]]).toDF("text")
# Create a pipeline model that can be reused across multiple data frames
model = pipeline.fit(data)
# You can use the model on any data frame that has a “text” column
result = model.transform(data)
display(result.select("text", "translation.result"))
例: Spark NLP と MLflow を使用した名前付きエンティティの認識モデル
このノートブックの例では、Spark NLP を使って固有表現認識モデルをトレーニングし、モデルを MLflow に保存し、テキストの推論にモデルを使用する方法を示します。 追加の自然言語処理モデルをトレーニングする方法については、Spark NLP に関する John Snow Labs のドキュメントをご覧ください。
Spark NLP モデルのトレーニングと推論ノートブック
John Snow Labs とのパートナーシップを使用した Healthcare NLP
John Snow Labs Spark NLP for Healthcare は、臨床および生物医学テキスト マイニング用の独自のライブラリです。 このライブラリでは、臨床エンティティ、薬物、リスク要因、解剖学、人口統計、機密データを認識して処理するための事前トレーニング済みのモデルが提供されます。 Partner Connect と John Snow Labs の統合を使って、Spark NLP for Healthcare を試すことができます。 このガイドで使われているコマンドを試すには、John Snow Labs の試用版アカウントまたは有料アカウントが必要です。
John Snow Labs Spark NLP for Healthcare の完全な機能の詳細と使用方法に関するドキュメントについては、その Web サイトをご覧ください。