Bert 预处理模型是谷歌于2018年末发布的state of the art 模型,所以就研究一下
文本分类:
传统的中文文本分类主要包括分词(jieba),特征提取(chi-square),特征权重(tfidf),分类模型(SVM)等步骤
现在用到的其实主要都是深度学习模型。主要如CNN,LSTM,Attention等模型。流程上也是分词,词向量embedding,模型如上所述用来自动提取特征,分类模型一般用softmax作为最后一层。
一些技巧:
- 中文可以采用字向量或者分词后的词向量
- 词向量可以random,finetune,static
- 词向量方法可以word2vec, glove, fasttext, 以及合成版本
- 模型的选择
bert tensorflow的版本其实google直接发布好了,只需要根据自己的数据加一个processor。具体可参考
https://github.com/LongxingTan/Text_classification
同时,bert的tensorflow版本用了TensorFlow的tf.data 与tf.estimator系列的API。同时保存为二进制的tf_record都是为了更快的完成训练。具体实现就很简单了,
从谷歌个google-bert下载中文预训练,模型里面可以直接从最后一层的最后一个状态输出,后面接一个dropout和dense层就完成模型搭建了。
因为模型困难部分其实都有谷歌训练完成,已经具备了文本的理解。
实体命名
然后也抓紧用了一下实体命名,区别应该就是bert这次输出的不光是最后一个状态,而是sequence output。其他就同样加上crf层就搞定了,简单试了一下也可以跑了
https://github.com/LongxingTan/Named_entity_recognition
transformer 帮助理解的资料
http://nlp.seas.harvard.edu/2018/04/03/attention.html
[http://jalammar.github.io/illustrated-transformer/]
(http://jalammar.github.io/illustrated-transformer/)
网友评论