step_tfidf()
創建配方步驟的規範,該步驟將 token
變量轉換為包含術語 frequency-inverse 標記文檔頻率的多個變量。
用法
step_tfidf(
recipe,
...,
role = "predictor",
trained = FALSE,
columns = NULL,
vocabulary = NULL,
res = NULL,
smooth_idf = TRUE,
norm = "l1",
sublinear_tf = FALSE,
prefix = "tfidf",
keep_original_cols = FALSE,
skip = FALSE,
id = rand_id("tfidf")
)
參數
- recipe
-
一個recipe 對象。該步驟將添加到此配方的操作序列中。
- ...
-
一個或多個選擇器函數用於選擇受該步驟影響的變量。有關更多詳細信息,請參閱
recipes::selections()
。 - role
-
對於此步驟創建的模型項,應為它們分配什麽分析角色?默認情況下,該函數假定由原始變量創建的新列將用作模型中的預測變量。
- trained
-
指示預處理數量是否已估計的邏輯。
- columns
-
將由
terms
參數(最終)填充的變量名稱字符串。在recipes::prep.recipe()
訓練該步驟之前,這是NULL
。 - vocabulary
-
要考慮的字符串的字符向量。
- res
-
一旦
prep.recipe()
訓練了此預處理步驟,用於計算術語頻率的單詞將存儲在此處。 - smooth_idf
-
通過向文檔頻率加一來實現真正的平滑 IDF 權重,就好像看到一個額外的文檔包含集合中的每個術語恰好一次。這可以防止被零除。
- norm
-
一個字符,定義應用於術語向量的標準化類型。默認情況下"l1",即按文檔中的字數進行縮放。必須是 c("l1"、"l2"、"none") 之一。
- sublinear_tf
-
邏輯上,應用次線性 term-frequency 縮放,即將術語頻率替換為 1 + log(TF)。默認為 FALSE。
- prefix
-
將作為結果新變量的前綴的字符串。請參閱下麵的注釋。
- keep_original_cols
-
將原始變量保留在輸出中的邏輯。默認為
FALSE
。 - skip
-
一個合乎邏輯的。當
recipes::bake.recipe()
烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在recipes::prep.recipe()
運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用skip = FALSE
時應小心。 - id
-
該步驟特有的字符串,用於標識它。
細節
強烈建議在使用step_tfidf之前使用step_tokenfilter來限製創建的變量數量;否則你可能會遇到內存問題。一個好的策略是從較低的令牌數量開始,然後根據您想要使用的 RAM 數量增加令牌數量。
術語 frequency-inverse 文檔頻率是兩個統計量的乘積:術語頻率 (TF) 和逆文檔頻率 (IDF)。
術語頻率衡量每個標記在每個觀察中出現的次數。
逆文檔頻率是對單詞信息量的衡量,例如,該單詞在所有觀察中的常見或罕見程度。如果一個詞出現在所有觀察中,它可能不會提供那麽多的洞察力,但如果它隻出現在某些觀察中,它可能有助於區分觀察。
IDF 定義如下: idf = log(1 + (語料庫中的#個文檔) /(該術語出現的#個文檔))
新組件的名稱以 prefix
開頭,然後是變量名稱,最後是由 -
分隔的標記。變量名稱用零填充。例如,如果 prefix = "hash"
和 num_terms < 10
,則它們的名稱將為 hash1
- hash9
。如果 num_terms = 101
,它們的名稱將為 hash001
- hash101
。
整理
當您 tidy()
此步驟時,將返回一個包含列 terms
(選擇的選擇器或變量)、token
(標記名稱)、weight
(計算的 IDF 權重)的 tibble。
也可以看看
step_tokenize()
將字符轉換為tokens
來自標記的數字變量的其他步驟:step_lda()
、step_texthash()
、step_tf()
、step_word_embeddings()
例子
# \donttest{
library(recipes)
library(modeldata)
data(tate_text)
tate_rec <- recipe(~., data = tate_text) %>%
step_tokenize(medium) %>%
step_tfidf(medium)
tate_obj <- tate_rec %>%
prep()
bake(tate_obj, tate_text)
#> # A tibble: 4,284 × 956
#> id artist title year tfidf_medium_1 tfidf_medium_10
#> <dbl> <fct> <fct> <dbl> <dbl> <dbl>
#> 1 21926 Absalon Proposa… 1990 0 0
#> 2 20472 Auerbach, Frank Michael 1990 0 0
#> 3 20474 Auerbach, Frank Geoffrey 1990 0 0
#> 4 20473 Auerbach, Frank Jake 1990 0 0
#> 5 20513 Auerbach, Frank To the … 1990 0 0
#> 6 21389 Ayres, OBE Gillian Phaëthon 1990 0 0
#> 7 121187 Barlow, Phyllida Untitled 1990 0 0
#> 8 19455 Baselitz, Georg Green V… 1990 0 0
#> 9 20938 Beattie, Basil Present… 1990 0 0
#> 10 105941 Beuys, Joseph Joseph … 1990 0 0
#> # ℹ 4,274 more rows
#> # ℹ 950 more variables: tfidf_medium_100 <dbl>, tfidf_medium_11 <dbl>,
#> # tfidf_medium_12 <dbl>, tfidf_medium_13 <dbl>, tfidf_medium_133 <dbl>,
#> # tfidf_medium_14 <dbl>, tfidf_medium_15 <dbl>, tfidf_medium_151 <dbl>,
#> # tfidf_medium_16 <dbl>, tfidf_medium_160 <dbl>,
#> # tfidf_medium_16mm <dbl>, tfidf_medium_18 <dbl>,
#> # tfidf_medium_19 <dbl>, tfidf_medium_2 <dbl>, tfidf_medium_20 <dbl>, …
tidy(tate_rec, number = 2)
#> # A tibble: 1 × 4
#> terms token weight id
#> <chr> <chr> <dbl> <chr>
#> 1 medium NA NA tfidf_W9mpN
tidy(tate_obj, number = 2)
#> # A tibble: 952 × 4
#> terms token weight id
#> <chr> <chr> <dbl> <chr>
#> 1 medium 1 7.26 tfidf_W9mpN
#> 2 medium 10 7.26 tfidf_W9mpN
#> 3 medium 100 7.26 tfidf_W9mpN
#> 4 medium 11 7.67 tfidf_W9mpN
#> 5 medium 12 7.67 tfidf_W9mpN
#> 6 medium 13 8.36 tfidf_W9mpN
#> 7 medium 133 8.36 tfidf_W9mpN
#> 8 medium 14 6.75 tfidf_W9mpN
#> 9 medium 15 6.57 tfidf_W9mpN
#> 10 medium 151 8.36 tfidf_W9mpN
#> # ℹ 942 more rows
# }
相關用法
- R textrecipes step_tf 代幣的使用頻率
- R textrecipes step_tokenize_wordpiece 字符變量的Wordpiece標記化
- R textrecipes step_tokenfilter 根據詞頻過濾標記
- R textrecipes step_text_normalization 字符變量的標準化
- R textrecipes step_tokenize_sentencepiece 字符變量的句子標記化
- R textrecipes step_tokenmerge 將多個令牌變量合並為一個
- R textrecipes step_tokenize 字符變量的標記化
- R textrecipes step_textfeature 計算文本特征集
- R textrecipes step_texthash 代幣的特征哈希
- R textrecipes step_tokenize_bpe 字符變量的 BPE 標記化
- R textrecipes step_lemma 標記變量的詞形還原
- R textrecipes step_clean_names 幹淨的變量名稱
- R textrecipes step_word_embeddings 令牌的預訓練詞嵌入
- R textrecipes step_stem 令牌變量的詞幹
- R textrecipes step_ngram 從標記變量生成 n-gram
- R textrecipes step_stopwords 過濾標記變量的停用詞
- R textrecipes step_pos_filter 令牌變量的語音過濾部分
- R textrecipes step_untokenize 令牌變量的取消令牌化
- R textrecipes step_lda 計算代幣的LDA維度估計
- R textrecipes step_clean_levels 清晰的分類級別
- R textrecipes step_sequence_onehot 令牌的位置 One-Hot 編碼
- R textrecipes step_dummy_hash 通過特征哈希的指示變量
- R textrecipes show_tokens 顯示配方的令牌輸出
- R textrecipes tokenlist 創建令牌對象
- R update_PACKAGES 更新現有的 PACKAGES 文件
注:本文由純淨天空篩選整理自等大神的英文原創作品 Term Frequency-Inverse Document Frequency of Tokens。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。