书写自动智慧文本分类器的开发与应用:支持多分类、多标签分类、多层级分类和 Kmeans 聚类
书写自动智慧文本分类器的开发与应用:支持多分类、多标签分类、多层级分类和 Kmeans 聚类
文本分类器,提供多种文本分类和聚类算法,支持句子和文档级的文本分类任务,支持二分类、多分类、多标签分类、多层级分类和 Kmeans 聚类,开箱即用。python3 开发。
Classifier 支持算法
[x] LogisticRegression
[x] Random Forest
[x] Decision Tree
[x] K-Nearest Neighbours
[x] Naive bayes
[x] Xgboost
[x] Support Vector Machine(SVM)
[x] TextCNN
[x] TextRNN
[x] Fasttext
[x] BERT
Cluster
[x] MiniBatchKmeans
While providing rich functions, pytextclassifier internal modules adhere to low coupling, model adherence to inert loading, dictionary publication, and easy to use.
安装
Requirements and Installation
or
1. English Text Classifier
包括模型训练、保存、预测、评估等
examples/lr_en_classification_demo.py:
output:
2. Chinese Text Classifier(中文文本分类)
文本分类兼容中英文语料库。
example examples/lr_classification_demo.py
output:
3.可解释性分析
例如,显示模型的特征权重,以及预测词的权重 examples/visual_feature_importance.ipynb
output:
4. Deep Classification model
本项目支持以下深度分类模型:FastText、TextCNN、TextRNN、Bert 模型,import
模型对应的方法来调用:
下面以 FastText 模型为示例,其他模型的使用方法类似。
4.1 FastText 模型
训练和预测FastText
模型示例examples/fasttext_classification_demo.py
4.2 BERT 类模型
4.2.1 多分类模型
训练和预测BERT
多分类模型,示例examples/bert_classification_zh_demo.py
PS:如果训练数据超过百万条,建议使用 lazy_loading 模式,减少内存占用
4.2.2 多标签分类模型
分类可以分为多分类和多标签分类。多分类的标签是排他的,而多标签分类的所有标签是不排他的。
多标签分类比较直观的理解是,一个样本可以同时拥有几个类别标签,比如一首歌的标签可以是流行、轻快,一部电影的标签可以是动作、喜剧、搞笑等,这都是多标签分类的情况。
训练和预测BERT
多标签分类模型,示例examples/bert_multilabel_classification_zh_demo.py.py
5.模型验证
THUCNews 中文文本数据集(1.56GB):官方下载地址,抽样了 10 万条 THUCNews 中文文本 10 分类数据集(6MB),地址:examples/thucnews_train_10w.txt。
TNEWS 今日头条中文新闻(短文本)分类 Short Text Classificaiton for News,该数据集(5.1MB)来自今日头条的新闻版块,共提取了 15 个类别的新闻,包括旅游,教育,金融,军事等,地址:tnews_public.zip
在 THUCNews 中文文本 10 分类数据集(6MB)上评估,模型在测试集(test)评测效果如下:
在中文新闻短文本分类数据集 TNEWS 上评估,模型在开发集(dev)评测效果如下:
以上结果均为分类的准确率(accuracy)结果
THUCNews 数据集评测结果可以基于
examples/thucnews_train_10w.txt
数据用examples
下的各模型 demo 复现TNEWS 数据集评测结果可以下载 TNEWS 数据集,运行
examples/bert_classification_tnews_demo.py
复现
命令行调用
提供分类模型命令行调用脚本,文件树:
每个文件对应一个模型方法,各模型完全独立,可以直接运行,也方便修改,支持通过argparse
修改--data_path
等参数。
直接在终端调用 fasttext 模型训练:
6.文本聚类算法
Text clustering, for example examples/cluster_demo.py
output:
clustering plot image:
参考链接:https://github.com/shibing624/pytextclassifier
更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。
版权声明: 本文为 InfoQ 作者【汀丶人工智能】的原创文章。
原文链接:【http://xie.infoq.cn/article/a9cafc1779178550fbc223b48】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论