NeuralNLP-NeuralClassifier的使用记录(二),训练预测自己的【中文文本多分类】

NeuralNLP-NeuralClassifier的使用记录,训练预测自己的【中文文本多分类】

数据准备:

​ 与英文的训练预测一致,都使用相同的数据格式,将数据通过代码处理为JSON格式,以下是我使用的一种,不同的原数据情况会有所改动:

复制代码
import jieba.analyse as ana
import re
import jieba

def make_data_json(df,outpath):
    def stop_words(path):
        txt = open(outpath,"r",encoding='utf-8') 
        lines = txt.readlines()
        txt.close()
        stop_txt = []
        for line in lines:
            stop_txt.append(line.strip('\n'))
        return stop_txt
    
    
    with open(outpath, "w+", encoding='utf-8') as f:
        
        # with open(output_path, "w") as fw:
        for indexs in df.index:
            dict1 = {}
            dict1['doc_label'] = [str(df.loc[indexs].values[0])]
            doc_token = df.loc[indexs].values[1]
            # 只保留中文、大小写字母和阿拉伯数字
            reg = "[^0-9A-Za-z\u4e00-\u9fa5]"
            doc_token = re.sub(reg, '', doc_token)
            print(doc_token)
            # 中文分词
            seg_list = jieba.cut(doc_token, cut_all=False)
            #$提取关键词,20个:
            ana.set_stop_words('./人工智能挑战赛-文本分类/停用词列表.txt')
            keyword = ana.extract_tags(doc_token, topK=20,withWeight=False,)   #True表示显示权重
            # 去除停用词
            content = [x for x in seg_list if x not in stop_words('../data/stop_words.txt')]
            dict1['doc_token'] = content
            dict1['doc_keyword'] = keyword
            dict1['doc_topic'] = []
            # 组合成字典
            print(dict1)
            # 将字典转化成字符串
            json_str = json.dumps(dict1, ensure_ascii=False)
            f.write('%s\n' % json_str)

使用构造JSON数据方法:

训练前期准备:

1、创建中文数据文件夹,Chinese_datas,

2、创建该数据的文本数据对应的标签集Chinese_label.taxonomy

3、创建该数据的训练配置文件Chinese_train_conf.json,

继续目录如下:

配置文件的注意点:

其中需要额外修改的地方:

work_nums=0

以及涉及代码中,有读取文件的部分都需要给编码中文编码:

with open(encoding='utf-8')

训练:

训练代码:

复制代码
python train.py conf/Chinese_train_conf.json

训练后生成的权重文件,在配置文件中就写出了:

预测:

复制代码
python predict.py conf/Chinese_train_conf.json Chinese_datas/predict_data.json

预测结果:

可以看出预测效果仅一个错误,该模型方便NLP的比赛分类等,准确率也很高。

代码获取:

下载就是中文分类版,在命令界面进行命令行输入,训练和预测,:

链接:https://pan.baidu.com/s/1fw_ipmOFWMiTLAFrs9i5ig

提取码:2023

相关推荐
菠菠萝宝15 分钟前
【Java手搓RAGFlow】-9- RAG对话实现
java·开发语言·人工智能·llm·jenkins·openai
大佬,救命!!!1 小时前
最新的python3.14版本下仿真环境配置深度学习机器学习相关
开发语言·人工智能·python·深度学习·机器学习·学习笔记·环境配置
工业机器视觉设计和实现1 小时前
用caffe做个人脸识别
人工智能·深度学习·caffe
paperxie_xiexuo1 小时前
从研究问题到分析初稿:深度解析PaperXie AI科研工具中数据分析模块在学术写作场景下的辅助逻辑与技术实现路径
人工智能·数据挖掘·数据分析
一水鉴天1 小时前
整体设计 定稿 之9 拼语言工具设计之前 的 备忘录仪表盘(CodeBuddy)
人工智能·架构·公共逻辑
IT_陈寒2 小时前
Python性能提升50%:这5个隐藏技巧让你的代码快如闪电⚡
前端·人工智能·后端
AI大模型学徒3 小时前
NLP基础(九)_N-gram模型
人工智能·自然语言处理·nlp·n-gram
极客BIM工作室3 小时前
理清 BERT 中 [CLS] 向量的核心逻辑:训练双向更新与推理作用不矛盾
人工智能·机器学习·bert
IT·小灰灰3 小时前
基于Python的机器学习/数据分析环境搭建完全指南
开发语言·人工智能·python·算法·机器学习·数据分析