step_tokenfilter()
創建配方步驟的規範,該步驟將轉換 token
變量以根據頻率進行過濾。
用法
step_tokenfilter(
recipe,
...,
role = NA,
trained = FALSE,
columns = NULL,
max_times = Inf,
min_times = 0,
percentage = FALSE,
max_tokens = 100,
filter_fun = NULL,
res = NULL,
skip = FALSE,
id = rand_id("tokenfilter")
)
參數
- recipe
-
一個recipe 對象。該步驟將添加到此配方的操作序列中。
- ...
-
一個或多個選擇器函數用於選擇受該步驟影響的變量。有關更多詳細信息,請參閱
recipes::selections()
。 - role
-
由於沒有創建新變量,因此此步驟未使用。
- trained
-
指示預處理數量是否已估計的邏輯。
- columns
-
將由
terms
參數(最終)填充的變量名稱字符串。在recipes::prep.recipe()
訓練該步驟之前,這是NULL
。 - max_times
-
一個整數。單詞被刪除之前可以出現的最大次數。
- min_times
-
一個整數。單詞被刪除之前可以出現的最少次數。
- percentage
-
一個合乎邏輯的。 max_times 和 min_times 應該解釋為百分比而不是計數。
- max_tokens
-
一個整數。在 max_times 和 min_times 完成過濾後,僅保留頂部的 max_tokens 標記。默認為 100。
- filter_fun
-
一個函數。該函數應采用字符向量,並返回相同長度的邏輯向量。該函數將應用於數據集的每個觀察。默認為
NULL
。如果使用此參數,所有其他參數將被忽略。 - res
-
一旦通過
prep.recipe()
訓練此預處理步驟,將保留的單詞將存儲在此處。 - skip
-
一個合乎邏輯的。當
recipes::bake.recipe()
烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在recipes::prep.recipe()
運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用skip = FALSE
時應小心。 - id
-
該步驟特有的字符串,用於標識它。
細節
此步驟允許您通過過濾語料庫中出現的標記來限製您正在查看的標記。如果標記在數據中出現過多或過少,您可以將其排除。可以使用 max_times
和 min_times
將其指定為計數,也可以通過將 percentage
設置為 TRUE
將其指定為百分比。此外,還可以過濾以僅使用最常用的 max_tokens
標記。如果max_tokens
設置為Inf
,則將使用所有令牌。當標記是單詞或三元組時,這通常會導致非常大的數據集。一個好的策略是從較低的令牌數量開始,然後根據您想要使用的 RAM 數量增加。
強烈建議在使用step_tf或step_tfidf之前進行過濾,以限製創建的變量數量。
整理
當您tidy()
此步驟時,會出現一個包含列terms
(選擇的選擇器或變量)和value
(唯一標記的數量)的小標題。
調整參數
這一步有3個調整參數:
-
max_times
:最大令牌頻率(類型:整數,默認值:Inf) -
min_times
:最小令牌頻率(類型:整數,默認值:0) -
max_tokens
: # 保留的令牌(類型:整數,默認值:100)
也可以看看
step_tokenize()
將字符轉換為tokens
令牌修改的其他步驟: step_lemma()
、 step_ngram()
、 step_pos_filter()
、 step_stem()
、 step_stopwords()
、 step_tokenmerge()
例子
library(recipes)
library(modeldata)
data(tate_text)
tate_rec <- recipe(~., data = tate_text) %>%
step_tokenize(medium) %>%
step_tokenfilter(medium)
tate_obj <- tate_rec %>%
prep()
bake(tate_obj, new_data = NULL, medium) %>%
slice(1:2)
#> # A tibble: 2 × 1
#> medium
#> <tknlist>
#> 1 [8 tokens]
#> 2 [3 tokens]
bake(tate_obj, new_data = NULL) %>%
slice(2) %>%
pull(medium)
#> <textrecipes_tokenlist[1]>
#> [1] [3 tokens]
#> # Unique Tokens: 3
tidy(tate_rec, number = 2)
#> # A tibble: 1 × 3
#> terms value id
#> <chr> <int> <chr>
#> 1 medium NA tokenfilter_iSSZG
tidy(tate_obj, number = 2)
#> # A tibble: 1 × 3
#> terms value id
#> <chr> <int> <chr>
#> 1 medium 952 tokenfilter_iSSZG
相關用法
- R textrecipes step_tokenize_wordpiece 字符變量的Wordpiece標記化
- R textrecipes step_tokenize_sentencepiece 字符變量的句子標記化
- R textrecipes step_tokenmerge 將多個令牌變量合並為一個
- R textrecipes step_tokenize 字符變量的標記化
- R textrecipes step_tokenize_bpe 字符變量的 BPE 標記化
- R textrecipes step_text_normalization 字符變量的標準化
- R textrecipes step_tf 代幣的使用頻率
- R textrecipes step_tfidf 詞頻-令牌的逆文檔頻率
- R textrecipes step_textfeature 計算文本特征集
- R textrecipes step_texthash 代幣的特征哈希
- 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 文件
注:本文由純淨天空篩選整理自等大神的英文原創作品 Filter Tokens Based on Term Frequency。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。