我在yoon kim的工作(卷积神经网络的句子分类)的张量流link中遇到了Denny Britz的实现,我想对每个句子的嵌入向量执行SMOTE(过采样),不确定如何获得th的嵌入,或者如果我可以在嵌入之前进行过采样,这是Denny的嵌入部分:
with tf.device('/cpu:0'), tf.name_scope("embedding"):
self.W = tf.Variable(
tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0),
name="W",trainable=True)
self.embedded_chars = tf.nn.embedding_lookup(self.W, self.input_x)
self.embedded_chars_expanded = tf.expand_dims(self.embedded_chars, -1)
答案 0 :(得分:0)
我想您想使用SMOTE对基于它们的类的句子嵌入进行过采样。这是最简单的方法:
1-安装库imblearn pip install imblearn
2-您可以选择使用SMOTE过采样或ADASYN过采样,
导入您想要的一个:
from imblearn.over_sampling import SMOTE
或
from imblearn.over_sampling import ADASYN
3-创建一个实例并选择您喜欢的参数(取决于您的问题):
sm = SMOTE(random_state=12, ratio=1.0)
4提供您的嵌入列表及其适当的标签列表,您将获得过采样的结果:
oversampled_embeddings,oversamples_labeles= sm.fit_sample(embeding_list,labels_list)
5享受培训和测试您的网络:)
希望有帮助。