将 ai.similarity 与 PySpark 配合使用

ai.similarity 函数使用生成 AI 比较两个字符串表达式,然后计算语义相似性分数。 它只使用一行代码。 可以将数据帧的一列的文本值与单个通用文本值进行比较,也可以将另一列中的文本值与成对文本值进行比较。

注释

  • 本文介绍如何将 ai.similarity 与 PySpark 配合使用。 若要将 ai.similarity 与 pandas 配合使用,请参阅 本文
  • 请参阅 本概述文章中的其他 AI 函数。
  • 了解如何自定义 AI 函数的配置

概述

ai.similarity 函数可用于 Spark 数据帧。 必须将现有输入列的名称指定为参数。 还必须为比较指定单个通用文本值,或指定另一列的名称进行成对比较。

该函数返回一个新的 DataFrame,其中包含输出列中每行输入文本的相似性分数。

Syntax

df.ai.similarity(input_col="col1", other="value", output_col="similarity")

参数

Name Description
input_col
必选
一个 字符串 ,其中包含用于计算相似性分数的输入文本值的现有列的名称。
otherother_col
必选
只需要其中一个参数。 该 other 参数是一个 字符串 ,其中包含用于计算每行输入的相似性分数的单个通用文本值。 参数 other_col 是一个 字符串 ,指定第二个现有列的名称,文本值用于计算成对相似性分数。
output_col
可选
一个 字符串 ,其中包含新列的名称,用于存储每个输入文本行的计算相似性分数。 如果未设置此参数,则为输出列生成默认名称。
error_col
可选
一个 字符串,该字符串包含新列的名称,该列存储因处理每个输入文本行而导致的任何 OpenAI 错误。 如果未设置此参数,则为错误列生成默认名称。 如果输入行没有错误,则此列具有 null 值。

退货

该函数返回一个 Spark 数据帧 ,其中包含一个新列,其中包含为每个输入文本行生成的相似性分数。 输出相似性分数是相对的,最适合用于排名。 分数值的范围可以是 -1* (相反)到 1 (相同)。 分数 0 指示值的含义不相关。

Example

# This code uses AI. Always review output for mistakes. 
# Read terms: https://azure.microsoft.com/support/legal/preview-supplemental-terms/.

df = spark.createDataFrame([
        ("Bill Gates",), 
        ("Sayta Nadella",), 
        ("Joan of Arc",) 
    ], ["names"])

similarity = df.ai.similarity(input_col="names", other="Microsoft", output_col="similarity")
display(similarity)

此示例代码单元提供以下输出:

数据帧的屏幕截图,其中列为“name”和“similarity”。“similarity”列包含名称和输入单词的相似性分数。