Natural language processing | Databricks on AWS [2022/10/25時点]の翻訳となります。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
Spark MLやspark-nlpのような人気のあるオープンソースライブラリや、DatabricksとJohn Snow Labsとのパートナーシップによるプロプライエタリなライブラリを用いて、Databricks上で自然言語処理のタスクを実行することができます。
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トランスフォーマーを使ったサンプルが含まれています。サンプルな完全な一覧については、Spark NLP documentationをご覧ください。
要件
Spark NLPを使うには、互換性のあるランタイムが稼働しているクラスターを作成するか使用します。com.johnsnowlabs.nlp:spark-nlp_2.12:4.1.0
のようなSpark NLPの最新のMavenコーディネートを用いて、クラスターにSpark NLPをインストールします。
機械翻訳のサンプルコード
ノートブックのセルで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へのモデルの保存、テキストから推論を行うためにモデルを使用する方法を説明します。この他の自然言語処理モデルのトレーニングの方法に関しては、John Snow Labs documentation for Spark NLPをご覧下さい。
Spark NLPモデルのトレーニング、推論のノートブック
John Snow LabsパートナーシップによるヘルスケアNLP
John Snow LabsのSpark NLP for Healthcareは、診療テキストや生物医療テキストマイニング向けのプロプライエタリなライブラリです。このライブラリは、医療エンティティ、薬品、リスク要因、解剖学、デモグラフィックス、センシティブなデータの認識、操作のための事前学習済みモデルを提供します。John Snow LabsとのPartner Connectインテグレーションを用いてSpark NLP for Healthcareを試すことができます。この際には、John Snow Labsトライアルあるいは有料アカウントが必要となります。彼らのウェブサイトでJohn Snow Labs Spark NLP for Healthcareの完全な機能やドキュメントを確認することができます。