使用fastText构建学科分类工具

栏目: 编程工具 · 发布时间: 4年前

内容简介:本文介绍了一个基于fastText框架的开源学科分类工具的原理和使用方法。fastText是Facebook Research开源的文本分类和词训练工具在模型结构上,fastText使用

项目地址:https://github.com/AMinerOpen/prediction_api

本文介绍了一个基于fastText框架的开源学科分类 工具 的原理和使用方法。

fastText介绍

fastText是Facebook Research开源的文本分类和词训练工具 [1] ,具有快速、轻量的特点。

在模型结构上,fastText使用 cbow [^2]架构,由输入层,隐藏层,输出层三层构成,结构如图所示。

使用fastText构建学科分类工具

为了提供词的顺序特征信息,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,记得备注:名字+单位/学校噢!

使用fastText构建学科分类工具

[关于转载]:本文为“学术头条”原创文章。转载仅限全文转载并保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“SciTouTiao”微信公众号。谢谢您的合作。

使用fastText构建学科分类工具

微信公众号菜单栏为大家设置了“ 论文推荐 ”和 “优质分享” 专栏,“北京讲座”移至“优质分享”专栏内,欢迎大家关注。

使用fastText构建学科分类工具

使用fastText构建学科分类工具

学术头条

发掘科技创新的原动力

您的转发就是我们最大的动力

点击阅读原文 访问项目地址


以上所述就是小编给大家介绍的《使用fastText构建学科分类工具》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript修炼之道

JavaScript修炼之道

波顿纽威 / 巩朋、张铁 / 人民邮电 / 2011-11 / 29.00元

《JavaScript修炼之道》是JavaScript的实战秘籍。作者将自己多年的编程经验融入其中,不仅可以作为学习之用,更是日常JavaScript开发中不可多得的参考手册,使读者少走很多弯路。《JavaScript修炼之道》的内容涵盖了当今流行的JavaScript库的运行机制,也提供了许多应用案例。《JavaScript修炼之道》针对各任务采取对页式编排,在对各任务的讲解中,左页解释了任务的......一起来看看 《JavaScript修炼之道》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具