自然语言处理

可以使用流行的开源库(例如 Spark ML 和 spark-nlp)或专有库通过 Azure Databricks 与 John Snow Labs 的合作,在 Azure Databricks 上执行自然语言处理任务。

有关通过 Hugging Face 进行 NLP 的示例,请参阅其他资源

使用 Spark ML 从文本创建特征

Spark ML 包含一系列用于从文本列创建特征的文本处理工具。 可以使用 Spark ML 在 Spark ML 管道中直接从文本为模型训练算法创建输入特征。 Spark ML 支持一系列文本处理器,包括标记化、非索引字处理、word2vec 和特征哈希。

使用 Spark NLP 进行训练和推理

可以使用开源 Spark NLP 库在 Spark 上横向扩展许多用于自然语言处理的深度学习方法。 此库支持标准自然语言处理操作,例如使用包含的批注器进行标记化、命名实体识别和矢量化。 还可以使用许多基于 Spark NLP 转换器(例如 BERT 和 T5 Marion)的预先训练深度学习模型来进行汇总、执行命名实体识别、翻译和生成文本。

在 CPU 上使用 Spark NLP 执行批量推理

Spark NLP 提供了许多预先训练的模型,只需编写极少量的代码即可使用这些模型。 本部分包含使用 Marian 转换器进行机器翻译的示例。 有关完整示例集,请参阅 Spark NLP 文档

要求

  • 使用 Spark NLP 的最新 Maven 坐标(例如 com.johnsnowlabs.nlp:spark-nlp_2.12:4.1.0)在群集上安装 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 合作开发的医疗保健 NLP

John Snow Labs Spark NLP for Healthcare 是一个用于临床和生物医学文本挖掘的专有库。 此库提供预先训练的模型,用于识别和处理临床实体、药物、风险因素、解剖学、人口统计学和敏感数据。 你可以通过 Partner Connect 与 John Snow Labs 的集成来试用 Spark NLP for Healthcare。 你需要 John Snow Labs 的试用或付费帐户才能尝试本指南中演示的命令。

在 John Snow Labs 网站上详细了解 John Snow Labs Spark NLP for Healthcare 的全部功能并阅读其用法文档。