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


R textrecipes step_tf 代幣的使用頻率


step_tf() 創建配方步驟的規範,該步驟將 token 變量轉換為包含令牌計數的多個變量。

用法

step_tf(
  recipe,
  ...,
  role = "predictor",
  trained = FALSE,
  columns = NULL,
  weight_scheme = "raw count",
  weight = 0.5,
  vocabulary = NULL,
  res = NULL,
  prefix = "tf",
  keep_original_cols = FALSE,
  skip = FALSE,
  id = rand_id("tf")
)

參數

recipe

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

...

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

role

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

trained

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

columns

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

weight_scheme

確定術語頻率計算的加權方案的字符。必須是 "binary"、"raw count"、"term frequency"、"log normalization" 或 "double normalization" 之一。默認為"raw count"。

weight

如果weight_scheme 設置為"double normalization",則使用數字權重。默認為 0.5。

vocabulary

要考慮的字符串的字符向量。

res

一旦 prep.recipe() 訓練了此預處理步驟,用於計算術語頻率的單詞將存儲在此處。

prefix

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

keep_original_cols

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

skip

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

id

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

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

細節

強烈建議在使用 step_tf 之前使用 step_tokenfilter 來限製創建的變量數量,否則可能會遇到內存問題。一個好的策略是從較低的令牌數量開始,然後根據您想要使用的 RAM 數量增加。

詞頻是每個標記在每個觀察中出現的次數的權重。計算重量的方法有多種,此步驟可以通過多種方式來完成。將參數 weight_scheme 設置為 "binary" 將產生一組二進製變量,表示觀察中是否存在標記。 "raw count" 將計算觀察中出現標記的次數。 "term frequency" 會將計數除以文檔中的單詞總數,以限製文檔長度的影響,因為較長的文檔往往會出現單詞出現的次數更多,但百分比不一定更高。 "log normalization" 取 1 的對數加上計數,加 1 是為了避免取 0 的對數。最後 "double normalization" 是原始頻率除以文檔中最常出現的術語的原始頻率。然後將其乘以weight,並將weight 添加到結果中。這樣做也是為了防止對較長文檔的偏見。

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

整理

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

調整參數

此步驟有 2 個調整參數:

  • weight_scheme:詞頻權重法(類型:字符,默認:原始計數)

  • weight :權重(類型:double,默認值:0.5)

箱重

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

也可以看看

step_tokenize() 將字符轉換為tokens

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

例子

# \donttest{
library(recipes)
library(modeldata)
data(tate_text)

tate_rec <- recipe(~., data = tate_text) %>%
  step_tokenize(medium) %>%
  step_tf(medium)

tate_obj <- tate_rec %>%
  prep()

bake(tate_obj, tate_text)
#> # A tibble: 4,284 × 956
#>        id artist        title  year tf_medium_1 tf_medium_10 tf_medium_100
#>     <dbl> <fct>         <fct> <dbl>       <int>        <int>         <int>
#>  1  21926 Absalon       Prop…  1990           0            0             0
#>  2  20472 Auerbach, Fr… Mich…  1990           0            0             0
#>  3  20474 Auerbach, Fr… Geof…  1990           0            0             0
#>  4  20473 Auerbach, Fr… Jake   1990           0            0             0
#>  5  20513 Auerbach, Fr… To t…  1990           0            0             0
#>  6  21389 Ayres, OBE G… Phaë…  1990           0            0             0
#>  7 121187 Barlow, Phyl… Unti…  1990           0            0             0
#>  8  19455 Baselitz, Ge… Gree…  1990           0            0             0
#>  9  20938 Beattie, Bas… Pres…  1990           0            0             0
#> 10 105941 Beuys, Joseph Jose…  1990           0            0             0
#> # ℹ 4,274 more rows
#> # ℹ 949 more variables: tf_medium_11 <int>, tf_medium_12 <int>,
#> #   tf_medium_13 <int>, tf_medium_133 <int>, tf_medium_14 <int>,
#> #   tf_medium_15 <int>, tf_medium_151 <int>, tf_medium_16 <int>,
#> #   tf_medium_160 <int>, tf_medium_16mm <int>, tf_medium_18 <int>,
#> #   tf_medium_19 <int>, tf_medium_2 <int>, tf_medium_20 <int>,
#> #   tf_medium_2000 <int>, tf_medium_201 <int>, tf_medium_21 <int>, …

tidy(tate_rec, number = 2)
#> # A tibble: 1 × 3
#>   terms  value id      
#>   <chr>  <chr> <chr>   
#> 1 medium NA    tf_kCw2O
tidy(tate_obj, number = 2)
#> # A tibble: 1 × 3
#>   terms  value     id      
#>   <chr>  <chr>     <chr>   
#> 1 medium raw count tf_kCw2O
# }

源代碼:R/tf.R

相關用法


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