Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问可以用在中文的多标签文本分类上吗? #6

Open
kaohaochuan opened this issue Sep 22, 2020 · 10 comments
Open

请问可以用在中文的多标签文本分类上吗? #6

kaohaochuan opened this issue Sep 22, 2020 · 10 comments

Comments

@kaohaochuan
Copy link

我的研究是多标签的文本分类(multi label classification)
类别有九个 但不是多元分类(multi class classification)
例子都是多元分类(multi class classification)
请问有实作在多标签分类(multi label classification)的文本上吗?

@Magicat128
Copy link
Collaborator

你好 @lockingkao

目前还没有支持 multi-label 问题,如果不修改代码可以同时训练多个二分类模型,可能会比较慢,或者根据问题调整代码。

@kaohaochuan
Copy link
Author

@Magicat128 感谢您的回覆
目前已经训练过多个二分类模型,但想试试看修改代码使代码适用于 multi-label 问题
目前的想法是将标签转为one hot encoding 并将最后一层改成sigmoid
感谢大神 我还是菜鸟
请问您有什么建议呢。

@Magicat128
Copy link
Collaborator

@lockingkao

应该是可以的,将标签改为one-hot,softmax改为sigmoid,损失函数可能也要相应改成sigmoid_cross_entropy_with_logits。
参考 Example

@kaohaochuan
Copy link
Author

kaohaochuan commented Nov 23, 2020

@Magicat128 你好大神,我已经将标签改为one-hot,softmax改为sigmoid,损失函数改成sigmoid_cross_entropy_with_logits。
确定可以跑多标签的模型!谢谢您的帮助!
另外想问,您的代码在运行文本不平衡的资料时是否会出现precision,recall,f1-score为0的状况呢?
image
我的九个标签中,有五个是标签0,1不平均的!
结果都是0,想请问大神是代码的问题吗?

UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use zero_division parameter to control this behavior.
_warn_prf(average, modifier, msg_start, len(result))
/opt/conda/envs/hckao-textING/lib/python3.6/site-packages/sklearn/metrics/_classification.py:1221: UndefinedMetricWarning: Recall and F-score are ill-defined and being set to 0.0 in samples with no true labels. Use zero_division parameter to control this behavior.

@Magicat128
Copy link
Collaborator

Magicat128 commented Dec 4, 2020

@lockingkao

抱歉回复晚了。应该是因为y_true中的标签有的没出现在y_pred中,导致指标计算有除0存在,和代码应该没有关系。建议要么解决样本不均衡的问题,要么加上zero_division=1忽略这一问题 https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html

@kaohaochuan
Copy link
Author

kaohaochuan commented Dec 23, 2020

@Magicat128
您好 谢谢你的回覆
请问您有尝试将textING做在中文的数据上吗?
因为我一样将中文多标签文本跟标签用成你要的输入格式(已经断过词)
但是用textING train时,完全train不起来(有画train loss ,val loss ,图形十分奇怪)
有将文本down sampling成balanced data,但还是没有好的结果!

但是用相同的前处理,textGCN可以跑!
我亦有将textGCN , textING跑过 mr的英文数据集,可以跑.
但中文只有textGCN可以跑.

希望大神能解答,是否 textING无法用中文数据集跑,还有资料平衡的问题.

@bp20200202
Copy link

@Magicat128
您好 谢谢你的回覆
请问您有尝试将textING做在中文的数据上吗?
因为我一样将中文多标签文本跟标签用成你要的输入格式(已经断过词)
但是用textING train时,完全train不起来(有画train loss ,val loss ,图形十分奇怪)
有将文本down sampling成balanced data,但还是没有好的结果!

但是用相同的前处理,textGCN可以跑!
我亦有将textGCN , textING跑过 mr的英文数据集,可以跑.
但中文只有textGCN可以跑.

希望大神能解答,是否 textING无法用中文数据集跑,还有资料平衡的问题.

请问您在中文训练集上运行成功了吗,我也想把这个模型用到中文数据集上,但是会有错,请问您是怎么解决的?

@kaohaochuan
Copy link
Author

@Magicat128
您好 谢谢你的回覆
请问您有尝试将textING做在中文的数据上吗?
因为我一样将中文多标签文本跟标签用成你要的输入格式(已经断过词)
但是用textING train时,完全train不起来(有画train loss ,val loss ,图形十分奇怪)
有将文本down sampling成balanced data,但还是没有好的结果!
但是用相同的前处理,textGCN可以跑!
我亦有将textGCN , textING跑过 mr的英文数据集,可以跑.
但中文只有textGCN可以跑.
希望大神能解答,是否 textING无法用中文数据集跑,还有资料平衡的问题.

请问您在中文训练集上运行成功了吗,我也想把这个模型用到中文数据集上,但是会有错,请问您是怎么解决的?

我用的是中文多标签文本分类 效果蛮差的
改的是sigmoid_cross_entropy 跟最后一层的sigmoid
请问您遇到的困难跟错误是?
而且我将learning curve 画出来的图形模型没办法收敛
欢迎一起讨论!

@bp20200202
Copy link

@ Magicat128
您好谢谢你的回覆
请问您有尝试将texting做在中文的数据上吗?
因为我一样将中文多标签文本跟标签用成你要的输入格式(已经断过词)
但是用texting train时,完全火车不起来(有画火车损失,val损失,图形十分奇怪)
有将文本向下采样成平衡数据,但还是没有好的结果!
但是用相同的前处理,textGCN可以跑!
我亦有将textGCN ,texting跑过mr的英文数据集,可以跑。
但中文只有textGCN可以跑。
希望大神能解答,是否texting无法使用中文数据集跑,还有数据平衡的问题。

请问您在中文训练集上运行成功了吗,我也想把这个模型用到中文数据集上,但是会有错,请问您是怎么​​解决的?

我用的是中文多标签文本分类效果蛮差的
改的是sigmoid_cross_entropy跟最后一层的sigmoid请问
您遇到的困难跟错误是?
而且我将学习曲线画出来的图形模型没办法收敛
欢迎一起讨论!

我就在两个标签的中文文本分类上尝试了一下,说是维度不一致的问题,感觉应该是语言不一样的事。

@kaohaochuan
Copy link
Author

@ Magicat128
您好谢谢你的回覆
请问您有尝试将texting做在中文的数据上吗?
因为我一样将中文多标签文本跟标签用成你要的输入格式(已经断过词)
但是用texting train时,完全火车不起来(有画火车损失,val损失,图形十分奇怪)
有将文本向下采样成平衡数据,但还是没有好的结果!
但是用相同的前处理,textGCN可以跑!
我亦有将textGCN ,texting跑过mr的英文数据集,可以跑。
但中文只有textGCN可以跑。
希望大神能解答,是否texting无法使用中文数据集跑,还有数据平衡的问题。

请问您在中文训练集上运行成功了吗,我也想把这个模型用到中文数据集上,但是会有错,请问您是怎么​​解决的?

我用的是中文多标签文本分类效果蛮差的
改的是sigmoid_cross_entropy跟最后一层的sigmoid请问
您遇到的困难跟错误是?
而且我将学习曲线画出来的图形模型没办法收敛
欢迎一起讨论!

我就在两个标签的中文文本分类上尝试了一下,说是维度不一致的问题,感觉应该是语言不一样的事。

二元分类的任务的话不用改太多,记得先用 jieba 分词 先断词后再放进corpus中
你有按照 label 跟 corpus的格式吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants