Pyspark 多标签文本分类

     2023-04-15     225

关键词:

【中文标题】Pyspark 多标签文本分类【英文标题】:Pyspark multilabel text classification 【发布时间】:2018-05-16 01:04:36 【问题描述】:

我正在尝试预测未知文本的标签。我的数据如下所示:

+-----------------+-----------+
|      label      |   text    |
+-----------------+-----------+
| [0, 1, 0, 1, 0] | blah blah |
| [1, 1, 0, 0, 0] | foo bar   |
+-----------------+-----------+

使用多标签二值化方法编码的第一列。 我的管道:

tokenizer = Tokenizer(inputCol="text", outputCol="words")
hashingTF = HashingTF(inputCol=tokenizer.getOutputCol(), outputCol="features")
lsvc = LinearSVC(maxIter=10, regParam=0.1)
ovr = OneVsRest(classifier=lsvc)

pipeline = Pipeline(stages=[tokenizer, hashingTF, ovr])

model = pipeline.fit(result)

当我运行这段代码时,我收到了这个错误:

ValueError: invalid literal for int() with base 10: '[1, 0, 1, 0, 1, 1, 1, 0, 0]'

有什么想法吗?

【问题讨论】:

你是如何生成标签列的。我正在做一些非常相似的事情,但我无法在 pyspark 中找到相当于 MultilableBinarizer 的东西。你能帮帮我吗? 【参考方案1】:

查看错误

int() 的文字无效

我们看到问题在于标签的期望类型不是数组,而是对应样本类的单个值。换句话说,您需要将标签从多标签二值化编码转换为单个数字。

一种方法是首先将数组转换为字符串,然后使用StringIndexer

to_string_udf = udf(lambda x: ''.join(str(e) for e in x), StringType())
df = df.withColumn("labelstring", to_string_udf(df.label))

indexer = StringIndexer(inputCol="labelstring", outputCol="label")
indexed = indexer.fit(df).transform(df)

这将为每个唯一数组创建一个单独的类别(类标签)。

【讨论】:

这不会影响准确性吗?通过这种方法,我们预测标签语料库而不是单个标签 @KertisvanKertis:可能,但据我所知,如果您想在这里使用 PySpark,没有太多选择。如果数据集较小,您可以尝试sklearn,它确实具有支持此类标签的方法。

bert-多标签文本分类实战之一——实战项目总览

[1]总览  【BERT-多标签文本分类实战】系列共七篇文章:  【BERT-多标签文本分类实战】之一——实战项目总览  【BERT-多标签文本分类实战】之二——BERT的地位与名词术语解释  【BERT-多标签文本分类实战】之三—... 查看详情

多标签文本分类《基于标签语义注意力的多标签文本分类》

·阅读摘要:  为了建立标签的语义信息和文档的内容信息之间的联系并加以利用,文章提出了一种基于标签语义注意力的多标签文本分类(LAbelSemanticAttentionMulti-labelClassification,简称LASA)方法。·参考文献:  [1]基... 查看详情

多标签文本分类《融合注意力与cornet的多标签文本分类》

·阅读摘要:  本文主要提出标签与文本注意力+文本注意力、CorNet增强标签预测概率两个创新点,提升了实验精度。·参考文献:  [1]融合注意力与CorNet的多标签文本分类参考论文信息  论文名称:《融... 查看详情

bert-多标签文本分类实战之三——多标签文本分类的方向与常用数据集介绍(代码片段)

·请参考本系列目录:【BERT-多标签文本分类实战】之一——实战项目总览·下载本实战项目资源:>=点击此处=<【注】本篇将首先介绍多标签文本分类中几个小方向,然后介绍这几个小方向对应的常用数据集... 查看详情

bert-多标签文本分类实战之三——多标签文本分类的方向与常用数据集介绍(代码片段)

·请参考本系列目录:【BERT-多标签文本分类实战】之一——实战项目总览·下载本实战项目资源:>=点击此处=<【注】本篇将首先介绍多标签文本分类中几个小方向,然后介绍这几个小方向对应的常用数据集... 查看详情

bert-多标签文本分类实战之三——多标签文本分类的方向与常用数据集介绍(代码片段)

·请参考本系列目录:【BERT-多标签文本分类实战】之一——实战项目总览·下载本实战项目资源:>=点击此处=<【注】本篇将首先介绍多标签文本分类中几个小方向,然后介绍这几个小方向对应的常用数据集... 查看详情

拟合多标签文本分类模型时的错误

】拟合多标签文本分类模型时的错误【英文标题】:BugswhenfittingMultilabeltextclassificationmodels【发布时间】:2019-12-1723:09:57【问题描述】:我现在正在尝试为多标签文本分类问题拟合分类模型。我有一个训练集X_train,其中包含已清... 查看详情

带反馈的多标签文本分类

】带反馈的多标签文本分类【英文标题】:multi-labeltextclassificationwithfeedback【发布时间】:2018-06-1013:54:13【问题描述】:我目前正在研究一个多标签多类文本分类问题。在问题的某些部分,我需要向用户提供反馈,即算法根据哪... 查看详情

多标签文本分类,每个训练数据的类标签分布不均匀

】多标签文本分类,每个训练数据的类标签分布不均匀【英文标题】:Multi-labeltextclassificationwithnon-uniformdistributionofclasslabelsforeverytraindata【发布时间】:2020-04-0919:52:50【问题描述】:我有一个多标签分类问题,我想用六个标签对... 查看详情

多标签文本分类《基于标签语义注意力的多标签文本分类》

·阅读摘要:  为了建立标签的语义信息和文档的内容信息之间的联系并加以利用,文章提出了一种基于标签语义注意力的多标签文本分类(LAbelSemanticAttentionMulti-labelClassification,简称LASA)方法。·参考文献:  [1]基... 查看详情

为多标签文本分类转换数据集

】为多标签文本分类转换数据集【英文标题】:TransformingaDatasetforMulti-LabelTextClassification【发布时间】:2021-11-0501:51:10【问题描述】:我正在通过深度学习模型进行一些关于多标签分类的实验。但是我遇到了数据集的问题。我使... 查看详情

多标签文本分类《融合注意力与cornet的多标签文本分类》

·阅读摘要:  本文主要提出标签与文本注意力+文本注意力、CorNet增强标签预测概率两个创新点,提升了实验精度。·参考文献:  [1]融合注意力与CorNet的多标签文本分类参考论文信息  论文名称:《融... 查看详情

使用 Sklearn 进行多标签文本分类

】使用Sklearn进行多标签文本分类【英文标题】:MultilabeltextclassificationwithSklearn【发布时间】:2020-09-0206:07:30【问题描述】:为了解决我在Python中的多标签文本分类问题,我已经尝试了所有我能想到的方法,我非常感谢任何帮助... 查看详情

使用 TensorFlow 的多标签文本分类

】使用TensorFlow的多标签文本分类【英文标题】:MultilabelTextClassificationusingTensorFlow【发布时间】:2016-05-2519:32:19【问题描述】:文本数据组织为具有20,000个元素的向量,例如[2,1,0,0,5,....,0]。第i个元素表示文本中第i个单词的频率... 查看详情

多标签文本分类层次多标签文本分类方法

...:  本文是一篇中文综述,主要介绍了层次多标签分类的一些算法。·参考文献:  [1]赵海燕,曹杰,陈庆奎,曹健.层次多标签文本分类方法[J/OL].小型微型计算机系统.https://kns.cnki.net/kcms/det... 查看详情

为啥我的多标签文本分类 LSTM 表现不佳?

】为啥我的多标签文本分类LSTM表现不佳?【英文标题】:WhymyLSTMforMulti-LabelTextClassificationunderperforms?为什么我的多标签文本分类LSTM表现不佳?【发布时间】:2021-11-0705:01:17【问题描述】:我使用的是Windows10机器。库:带有Tensorflo... 查看详情

bert模型做多标签文本分类(代码片段)

Bert模型做多标签文本分类参考链接BERT模型的详细介绍图解BERT模型:从零开始构建BERT(强推)李宏毅2021春机器学习课程我们现在来说,怎么把Bert应用到多标签文本分类的问题上。注意,本文的重点是Bert的应用,对... 查看详情

使用 scikit-learn 进行多标签文本分类,使用哪些分类器?

】使用scikit-learn进行多标签文本分类,使用哪些分类器?【英文标题】:Multi-labeltextclassificationwithscikit-learn,whichclassifierstouse?【发布时间】:2018-07-2719:58:10【问题描述】:我已经使用导入这些分类器的scikit-learnPython库完成了文本... 查看详情