step_word_embeddings()
創建配方步驟的規範,通過聚合預訓練嵌入中每個標記的向量,將 token
變量轉換為 word-embedding 維度。
用法
step_word_embeddings(
recipe,
...,
role = "predictor",
trained = FALSE,
columns = NULL,
embeddings,
aggregation = c("sum", "mean", "min", "max"),
aggregation_default = 0,
prefix = "wordembed",
keep_original_cols = FALSE,
skip = FALSE,
id = rand_id("word_embeddings")
)
參數
- recipe
-
一個recipe 對象。該步驟將添加到此配方的操作序列中。
- ...
-
一個或多個選擇器函數用於選擇受該步驟影響的變量。有關更多詳細信息,請參閱
recipes::selections()
。 - role
-
對於此步驟創建的模型項,應為它們分配什麽分析角色?默認情況下,該函數假定由原始變量創建的新列將用作模型中的預測變量。
- trained
-
指示預處理數量是否已估計的邏輯。
- columns
-
將由
terms
參數(最終)填充的變量名稱字符串。在recipes::prep.recipe()
訓練該步驟之前,這是NULL
。 - embeddings
-
預先訓練的詞嵌入的 tibble,例如由 textdata 包中的 embedding_glove 函數返回的詞嵌入。第一列應包含標記,其他列應包含嵌入向量。
- aggregation
-
給出要使用的聚合函數名稱的字符。必須是 "sum"、"mean"、"min" 和 "max" 之一。默認為"sum"。
- aggregation_default
-
表示在嵌入中匹配沒有單詞的情況的默認值的數字。默認為 0。
- prefix
-
將作為結果新變量的前綴的字符串。請參閱下麵的注釋。
- keep_original_cols
-
將原始變量保留在輸出中的邏輯。默認為
FALSE
。 - skip
-
一個合乎邏輯的。當
recipes::bake.recipe()
烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在recipes::prep.recipe()
運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用skip = FALSE
時應小心。 - id
-
該步驟特有的字符串,用於標識它。
細節
詞嵌入將詞(或其他標記)映射到高維特征空間。此函數將預先訓練的詞嵌入映射到數據中的標記上。
參數 embeddings
提供預訓練向量。此 tibble 中存在的每個維度都會成為一個新的特征列,每一列使用 aggregation
參數中提供的函數在文本的每一行中聚合。
新組件的名稱以 prefix
開頭,然後是聚合函數的名稱,然後是嵌入小標題中的變量的名稱(通常類似於 "d7")。例如,使用默認的 "wordembedding" 前綴和 textdata 包中的 GloVe 嵌入(其中列名稱為 d1
、 d2
等),新列將為 wordembedding_d1
、 wordembedding_d1
, ETC。
整理
當您tidy()
此步驟時,會出現一個包含列terms
(選擇的選擇器或變量)、embedding_rows
(嵌入的行數)和aggregation
(聚合方法)的小標題。
也可以看看
step_tokenize()
將字符轉換為tokens
來自標記的數字變量的其他步驟:step_lda()
、step_texthash()
、step_tfidf()
、step_tf()
例子
library(recipes)
embeddings <- tibble(
tokens = c("the", "cat", "ran"),
d1 = c(1, 0, 0),
d2 = c(0, 1, 0),
d3 = c(0, 0, 1)
)
sample_data <- tibble(
text = c(
"The.",
"The cat.",
"The cat ran."
),
text_label = c("fragment", "fragment", "sentence")
)
rec <- recipe(text_label ~ ., data = sample_data) %>%
step_tokenize(text) %>%
step_word_embeddings(text, embeddings = embeddings)
obj <- rec %>%
prep()
bake(obj, sample_data)
#> # A tibble: 3 × 4
#> text_label wordembed_text_d1 wordembed_text_d2 wordembed_text_d3
#> <fct> <dbl> <dbl> <dbl>
#> 1 fragment 1 0 0
#> 2 fragment 1 1 0
#> 3 sentence 1 1 1
tidy(rec, number = 2)
#> # A tibble: 1 × 4
#> terms embeddings_rows aggregation id
#> <chr> <int> <chr> <chr>
#> 1 text 3 sum word_embeddings_HUbJD
tidy(obj, number = 2)
#> # A tibble: 1 × 4
#> terms embeddings_rows aggregation id
#> <chr> <int> <chr> <chr>
#> 1 text 3 sum word_embeddings_HUbJD
相關用法
- R textrecipes step_lemma 標記變量的詞形還原
- R textrecipes step_tokenize_wordpiece 字符變量的Wordpiece標記化
- R textrecipes step_tokenfilter 根據詞頻過濾標記
- R textrecipes step_text_normalization 字符變量的標準化
- R textrecipes step_clean_names 幹淨的變量名稱
- R textrecipes step_tokenize_sentencepiece 字符變量的句子標記化
- R textrecipes step_tokenmerge 將多個令牌變量合並為一個
- R textrecipes step_tf 代幣的使用頻率
- R textrecipes step_tokenize 字符變量的標記化
- R textrecipes step_tfidf 詞頻-令牌的逆文檔頻率
- R textrecipes step_stem 令牌變量的詞幹
- R textrecipes step_textfeature 計算文本特征集
- R textrecipes step_texthash 代幣的特征哈希
- 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_tokenize_bpe 字符變量的 BPE 標記化
- 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 文件
注:本文由純淨天空篩選整理自等大神的英文原創作品 Pretrained Word Embeddings of Tokens。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。