1. 使用FastText原因使用FastText原因快FastText最初训练语料是英文英文天然支持每个单词之间是有空格的所以中文相较英文语料的文本分类任务或者词嵌入都会多一步分词FastText 对输入数据有格式要求难点在于将数据处理为符合FastText 的格式文本句子分词后拼接_label_xxx2. 代码结构图3. 基于FastText分类建模思路3.1 分词对数据train.txt等相关文件的文本列进行 分词处理两种处理思路字符级别以及词级别。(按照单字符级别分字处理或者使用jieba分词器进行词级别分词处理)② 利用FastText库进行建模、评估与保存。③ 模型预测④ 模型部署提供api接口⑤ 前端预测实现4. 代码4.1 配置文件ft01_config.py配置1.原始数据路径、2.处理好(分词后)的数据 存放路径、3.模型保存路径、5.是否使用字符级别的分词4.2 数据预处理4.1 分词两种处理思路字符级别以及词级别按照单字符级别分字处理或者使用jieba分词器进行词级别分词处理4.3 auto自动调参1. 原始的模型未使用自动调参modelfasttext.train_supervised(input./data/train_fastText_jieba.txt)# train_xx 训练集2. FastTest使用自动调参① input训练集训练多组不同超参数的模型② autotuneValidationFile验证集评估每组超参数的效果最终选出在验证集上表现最好的那组超参数。开启自动调参。当传入这个参数fasttext会进入自动调参模式自动搜索最优的超参数组合如学习率 lr、epoch 数、ngram 阶数、词向量维度 dim 等。如果不传不会自动调参值是验证集③ autotuneDuration调参搜索的总时间秒即自动搜索最优的超参数组合时间越长搜索越充分④ thread指定训练时使用的 CPU 线程数量3-用 3 个 CPU 线程并行训练⑤ verbose输出日志详细程度值越大输出的日志越详细0-静默不输出任何信息、1-只输出关键信息如最终结果、2-输出训练进度如每个 epoch 的 loss、3-最详细输出调参全过程的详细信息3-输出最详细的调参日志⑥ seed设置 随机数种子确保每次运行代码时结果一致可复现性。modelfasttext.train_supervised(input./data/train_fastText_jieba.txt,# train_xx 训练集# autotuneValidationFile当传入这个参数fasttext会进入自动调参模式自动搜索最优的超参数组合# 如学习率 lr、epoch 数、ngram 阶数、词向量维度 dim 等。如果不传不会自动调参autotuneValidationFile./data/dev_fastText_jieba.txt,# dev_xx 验证集# 调参搜索的总时间秒时间越长搜索越充分autotuneDuration120,# 搜索的时间 默认300sthread3,# 单线程确保可复现性verbose3,# 输出调参过程seed42)