共用方式為


將 ai.similarity 與 PySpark 搭配使用

ai.similarity 函數使用生成式 AI 來比較兩個字串表達式,然後計算語義相似度分數。 它只使用一行代碼。 您可以比較 DataFrame 中一列的文本值,與單一共同的文本值進行比較,或與另一列的成對文本值進行比較。

備註

  • 本文介紹了將 ai.similarity 與 PySpark 結合使用。 若要將 ai.similarity 與 pandas 搭配使用,請參閱 這篇文章
  • 請參閱 此概述文章中的其他 AI 功能。
  • 瞭解如何自訂 AI 功能的設定

概觀

ai.similarity 函式適用於 Spark DataFrames。 您必須將現有輸入資料行的名稱指定為參數。 您也必須為比較指定單一通用文字值,或指定另一個數據行的名稱來進行成對比較。

函式會傳回新的 DataFrame,其中包含輸出資料行中每一列輸入文字的相似性分數。

語法

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

參數

名稱 Description
input_col
為必填項目
包含現有資料行名稱的 字串 ,其中包含用於計算相似性分數的輸入文字值。
otherother_col
為必填項目
只需要其中一個參數。 參數 other 是一個 字串 ,其中包含一個通用文字值,用於計算每列輸入的相似性分數。 參數 other_col 是指定第二個現有直欄名稱的 字串 ,其文字值用來計算成對相似性分數。
output_col
可選
包含新資料行名稱的 字串 ,用於儲存每個輸入文字列的計算相似性分數。 如果您未設定此參數,則會為輸出資料行產生預設名稱。
error_col
可選
字串,其中包含一個新欄位的名稱,該欄位用於儲存處理每個輸入文字列時產生的任何 OpenAI 錯誤。 如果您未設定此參數,則會為錯誤資料行產生預設名稱。 如果輸入數據列沒有錯誤,則此數據行具有 null 值。

退貨

此函式會傳回 Spark DataFrame ,其中包含新資料行,其中包含每個輸入文字資料列產生的相似性分數。 輸出相似度分數是相對的,而且最適合用於排名。 分數值的範圍可以從 -1* (相反) 到 1 (相同)。 分數 表示 0 值在意義上不相關。

Example

# This code uses AI. Always review output for mistakes. 

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' 的資料框螢幕擷取畫面。「相似性」欄包含名稱和輸入單字的相似性分數。