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


R textrecipes step_ngram 從標記變量生成 n-gram


step_ngram() 創建配方步驟的規範,該步驟將 token 變量轉換為 ngram 的 token 變量。

用法

step_ngram(
  recipe,
  ...,
  role = NA,
  trained = FALSE,
  columns = NULL,
  num_tokens = 3L,
  min_num_tokens = 3L,
  delim = "_",
  skip = FALSE,
  id = rand_id("ngram")
)

參數

recipe

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

...

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

role

由於沒有創建新變量,因此此步驟未使用。

trained

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

columns

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

num_tokens

n-gram 中的令牌數量。該值必須是大於或等於 1 的整數。默認為 3。

min_num_tokens

n-gram 中的最小令牌數。這必須是大於或等於 1 且小於 n 的整數。默認為 3。

delim

n-gram 中單詞之間的分隔符。默認為"_"。

skip

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

id

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

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

細節

使用此步驟將使令牌的排序變得毫無意義。如果min_num_tokens < num_tokens,則令牌相對於n-gram中的令牌數量以遞增方式排序。如果min_num_tokens = 1num_tokens = 3,則輸出包含所有 1-gram,後跟所有 2-gram,最後跟所有 3-gram。

整理

當您tidy()這一步時,會出現一個帶有列terms(選擇的選擇器或變量)的tibble。

調整參數

此步驟有 1 個調整參數:

  • num_tokens :令牌數量(類型:整數,默認值:3)

箱重

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

也可以看看

step_tokenize() 將字符轉換為tokens

令牌修改的其他步驟: step_lemma()step_pos_filter()step_stem()step_stopwords()step_tokenfilter()step_tokenmerge()

例子

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

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

tate_obj <- tate_rec %>%
  prep()

bake(tate_obj, new_data = NULL, medium) %>%
  slice(1:2)
#> # A tibble: 2 × 1
#>       medium
#>    <tknlist>
#> 1 [6 tokens]
#> 2 [1 tokens]

bake(tate_obj, new_data = NULL) %>%
  slice(2) %>%
  pull(medium)
#> <textrecipes_tokenlist[1]>
#> [1] [1 tokens]
#> # Unique Tokens: 1

tidy(tate_rec, number = 2)
#> # A tibble: 1 × 2
#>   terms  id         
#>   <chr>  <chr>      
#> 1 medium ngram_IVJL9
tidy(tate_obj, number = 2)
#> # A tibble: 1 × 2
#>   terms  id         
#>   <chr>  <chr>      
#> 1 medium ngram_IVJL9
源代碼:R/ngram.R

相關用法


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