當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R textrecipes step_texthash 代幣的特征哈希


step_texthash() 創建配方步驟的規範,該步驟將使用哈希技巧將 token 變量轉換為多個數字變量。

用法

step_texthash(
  recipe,
  ...,
  role = "predictor",
  trained = FALSE,
  columns = NULL,
  signed = TRUE,
  num_terms = 1024L,
  prefix = "texthash",
  keep_original_cols = FALSE,
  skip = FALSE,
  id = rand_id("texthash")
)

參數

recipe

一個recipe 對象。該步驟將添加到此配方的操作序列中。

...

一個或多個選擇器函數用於選擇受該步驟影響的變量。有關更多詳細信息,請參閱recipes::selections()

role

對於此步驟創建的模型項,應為它們分配什麽分析角色?默認情況下,該函數假定由原始變量創建的新列將用作模型中的預測變量。

trained

指示預處理數量是否已估計的邏輯。

columns

將由 terms 參數(最終)填充的變量名稱字符串。在 recipes::prep.recipe() 訓練該步驟之前,這是 NULL

signed

邏輯值,指示是否使用帶符號的 hash-function 來減少散列時的衝突。默認為 TRUE。

num_terms

一個整數,要輸出的變量數量。默認為 1024。

prefix

將作為結果新變量的前綴的字符串。請參閱下麵的注釋。

keep_original_cols

將原始變量保留在輸出中的邏輯。默認為 FALSE

skip

一個合乎邏輯的。當recipes::bake.recipe() 烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在 recipes::prep.recipe() 運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用 skip = FALSE 時應小心。

id

該步驟特有的字符串,用於標識它。

recipe 的更新版本,其中新步驟添加到現有步驟(如果有)的序列中。

細節

特征散列或散列技巧是將文本變量轉換為一組新的數值變量。這是通過對令牌應用哈希函數並使用哈希值作為特征索引來完成的。這允許文本的低內存表示。此實現是使用 MurmurHash3 方法完成的。

參數 num_terms 控製哈希函數將映射到的索引數量。這是此轉換的調整參數。由於哈希函數可以將兩個不同的標記映射到同一索引,因此 num_terms 的值越高,衝突的可能性就越低。

新組件的名稱以 prefix 開頭,然後是變量名稱,最後是由 - 分隔的標記。變量名稱用零填充。例如,如果 prefix = "hash"num_terms < 10 ,則它們的名稱將為 hash1 - hash9 。如果 num_terms = 101 ,它們的名稱將為 hash001 - hash101

整理

當您tidy()此步驟時,會出現一個包含列terms(選定的選擇器或變量)和value(術語數)的小標題。

調整參數

此步驟有 2 個調整參數:

  • signed:簽名哈希值(類型:邏輯,默認值:TRUE)

  • num_terms : # 哈希特征(類型:整數,默認值:1024)

箱重

底層操作不允許使用案例權重。

參考

基利安·溫伯格;阿尼班·達斯古普塔;約翰·蘭福德;亞曆克斯·斯莫拉;喬什·阿滕伯格 (2009)。

也可以看看

step_tokenize() 將字符轉換為tokens step_text_normalization() 以執行文本規範化。

來自標記的數字變量的其他步驟:step_lda()step_tfidf()step_tf()step_word_embeddings()

例子

library(recipes)
library(modeldata)
data(tate_text)

tate_rec <- recipe(~., data = tate_text) %>%
  step_tokenize(medium) %>%
  step_tokenfilter(medium, max_tokens = 10) %>%
  step_texthash(medium)

tate_obj <- tate_rec %>%
  prep()

bake(tate_obj, tate_text)
#> # A tibble: 4,284 × 1,028
#>        id artist     title  year texthash_medium_0001 texthash_medium_0002
#>     <dbl> <fct>      <fct> <dbl>                <int>                <int>
#>  1  21926 Absalon    Prop…  1990                    0                    0
#>  2  20472 Auerbach,… Mich…  1990                    0                    0
#>  3  20474 Auerbach,… Geof…  1990                    0                    0
#>  4  20473 Auerbach,… Jake   1990                    0                    0
#>  5  20513 Auerbach,… To t…  1990                    0                    0
#>  6  21389 Ayres, OB… Phaë…  1990                    0                    0
#>  7 121187 Barlow, P… Unti…  1990                    0                    0
#>  8  19455 Baselitz,… Gree…  1990                    0                    0
#>  9  20938 Beattie, … Pres…  1990                    0                    0
#> 10 105941 Beuys, Jo… Jose…  1990                    0                    0
#> # ℹ 4,274 more rows
#> # ℹ 1,022 more variables: texthash_medium_0003 <int>,
#> #   texthash_medium_0004 <int>, texthash_medium_0005 <int>,
#> #   texthash_medium_0006 <int>, texthash_medium_0007 <int>,
#> #   texthash_medium_0008 <int>, texthash_medium_0009 <int>,
#> #   texthash_medium_0010 <int>, texthash_medium_0011 <int>,
#> #   texthash_medium_0012 <int>, texthash_medium_0013 <int>, …

tidy(tate_rec, number = 3)
#> # A tibble: 1 × 4
#>   terms  value length id            
#>   <chr>  <lgl>  <int> <chr>         
#> 1 medium NA        NA texthash_DMgi5
tidy(tate_obj, number = 3)
#> # A tibble: 1 × 4
#>   terms  value length id            
#>   <chr>  <lgl>  <int> <chr>         
#> 1 medium TRUE    1024 texthash_DMgi5
源代碼:R/texthash.R

相關用法


注:本文由純淨天空篩選整理自大神的英文原創作品 Feature Hashing of Tokens。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。