全部產品
Search
文件中心

:normalize

更新時間:Jul 13, 2024

特徵函數項

特徵函數可以用到排序運算式中(大部分僅支援精排運算式),可以通過各種文法及語句的組合得到強大的排序功能。

其中特徵函數參數出現的文檔欄位需根據對應函數文檔提示,建立為索引或屬性.

normalize:歸一化函數,根據不同的算分將數值歸一化至[0, 1]

1.情境概述:

相關性計算過程中,一篇doc的好壞需要從不同的維度衡量。而各個維度分數範圍可能不同,比如網頁點擊數可能是成百上千萬,網頁的文本相關性分數在[0, 1]之間,它們之間沒有可比性。為了在公式中使用這些元素,需要將不同的分數歸一化至同一個範圍區間,而normalize為這種歸一化提供了一種簡便的方法。normlize支援三種歸一化方法:線性函數轉化、對數函數轉化、反正切函數轉化。根據傳入參數的不同,normalize自動選擇不同的歸一化方法。如果只指定value參數,normalize使用反正切函數轉化,如果指定了value和max參數,normalize使用對數函數轉化,如果指定了value、max和min,normalize使用線性函數轉化。

2.詳細用法:

normalize(value, max, min)

3.參數:

  • value:需要做歸一化的值,支援double類型的浮點數,該值可以來自文檔中的欄位或者其他運算式

  • max:value的最大值,可選,支援double類型的浮點數

  • min:value的最小值,可選,支援double類型的浮點數

4.傳回值:

double,[0, 1]之間的值。

5.適用情境:

情境1:對price欄位做歸一化,但是不知道price的範圍,可以使用如下公式進行歸一化 normalize(price)

情境2:對price欄位做歸一化,但是只知道price的最大值為100,可以使用如下公式進行歸一化 normalize(price, 100)

情境3:對price欄位做歸一化,並且知道price的最大值為100,最小值為1,可以使用如下公式進行歸一化 normalize(price, 100, 1)

情境4:將distance函數的結果歸一化至[0, 1] normalize(distance(longitude_in_doc, latitude_in_doc, longtitude_in_query, latitude_in_query))

6.注意事項:

  • 函數參數需建立為屬性

  • 使用反正切函數進行歸一化時,如果value小於0,歸一化後的值為0

  • 使用對數函數進行歸一化時,max的值要大於1

  • 使用線性函數進行歸一化時,max要大於min