使用BERT获取中文词向量

BERT其中的一个重要作用是可以生成词向量,它可以解决word2vec中无法解决的一词多义问题。

然而BERT获取词向量的门槛要比word2vec要高得多。笔者在这里介绍一下如何获取BERT的词向量。

笔者在获取BERT词向量的时候用到了肖涵博士的bert-as-service具体使用方式如下。

  1. 环境要求:python版本>=3.5,tensorflow版本>=1.10(笔者使用的是1.12)
  2. 相关包的安装:pip install  bert-serving-server; pip install bert-serving-client
  3. 下载训练好的BERT中文模型:https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip
  4. 启动bert-as-service :在cmd窗口进入bert-serving-start.exe所在的文件夹,在该文件路径下输入bert-serving-start  -model_dir E:/chinese_L-12_H-768_A-12 -num_worker=2(训练好的中文模型路径,num_worker的数量可以自行选择),如果成功开启则出现以下界面

接着可以在pycharm终端写入以下代码:


  
  
  1. from bert_serving.client import BertClient
  2. bc = BertClient()
  3. print(bc.encode([ '中国', '美国']))

可得到词向量为(词向量的维度为768):

获取完BERT词向量后就可以结合CNN、RNN等模型来实现自己的任务。在博客写作的过程中参考以下网址:

https://www.jianshu.com/p/bafdd927ef02

https://www.gaozhengjie.cn/archives/240/

BERT其中的一个重要作用是可以生成词向量,它可以解决word2vec中无法解决的一词多义问题。

猜你喜欢

转载自blog.csdn.net/zhonglongshen/article/details/88125958
今日推荐