Press "Enter" to skip to content

使用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分词

 

这样我们就可以训练并使用模型了

 

经过测试,模型的准确率如下表所示:

 

leveltop1top5
10.50790.8331
20.36290.6668
30.33420.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.

 

Be First to Comment

发表回复

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