你好,我有一个很大程度上不平衡的数据集,我正在尝试在使用bert之前合并SMOTE。然而,当我将我的数据分成训练,验证和测试时,我有点困惑,不知道该如何做?因为im使用文本数据,所以它是在标记化之后发生的吗?
代码片段:
def tokenize(df):
input_ids = []
attention_masks = []
for i, text in enumerate(df["tidy_tweet"]):
tokens = tokenizer.encode_plus(text, max_length=SEQ_LEN,
truncation=True, padding='max_length',
add_special_tokens=True, return_attention_mask=True,
return_token_type_ids=False, return_tensors='tf')
input_ids.append(np.asarray(tokens["input_ids"]).reshape(SEQ_LEN,))
attention_masks.append(np.asarray(tokens["attention_mask"]).reshape(SEQ_LEN,))
return (np.asarray(input_ids), np.asarray(attention_masks))
train_input_ids, train_attention_masks = tokenize(x_train)
valid_input_ids, valid_attention_masks = tokenize(x_valid)发布于 2021-06-10 16:59:34
SMOTE是一种通过向输入向量添加一些噪声来增加数据集中样本量的技术。它不能直接应用于文本数据,特别是当文本被表示为相应标记的序列或id时。
然而,它可以应用于句子嵌入或这样的其他表示,其中整个样本表示为实数的向量。但是,据我所知,我从未见过有人将SMOTE应用于文本数据。
https://stackoverflow.com/questions/67892624
复制相似问题