内容简介:本文介绍了一个基于fastText框架的开源学科分类工具的原理和使用方法。fastText是Facebook Research开源的文本分类和词训练工具在模型结构上,fastText使用
项目地址:https://github.com/AMinerOpen/prediction_api
本文介绍了一个基于fastText框架的开源学科分类 工具 的原理和使用方法。
fastText介绍
fastText是Facebook Research开源的文本分类和词训练工具 [1] ,具有快速、轻量的特点。
在模型结构上,fastText使用 cbow
[^2]架构,由输入层,隐藏层,输出层三层构成,结构如图所示。
为了提供词的顺序特征信息,fastText在统计语言模型上使用了n-gram模型^3,基于马尔科夫假设认为每个词的出现只与前面的$n$个词有关,即: $$ p(S) = \prod p(w i|w {i-1} \cdots w_{i-n+1}) $$ fastText使用了分层分类器,将不同的分类器整合到一个树形结构中,使用基于Huffman编码的层次softmax[^4]技巧,大幅减少了模型预测目标的数量,提高了计算速度。
模型的训练
fastText是一个轻量级框架,训练速度快,易于使用,这里只需要短短的几行代码即可构建模型。
该工具基于国家自然科学基金申请代码进行学科分类,因此使用的训练数据均为中文论文标题和对应的学科标签。为此在使用模型的时候,我们需要使用中文分词工具来进行分词,这里我们选用jieba分词
这样我们就可以训练并使用模型了
经过测试,模型的准确率如下表所示:
level | top1 | top5 |
---|---|---|
1 | 0.5079 | 0.8331 |
2 | 0.3629 | 0.6668 |
3 | 0.3342 | 0.6317 |
工具的使用
该项目包含两个分类工具,一个是基于NSFC的三级学科分类器 classifier.py
,另一个是专门针对AI学科的分类器 aiclassifier.py
,下面介绍一下工具的使用
环境的配置
创建虚拟环境
由于自行安装编译fastText比较麻烦,所以推荐使用 anaconda
完成运行环境的配置,首先创建一个虚拟环境
对于windows用户,使用如下命令激活虚拟环境
linux用户:
安装依赖包
该项目目前有如下依赖
-
fasttext
-
scikit-learn
-
jieba
-
requests
对于windows用户,使用以下命令安装依赖包:
但注意 mbednarski
是私人打包的为windows和 linux 用户提供的anaconda源,对于osx用户,可以使用官方源:
至此完成了依赖包的安装
三级学科分类
Classifier
类包含 classify
方法,接受一个包含论文标题的列表,返回一个字典,包含三级学科分类(字段level1~3)的代码、中文学科名以及对应的概率
以标题Annotating gene sets by mining large literature collections with protein networks为例说明如何使用这个工具。
得到了如下输出
AI学科分类
AIClassifier
类的使用与 Classifier
类相近,不过该类的 classify
方法返回的字典还提供了一个学科树,以 children
属性表示子树,下面是例子:
得到了如下输出:
以上便是这个学科分类工具的技术以及使用的介绍,大家快来试一试吧。
Reference
[ ^ 1] : https://github.com/facebookresearch/fastText/
[^2]: Efficient Estimation of Word Representations in Vector Space, Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean https://arxiv.org/pdf/1301.3781.pdf
[ ^3 ] : http://web.stanford.edu/~jurafsky/slp3/3.pdf
[^4]: Frederic Morin and Yoshua Bengio. Hierarchical probabilistic neural network language model. In Proceedings of the international workshop on artificial intelligence and statistics, pages 246–252, 2005.
AI Time:论道AI安全与伦理
时间:5月31日 15:00-17:00
地点:清华科技园1911主题餐厅
欢迎各位前来参加!
出席嘉宾:
清华大学人工智能研究院院长张钹
中国人民大学高瓴人工智能学院院长文继荣
搜狐网产品技术总监 杨田
主持人:
清华大学副教授刘知远
搜狐集团招聘负责人付卓艳
赶快戳下方小程序进入报名通道!
合作媒体:学术头条 搜狐
学术头条已建立微信交流群,想进群的同学请加学术君微信:AMiner308,记得备注:名字+单位/学校噢!
[关于转载]:本文为“学术头条”原创文章。转载仅限全文转载并保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“SciTouTiao”微信公众号。谢谢您的合作。
分享干货
AMiner迄今为止已发布18期AI系列研究报告,您可在后台回复 对应数字 获取报告。
推荐阅读:
清华大学人工智能研究院成立智能机器人研究中心,孙富春教授任中心主任
ICLR 2019论文主题|RL最受欢迎,RNN下降幅度最大,GAN仍在继续发展
清华大学和微软研究院联合发布的“开放学术图谱(OAG)2.0版本”数据完善
微信公众号菜单栏为大家设置了“ 论文推荐 ”和 “优质分享” 专栏,“北京讲座”移至“优质分享”专栏内,欢迎大家关注。
学术头条
发掘科技创新的原动力
您的转发就是我们最大的动力
点击阅读原文 访问项目地址
以上所述就是小编给大家介绍的《使用fastText构建学科分类工具》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- AI技术再寻突破口:多学科交叉与宽度学习
- 从MicroPython到TPYBoard 萝卜教育引领青少年学科式编程新标杆
- vueSSR: 从0到1构建vueSSR项目 --- 路由的构建
- 在 Android Studio 里使用构建分析器提升构建性能
- [译] 使用 React 和 ImmutableJS 构建一个拖放布局构建器
- 为 Envoy 构建控制面指南第4部分:构建的可扩展性
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。