图:pixabay 原文来源:GitHub 「机器人圈」编译:嗯~阿童木呀、多啦A亮 它还支持多标签分类,其中多标签与句子或文档相关联。 虽然这些模型很多都很简单,可能不会让你在这项文本分类任务中游刃有余,但是这些模型中的其中一些是非常经典的,因此它们可以说是非常适合作为基准模型的。 每个模型在模型类型下都有一个测试函数。 我们还探讨了用两个seq2seq模型(带有注意的seq2seq模型,以及transformer:attention is all you need)进行文本分类。同时,这两个模型也可以用于生成序列和其他任务。如果你的任务是多标签分类,那么你就可以将问题转化为序列生成。 我们实现了一个记忆网络:循环实体网络(recurrent entity network):追踪世界的状态。它用键值对块(blocks of key-value pairs)作为记忆,并行运行,从而获得新的状态。它可以用于使用上下文(或历史)来回答建模问题。例如,你可以让模型读取一些句子(作为文本),并提出一个问题(作为查询),然后请求模型预测答案;如果你像查询一样向其提供故事,那么它就可以进行分类任务。 如果你想了解更多关于文本分类,直播,或这些模型可以应用的任务的数据集详细信息,可以点击链接进行查询,我们选择了一个:https://biendata.com/competition/zhihu/ 模型: 1.fastText 2.TextCNN 3.TextRNN 4.RCNN 5.分层注意网络(Hierarchical Attention Network) 6.具有注意的seq2seq模型(seq2seq with attention) 7.Transformer("Attend Is All You Need") 8.动态记忆网络(Dynamic Memory Network) 9.实体网络:追踪世界的状态 其他模型: 1.BiLstm Text Relation; 2.Two CNN Text Relation; 3.BiLstm Text Relation Two RNN 性能 (多标签标签预测任务,要求预测能够达到前5,300万训练数据,满分:0.5) 10.注意:“HierAtteNetwork”是指Hierarchical Attention Network 用途: 1.模型在xxx_model.py中 2.运行python xxx_train.py来训练模型 3.运行python xxx_predict.py进行推理(测试)。 每个模型在模型下都有一个测试方法。你可以先运行测试方法来检查模型是否能正常工作。 环境: python 2.7+tensorflow 1.1 (tensorflow 1.2也是可以应用的;大多数模型也应该在其他tensorflow版本中正常应用,因为我们使用非常少的特征来将其结合到某些版本中;如果你使用的是python 3.5,只要更改print / try catch函数的话,它也会运行得很好。) 注: 一些util函数是在data_util.py中的;典型输入如:“x1 x2 x3 x4 x5 label 323434”,其中“x1,x2”是单词,“323434”是标签;它具有一个将预训练的单词加载和分配嵌入到模型的函数,其中单词嵌入在word2vec或fastText中进行预先训练。 模型细节: 1.快速文本(fast Text) 《用于高效文本分类的技巧》(Bag of Tricks for Efficient Text Classification)论文的实现(https://arxiv.org/abs/1607.01759) 1.使用bi-gram 或者tri-gram。 2.使用NCE损失,加速我们的softmax计算(不使用原始论文中的层次softmax)结果:性能与原始论文中的一样好,速度也非常快。 查看:p5_fastTextB_model.py 2.文本卷积神经网络(Text CNN) 《卷积神经网络进行句子分类》(Convolutional Neural Networks for Sentence Classification)论文的实现 结构:降维---> conv ---> 最大池化 --->完全连接层--------> softmax 查看:p7_Text CNN_model.py (责任编辑:本港台直播) |