用于中文的文本领域分类。分类依据为国民经济行业分类(GB/T 4754—2017),基本覆盖了国民经济全行业,共支持18个大类行业的分类:交通运输仓储邮政、住宿餐饮、信息软件、农业、制造业、卫生医疗、国际组织、建筑、房地产、政府组织、教育、文体娱乐、水利环境、电力燃气水生产、科学技术、租赁法律、采矿、金融。
每个领域的具体内容,详见《2017年国民经济行业分类(GB/T 4754—2017)》。
该模型基于FastText训练,无需GPU即可进行高效推理,训练数据为阿里内部数据,在内部测试集上,18个行业平均分类准确率为63.44%,Top 3命中率(Recall@3)为80.64%。
该模型可用于中文句子级别的领域分类,分类结果可用于模型选择、数据分析等。
在安装ModelScope完成后即可使用
from modelscope.pipelines import pipeline
p = pipeline('text-classification', model='damo/nlp_domain_classification_chinese')
print(p('通过这种方式产生的离子吸收大地水分之后,可以通过潮解作用,将活性电解离子有效释放到周围土壤中,使接地极成为一个离子发生装置,从而改善周边土质使之达到接地要求。'))
通常单个句子的领域信息很难明确,建议作为句子级分类工具,对输出概率在篇章或者段落级聚合,会更为准确
源自阿里内部数据
基于FastText训练
采用sentencepiece进行分词,并和label进行拼接
spm_encode --model ./sentencepiece.model < train.text > train.sp
paste -d ' ' train.label train.sp > train.input
基于CPU训练即可
fastText/fasttext supervised -dim 256 -wordNgrams 3 -epoch 3 -thread 32 \
-input train.input \
-output savedModel
模型在内部测试集上的评估结果
label | Precision | Recall | F1-score |
---|---|---|---|
交通运输仓储邮政 | 67.77 | 67.33 | 67.55 |
住宿餐饮 | 78.78 | 85.82 | 82.15 |
信息软件 | 67.22 | 62.49 | 64.77 |
农业 | 71.91 | 79.68 | 75.60 |
制造业 | 64.70 | 60.28 | 62.41 |
卫生医疗 | 69.06 | 83.86 | 75.74 |
国际组织 | 83.15 | 88.72 | 85.85 |
建筑 | 80.96 | 66.92 | 73.27 |
房地产 | 46.99 | 29.29 | 36.08 |
政府组织 | 28.46 | 38.44 | 32.71 |
教育 | 63.00 | 64.67 | 63.82 |
文体娱乐 | 47.32 | 38.61 | 42.52 |
水利环境 | 52.28 | 54.35 | 53.30 |
电力燃气水生产 | 58.60 | 68.42 | 63.13 |
科学技术 | 71.20 | 72.09 | 71.64 |
租赁法律 | 62.40 | 59.47 | 60.90 |
采矿 | 58.48 | 54.82 | 56.59 |
金融 | 73.20 | 66.81 | 69.86 |
平均Recall@K
K | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Recall@K | 63.44 | 74.68 | 80.64 | 84.69 | 87.69 | 90.14 | 92.04 | 93.56 | 94.92 | 96.00 | 96.88 | 97.68 | 98.31 | 98.90 | 99.40 | 99.70 | 99.90 | 100.00 |