[原创] 使用 fastText 做中文文本分类(4)

 开始训练第一个文本分类模型
标注好的数据,其格式为:

__label__科技 月 10 日 网通 社从 高合 汽车 获悉 华人 运通 微软 2020 世界 人工智能 大会 云端 峰会 WAIC 2020 上 达成 战略 合作 依托 微软 小冰 人工智能 技术 高合 汽车 上 落地 全球 首个 主动式 人工智能 伙伴 HiPhiGo 用户 提供 更好 交通 出行 体验 人工智能 交通 行业 创新 融合 发展 探讨 成立 联合 智能 计算 实验室 智能 汽车 载体 智捷 交通 多个 领域 展开 深度 合作 人工智能 前瞻 技术 研发 推动 智慧 出行 社会 持续 发展 微软 亚洲 互联网 工程院 院长 王永东 微软 华人 运通 合作 使 人工智能 技术 切实可行 落地 场景 得以 转化 真实有效 生产力 发挥 更大 价值 微软 华人 运通 携手 推进 人工智能 新兴 科技 汽车 智慧 智慧 出行 领域 广泛应用 产业 升级 社会 持续 发展 注入 新 活力 华人 运通 董事长 丁磊 此次 合作 顶级 人工智能 企业 智能 汽车 公司 强强 联手 AI 多项 领先 技术 全球 汽车行业 首次 量产 落地 世界 内 技术 领先 性 首款 智能 汽车 高合 HiPhi 有条不紊 推进 全球 首条 车路 协同 自动 驾驶 智能化 城市道路 示范 项目 盐城 开通 试运行 再 全球 首个 车路 城 一体化 5G 无人驾驶 交通 运营 样板 上海 张江 未来 公园 成功 落地 华人 运通 以人为本 人性化 需求 出发 人性化 智慧 打造 智能 汽车 智捷 交通 智慧 城市 三智 战略 各项 业务 稳步 推进 高合 首款 量产 车 HiPhi 2020 年底 小批量 试生产 2021 年 上市 交付

按 fastText 的指南,把这份数据按大概 9:1 的比例,分成training集和validation集,然后开始训练模型:

./fasttext supervised -input labeled-data_train -output model

其中,labeled-data_train 是training集文件,model 是输出模型的文件名前缀。
经过一段时间的等待(速度很快),当前目录下就生成了模型文件:model.binmodel.vec

现在可以用validation集来检验一下模型效果了:

./fasttext test model.bin labeled-data_valid 1

其中,labeled-data_valid 是validation集文件,1表示只预测top 1的label。
输出:

N 10705
P@1 0.842
R@1 0.842
Precision为0.842,Recall为0.842。这个结果还可以,但还能优化。
文章来源:https://www.codelast.com/
 模型调优
设置更详细的参数重新训练模型:
./fasttext supervised -input labeled-data_train -output model -lr 1.0 -epoch 25 -wordNgrams 2
其中:
-lr 1.0 表示 learning rate 设置成 1.0(通常值:0.1 ~ 1.0)。
-epoch 25 表示迭代的轮数设置成 25。
-wordNgrams 2 表示n-gram的值,一般使用2,表示2-gram。
这样训练出来的模型,再做一次test,结果变好了一些:

N 10705
P@1 0.878
R@1 0.878
这里只对模型优化做了简单的尝试。

 交互模式下预测文本的分类
执行以下命令:

./fasttext predict model.bin -

fastText会加载 model.bin 模型,进入交互模式,等待用户输入。
此时输入的应该是分好词之后的文本,例如“网通 社从 高合 汽车 获悉 华人 运通 微软 2020 世界 人工智能 大会 云端 峰会 WAIC 2020 上 达成 战略 合作”。一回车,fastText马上会返回该段文本的预测分类:

__label__科技

这是个比较方便的调试方法。

文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤ 
转载需注明出处:codelast.com 
感谢关注我的微信公众号(微信扫一扫):

wechat qrcode of codelast

发表评论

电子邮件地址不会被公开。 必填项已用*标注