考虑以下示例
library(text2vec)
library(glmnet)
library(dplyr)
dataframe <- data_frame(id = c(1,2,3,4),
text = c("this is a test", "this is another",'hello','what???'),
value = c(200,400,120,300),
output = c('win', 'lose','win','lose'))
> dataframe
# A tibble: 4 × 4
id text value output
<dbl> <chr> <dbl> <chr>
1 1 this is a test 200 win
2 2 this is another 400 lose
3 3 hello 120 win
4 4 what??? 300 lose
现在,我可以使用excellenttext2vec
得到一个与列对应的稀疏矩阵text
。为此,我只需要遵循 text2vec 教程:
it_train = itoken(dataframe$text,
ids = dataframe$id,
progressbar = FALSE)
vocab = create_vocabulary(it_train)
vectorizer = vocab_vectorizer(vocab)
dtm_train = create_dtm(it_train, vectorizer)
> dtm_train
4 x 7 sparse Matrix of class "dgCMatrix"
hello another what??? a is test this
1 . . . 1 1 1 1
2 . 1 . . 1 . 1
3 1 . . . . . .
4 . . 1 . . . .
这个 dtm 稀疏矩阵可以输入到 ML 模型中。但我的问题是:我怎样才能使用value
变量?
也就是说,作为 glmnet 或 xgboost 中的输入预测器,我想使用value
包含一些有价值信息的稀疏矩阵(来自文本变量)以及我的变量。我怎样才能做到这一点?我们能否以某种方式向稀疏矩阵添加信息?
谢谢!