机器学习模型输入多个特征的向量

我的实验需要将短文本、情感分数、文本字符长度三种特征输入到模型里训练,但找到的代码是只输入了文本数据,在网上也没有找到结合多个特征的详细代码。

通过请教学姐后,我自己修修改改终于不报错了。如果各位觉得我写的哪里有问题或有更好的方法,请一定要告诉我哇🥺🙌


首先,我的csv数据集格式:

body,label,emotion,length
为什么更新了进不去,3,0.1020974195144213,9

输入数据,对body进行分词和去除停用词后,将各特征存在列表中:

corpus.append((words, item[1], item[2], item[3]))

由于我的数据量大,所以还要多进程读取数据。接着,将各特征向量化并组合到一起:

vec, label = vc.load_w2v(corpus)

在load_w2v方法中,我load的是tencent-ailab-embedding模型,对文本进行向量化:

word_vecs.append(w2v_model[word])

将各特征都转换成相同的dtype,不然会报错;将item[2]和item[3]先合并到一个temp1列表中,再将temp1与文本向量水平concatenate,便成功将多个特征合并到一起了:

word_vecs_ = np.array(word_vecs, dtype='float')
lla = np.array(item[1], dtype='float')
temp.extend([item[2], item[3]])
temp1 = np.array(temp, dtype='float')
fe = np.concatenate([np.mean(word_vecs_, axis=0), temp1], axis=0)
vector.append(fe)
temp.clear()
label.append(lla)

将得到的vec和label输入到模型中:

    def classify_svm(self,vec,label):
        vec_ = np.array(vec)
        X_train, X_test, y_train, y_test = train_test_split(vec_, label, test_size=0.2, random_state=1)
        ……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值