快速使用 BERT 生成词向量:bert-as-service,bert生成句子向量和词向量

https://blog.csdn.net/qq_34832393/article/details/90414293

 

使用 bert-as-service 生成词向量

bert-as-service 是腾讯 AI Lab 开源的一个 BERT 服务,它让用户可以以调用服务的方式使用 BERT 模型而不需要关注 BERT 的实现细节。bert-as-service 分为客户端和服务端,用户可以从 python 代码中调用服务,也可以通过 http 的方式访问。

安装
使用 pip 命令进行安装,客户端与服务端可以安装在不同的机器上:

pip install bert-serving-server # 服务端

pip install bert-serving-client # 客户端,与服务端互相独立
 

下载预训练模型

根据 NLP 任务的类型和规模不同,Google 提供了多种预训练模型供选择:

  1. BERT-Base, Chinese: 简繁体中文, 12-layer, 768-hidden, 12-heads, 110M parameters
  2. BERT-Base, Multilingual Cased: 多语言(104 种), 12-layer, 768-hidden, 12-heads, 110M parameters
  3. BERT-Base, Uncased: 英文不区分大小写(全部转为小写), 12-layer, 768-hidden, 12-heads, 110M parameters
  4. BERT-Base, Cased: 英文区分大小写, 12-layer, 768-hidden, 12-heads , 110M parameters
  5. 也可以使用中文效果更好的哈工大版 BERT:Chinese-BERT-wwm

以上列出了几个常用的预训练模型,可以到 这里 查看更多。

解压下载到的 .zip 文件以后,会有 6 个文件:

TensorFlow 模型文件(bert_model.ckpt) 包含预训练模型的权重,模型文件有三个
字典文件(vocab.txt) 记录词条与 id 的映射关系
配置文件(bert_config.json ) 记录模型的超参


启动 BERT 服务


使用 bert-serving-start 命令启动服务:

bert-serving-start -model_dir /tmp/english_L-12_H-768_A-12/ -num_worker=2

其中,-model_dir 是预训练模型的路径,-num_worker 是线程数,表示同时可以处理多少个并发请求

如果启动成功,服务器端会显示:
å¨è¿éæå¥å¾çæè¿°

 

在客户端获取句向量

可以简单的使用以下代码获取语料的向量表示:

from bert_serving.client import BertClient
bc = BertClient()
doc_vecs = bc.encode(['First do it', 'then do it right', 'then do it better'])

 

你可能感兴趣的:(NLP)