Closed lvouran closed 5 years ago
可以更加具体点,用什么什么 embedding + 模型,是分类还是标注?
没有用词向量,CNNMode,参考楼主第一个例子(lets run a text classification with CNN model )写的,,分类问题
可以尝试换成 BLSTM 模型,效果会好一些,如果还不够好,那就使用词向量。这些提升会比较高。
好的,,我去试试,谢谢啦!
请问有改善么?
有明显的区分度的文章,分类的准确对还是非常满意的,,但是区分度不大的文章(例如要对文化大方向,分出来文化贸易,交流活动这样的类别的话)结果就不是很理想了
可以考虑使用 class_weight
增加这些效果不好的分类的权重来训练试试,具体方法如下
class_weight = {
0: 1.,
1: 1.,
2: 10., # 有问题的类别权重调高
3: 10.
}
model = CNNModel()
model.fit(train_x,
train_y,
val_x,
val_y,
batch_size=100,
fit_kwargs={'class_weight': class_weight})
参考:How to set class weights for imbalanced classes in Keras?
还有可以先使用自己的全部语聊+近似领域的语聊训练出自己的词向量,然后使用这个词向量作为 WordEmbedding 层再训练 BLSTM 模型试试。
好的,我再去试试,,如果在分词那步加载自定义的词典,对结果的影响会很大吗?感谢楼主指导
如果你的分词效果还可以,能一定程度提高。不过自定义分词需要注意一下几点
我们结婚吧
美国队长
加到字典了,但是词向量没有这些词,最终都会转成 UNK
来处理,会失去重要信息。可以尝试换成 BLSTM 模型,效果会好一些,如果还不够好,那就使用词向量。这些提升会比较高。 你用的cnews数据集,数据量下采样到5000,1000,500之后,用CNNLSTM模型,模型震荡,loss降不下去,是正常现象吗?
你用的cnews数据集,数据量下采样到5000,1000,500之后,用CNNLSTM模型,模型震荡,loss降不下去,是正常现象吗?
你的意思是,你用少量数据 + CNNLSTM 模型后,优化不到很好的效果是么?
你用的cnews数据集,数据量下采样到5000,1000,500之后,用CNNLSTM模型,模型震荡,loss降不下去,是正常现象吗?
你的意思是,你用少量数据 + CNNLSTM 模型后,优化不到很好的效果是么?
train下采样到5000,val1000,test500:CNN的test precision有95%左右;BLSTM90%左右;CNNLSTM也有90%左右,但收敛需要的epoch比以上两种多;
train下采样到500,val100,test500:CNN的test auc有80%左右;BLSTM70%左右;CNNLSTM很难收敛,只能有10%(瞎猜的程度);
数据少的的情况下,收敛难很正常呀,特征不够啊。可以考虑用预训练词向量快速收敛。
小白一枚,训练完以后效果不是很理想,有没有什么可配置化的参数来提高准确性呢