其他分享
首页 > 其他分享> > fasttext介绍和实践(科室推荐)

fasttext介绍和实践(科室推荐)

作者:互联网

数据抽取:
获取主诉信息(主诉是医生对病人的症状及发展情况描述)、病人性别、年龄、科室信息

fasttext官网:https://fasttext.cc/docs/en/supervised-tutorial.html

fasttext介绍

FastText是Facebook研究团队创建的一个库,用于高效计算word representation和执行文本分类,可以在几秒内完成其他算法几天才可以完成的任务。

实践注意事项

数据预处理:

__label__神经内科 , 1 25 睡 眠 障 碍 1 月
__label__神经内科,0 80 吐 字 欠 清 、 吞 咽 困 难 5 月

如果为第二行格式,则模型会将0也作为预测输出。

参数选择:按照官方推荐的参数选择即可,可以多试几下,注意n-gram不要太大,不然容易过拟合

fasttext使用

参照官网
常用方法:

import fasttext
#训练模型
classifier = fasttext.train_supervised(input='train_data.txt', lr=1.0, epoch=25, wordNgrams=3, bucket=200000, dim=50, loss='hs')

#验证,返回类似(数量,accuracy,f1)
classifier.test('train_data.txt')

#保存和加载模型
classifier.save_model('fasttext_classifier.ftz')
model = fasttext.load_model('fasttext_classifier.ftz')

#预测结果,在输出3个最有可能的类别下,输出预测概率大于0.1的类别
model.predict("",k=3,threshold=0.1)

代码

主要三个模块:数据处理成fasttext格式,训练模型(多换几个参数)

代码如下:

由于内网,代码是用手机照的,不够清晰之处,敬请见谅
get_target_department是将医院科室与标准科室做对应,返回类似{‘消化内科门诊’:消化内科},键是该医院科室,值是标准科室

导包
在这里插入图片描述
数据处理(把数据很少的科室数据删除,不做该科室预测,将科室转换为标准科室),生成模型
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
验证效果,效果还不错,训练集f1达到98%,验证集也有90%,fasttext很强大

在这里插入图片描述

标签:__,fasttext,模型,实践,科室,主诉,classifier
来源: https://blog.csdn.net/weixin_38235865/article/details/117520430