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


R textrecipes step_sequence_onehot 令牌的位置 One-Hot 編碼


step_sequence_onehot() 創建配方步驟的規範,該步驟將采用字符串並按位置對每個字符進行一次熱編碼。

用法

step_sequence_onehot(
  recipe,
  ...,
  role = "predictor",
  trained = FALSE,
  columns = NULL,
  sequence_length = 100,
  padding = "pre",
  truncating = "pre",
  vocabulary = NULL,
  prefix = "seq1hot",
  keep_original_cols = FALSE,
  skip = FALSE,
  id = rand_id("sequence_onehot")
)

參數

recipe

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

...

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

role

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

trained

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

columns

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

sequence_length

一個數字,在丟棄之前要保留的字符數。默認為 100。

padding

'pre' 或 'post',在每個序列之前或之後填充。默認為'pre'。

truncating

'pre' 或'post',從序列開頭或結尾處刪除大於sequence_length 的值。默認值也是'pre'。

vocabulary

字符向量,要映射到整數的字符。不在詞匯表中的字符將被編碼為 0。默認為 letters

prefix

生成的列名稱的前綴,默認為"seq1hot"。

keep_original_cols

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

skip

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

id

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

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

細節

該字符串將由 sequence_length 參數限製,短於 sequence_length 的字符串將用空字符填充。編碼將為詞匯表中的每個字符分配一個整數,並進行相應的編碼。不在詞匯表中的字符將被編碼為 0。

整理

當您tidy()此步驟時,會出現一個包含列terms(所選選擇器或變量)、vocabulary(索引)和token(與索引對應的文本)的小標題。

箱重

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

也可以看看

來自字符的數字變量的其他步驟:step_dummy_hash()step_textfeature()

例子

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

tate_rec <- recipe(~medium, data = tate_text) %>%
  step_tokenize(medium) %>%
  step_tokenfilter(medium) %>%
  step_sequence_onehot(medium)

tate_obj <- tate_rec %>%
  prep()

bake(tate_obj, new_data = NULL)
#> # A tibble: 4,284 × 100
#>    seq1hot_medium_1 seq1hot_medium_2 seq1hot_medium_3 seq1hot_medium_4
#>               <int>            <int>            <int>            <int>
#>  1                0                0                0                0
#>  2                0                0                0                0
#>  3                0                0                0                0
#>  4                0                0                0                0
#>  5                0                0                0                0
#>  6                0                0                0                0
#>  7                0                0                0                0
#>  8                0                0                0                0
#>  9                0                0                0                0
#> 10                0                0                0                0
#> # ℹ 4,274 more rows
#> # ℹ 96 more variables: seq1hot_medium_5 <int>, seq1hot_medium_6 <int>,
#> #   seq1hot_medium_7 <int>, seq1hot_medium_8 <int>,
#> #   seq1hot_medium_9 <int>, seq1hot_medium_10 <int>,
#> #   seq1hot_medium_11 <int>, seq1hot_medium_12 <int>,
#> #   seq1hot_medium_13 <int>, seq1hot_medium_14 <int>,
#> #   seq1hot_medium_15 <int>, seq1hot_medium_16 <int>, …

tidy(tate_rec, number = 3)
#> # A tibble: 1 × 4
#>   terms  vocabulary token id                   
#>   <chr>  <chr>      <int> <chr>                
#> 1 medium NA            NA sequence_onehot_bH08q
tidy(tate_obj, number = 3)
#> # A tibble: 100 × 4
#>    terms  vocabulary token     id                   
#>    <chr>       <int> <chr>     <chr>                
#>  1 medium          1 16        sequence_onehot_bH08q
#>  2 medium          2 2         sequence_onehot_bH08q
#>  3 medium          3 3         sequence_onehot_bH08q
#>  4 medium          4 35        sequence_onehot_bH08q
#>  5 medium          5 4         sequence_onehot_bH08q
#>  6 medium          6 5         sequence_onehot_bH08q
#>  7 medium          7 6         sequence_onehot_bH08q
#>  8 medium          8 8         sequence_onehot_bH08q
#>  9 medium          9 acrylic   sequence_onehot_bH08q
#> 10 medium         10 aluminium sequence_onehot_bH08q
#> # ℹ 90 more rows

相關用法


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