19年的两篇多标签文本分类 + 一篇层级多标签文本分类论文分享

在这里插入图片描述
一、摘要
(该论文的模型创新点在于词向量那里,所以全文的重心偏向于词向量部分)
传统的机器学习方法主要用词袋以及ngram去生成特征向量作为文本表示,从而完成很多任务。但是对于短文本来说,比如tweet,由于短文本字数的限制,传统机器学习如果继续使用词袋和ngram,则可能会存在数据稀疏以及维度问题。
所以现在所提出的词向量,作为神经网络的输入使得文本分类等任务有了更好的效果。
本文提出CNN架构的一种模型。

二、introduction
先指出CBOW、TFIDF、ngram等传统方法,并且传统机器学习使用这些方法不能够表示词的语义,并且存在数据稀疏问题等。所以分布式词向量表示逐渐火热,并且非常有效。
接下来就长篇大论的提word2vec、glove、pudmed等方法,也是更加偏向于去介绍词向量。并且传统的方法不够好,而神经网络的效果很好。所以他们使用了glove和pubmed的embedding,基于这两种embedding,提出了4个CNN模型,分别为CNN-PubMed,CNN-Glove,CNN-PGConcat 和 CNN-PGaverage。

三、related work
也是分两个大的模块来说,第一个模块是说传统文本分类方法,机器学习方法不好;第二个模块是说现在的神经网络所使用的词向量部分的内容。(内容过于简单,不多叙述)

四、方法
在这里插入图片描述
还是很简单一目了然的,主要创新点在于词向量上做了两个手脚,这个点还是很创新的,这也是为什么全文重点在词向量上,但因为做nlp的对词向量比较熟悉,所以文章干货也不是很多。

五、实验
实验评价指标有问题,文章只是草草的说将输出层矩阵和数据集的矩阵进行了比较得出准确率,但是具体公示等等都没有。

baseline模型有:
SVM
朴素贝叶斯
随机森林
决策树
本文的两个模型。

六、总结一下
主要还是和传统模型进行对比。并且文章很大篇幅在说词向量的问题。实验部分的内容还是丰富的,但是模型的准确率的评价指标没有明确指出。与当前很多深度学习模型之间还是没有很多的对比。


在这里插入图片描述
一、introduction
这是篇针对长文本的多标签文本分类问题。

Binary relevance (BR) 方法是最早的一个方法,把多标签文本分类任务看作是由多个单分类文本分类任务的组合,其忽略标签与标签之间的依赖关系。
Classifier chain (CC) 方法则包含了标签与标签间的依赖关系,其先把该任务看作是一系列的二分类问题,再通过模型来摸你标签与标签间的依赖关系。
条件随机场CRF 方法和 conditional Bernoulli mixtures (CBF) 方法都是在处理标签依赖关系。
但是上述方法只使用于小尺度的数据集,而非大尺度数据集。

随后出现了CNN、RNN、DNN,以及叫做 Canonical Correlated AutoEncoder (C2AE) 等深度学习方法。
但是其对标签中的依赖考虑还是不足,同时可解释性也不足。

还有一些方法,比如seq2seq模型,LSTM,包括LSTM和seq2seq结合的方法,并加上注意力机制等方法。(该论文提出的模型即是基于seq2seq的,所以作者会有意识的去往seq2seq去引,并表现其优点)。

论文中还提到了一个观点,对于多标签文本分类任务,之前有论文提到过,注意力机制不能够很好的在该任务中发挥作用。但是此论文作者指出,对于多标签文本分类任务,如果使用LSTM加上注意力,效果会没有别的模型好而已

论文中又指出,局部信息是非常重要的(而他的模型即使用了局部信息)

二、related work
当前解决多标签文本分类任务,主要有三种:
1.问题转化方法
2.算法改进方法
3.神经网络方法

BR、label powerset(LP) 、CC方法都属于1
ML-DT、Rank-SVM、KNN、CRF、CBM方法等都属于2
CNN RNN LSTM seq2seq 包括一些结合的方法都属于3

三、方法
在这里插入图片描述
非常清晰简单,直接看图。

四、实验
用了3个数据集进行了实验,其中一个数据集就是我之前项目中的知乎数据集,但是这里他对数据集进行了预处理,甚至说是进行了些挑选,这里我是很有疑惑的。

评价指标真的非常赞!非常的清晰,可以算是一个范例了:
Hamming Loss
Micro-F1
Micro-precision
Micro-recall

baseline模型既有传统的,也有ML的,也有NN的:
BR
CC
LP
CNN
CNN-RNN
S2S + Attn
SGM
MDC

五、总结一下
该论文的实验部分内容看起来怪少的,没有对实验内容进行了细致的分析。实际上,作者单独写了一个章节去进行更深入的分析,这是论文的精髓之处

整篇论文对于相关工作等等方面的,叙述还是比较详细的。整个用神经网络去做多标签文本分类的各个方法以及类别等等分得比还是比较明确的同时实验部分的baseline以及整个实验设计,还是非常详细的,同时,对于数据所用的评价指标,也有详细的描述。对于实验部分的具体数据的分析,以及原理包括模型的挖掘,还是比较详细和深入的。但是整个有问题的话就是在知乎数据机上的数据使用问题,感觉有点问题。


由于这两篇都是比较传统意义上的多标签文本分类,所以在此进行一些对比:
在这里插入图片描述


在这里插入图片描述
这篇论文是19年CIKM上的一篇论文,刚刚的两篇论文对多标签文本分类任务的处理其实是比较传统,甚至说是easy点的,而多标签文本分类任务的痛点其实是在于层级标签的处理,这篇论文就是真正意义上的去处理层级多标签文本分类任务。

摘要
Hierarchical multi-label text classification (HMTC) 任务
先前的很多方法都是直接处理所有的标签,或者是扁平化处理多标签文本分类问题,而忽略了标签的层级关系等,比如刚刚所提到的两篇论文。

该论文的工作注意到 文本与层级结构之间的关系。
首先对不同层级结构,自上而下的建模每一个level之间的依赖关系。
然后提出了一个层级注意力策略去表示 文本与层级结构之间的关系(正如上面所提到的一样)
最后提出了一个混合方法能够精准预测层级结构的每一个level。

一、introduction
扁平化的方法比如朴素贝叶斯被提出,但是该方法忽略了层级信息。

为了考虑到层级结构,后续的方法大概可以分为两类:1.训练多个分类器,各负责各的层级分类任务。2.训练一个分类器,对全局进行分类预测。

HMTC的挑战原因的具体分析主要有三点:
1.文本与层级结构之间是有关联的
2.层级结构中层与层之间也是有关联的
3.不仅要关注局部信息,也要关注整个结构的信息。

二、related work
扁平化处理标签的方法比如决策树、朴素贝叶斯,但忽略了层级信息。
还有些方法比如SVM等方法。
然后是全局型的方法。
最近则出现了很多神经网络的方法,比如HMC-LMLP方法
还有一些混合方法。
但论文指出,这些方法没有考虑到文本与层级结构之间的关联性。

三、剩余内容没有多看了,和我目前任务有点偏离,所以做下总结:
该论文的确是层级多标签文本分类,提出的模型也极其复杂,所用的baseline和平常见到的模型也不太一样,所以主要对我个人的帮助就在于相关工作部分的内容,但是相关工作部分的内容描述的也不是很清楚,所以就直接后面就都没看了。换了一篇更好的层级标签论文,并提出了一个新的小领域,下次组会再和大家分享。在这里插入图片描述

  • 8
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 你好,关于多层层级文本分类的代码,我可以为您提供一些参考。一般来说,多层层级文本分类可以使用深度学习模型,如卷积神经网络(CNN)、循环神经网络(RNN)或者Transformer等。您可以使用Python编写代码,使用TensorFlow或者PyTorch等深度学习框架来实现。具体实现方式可以根据您的数据集和需求来选择。希望能对您有所帮助。 ### 回答2: 多层层级文本分类是一种将文本数据按照多个层级进行分类的技术,可以用于对大规模的文本数据进行更精细的分类和管理。 在编写多层层级文本分类代码时,一般可以按照以下步骤进行: 1. 数据准备:首先需要准备好用于训练和测试的文本数据集,可以包括多层级标签信息,例如父标签和子标签。可以使用已有的数据集,或者通过网络爬虫等方式获取。 2. 数据预处理:对文本数据进行一系列的预处理操作,例如分词、去除停用词、词干化等。这样可以提取出文本的关键特征。 3. 特征提取:根据预处理后的文本数据,将其转化为机器学习算法可以处理的特征向量。常用的特征提取方法包括词袋模型、TF-IDF等。 4. 分类模型训练:选择适合的分类算法,例如朴素贝叶斯、支持向量机、深度学习模型等,通过训练数据对分类模型进行训练。 5. 模型评估:使用测试数据对训练好的分类模型进行评估,可以使用准确率、精确率、召回率等指标来评估模型的性能。 6. 多层级分类:在多层级文本分类中,可以先通过一个分类模型对文本进行初步分类,然后根据分类结果的子标签再次进行分类,直到达到所需的层级数。 以上是多层层级文本分类的一般流程,具体的代码实现可以根据具体的需求和使用的编程语言来进行。常用的机器学习库和深度学习框架,如scikit-learn、TensorFlow、PyTorch等,提供了相应的算法和工具可以用于实现多层级文本分类。 ### 回答3: 多层层级文本分类是指对文本进行多个层级的分类,以更细粒度地对文本进行分类和管理。下面是一个代码示例: ```python import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # 读取数据 data = pd.read_csv('text_classification_data.csv') # 数据预处理,包括分词、去停用词等 # 将文本转化为向量表示 vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(data['text']) # 将文本分类标签转化为数字表示 label_dict = {'class_a': 0, 'class_b': 1, 'class_c': 2} data['label_num'] = data['label'].map(label_dict) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, data['label_num'], test_size=0.2, random_state=42) # 训练多层级文本分类模型 model = LogisticRegression() model.fit(X_train, y_train) # 预测测试集并计算准确率 y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print("模型准确率为:", accuracy) ``` 上面的代码实现了多层层级文本分类的功能。首先,通过读取数据并对数据进行预处理,如分词、去停用词等。然后,使用TF-IDF向量化文本,将文本转化为向量表示。接下来,将文本分类标签转化为数字表示。然后,使用训练数据训练Logistic回归模型,并在测试集上进行预测并计算准确率。最后,输出模型的准确率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xu_Wave

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值