bert使用

bert安装:
首先安装tensorflow,然后安装bert的包
这里好像有个坑是bert适用的tensorflow版本要小于2,但是直接安装的话应该是比较新的tensorflow版本,所以最好安装的时候注意一下。

pip install tensorflow
pip install bert-serving-server
pip install bert-serving-client
#镜像安装:pip install bert-serving-server -i https://pypi.tuna.tsinghua.edu.cn/simple/

然后下载bert预训练的模型:
地址:https://github.com/google-research/bert#pre-trained-models
bert使用_第1张图片
在这里自行选择合适的包。
在使用bert的时候要在命令行一直运行:

bert-serving-start -pooling_strategy NONE -model_dir g:/chinese_L-12_H-768_A-12 -num_worker=1 -max_seq_len=100

-pooling_strategy NONE如果加这个参数的话,表明输出的是词向量,如果不加,输出就是句向量。-model_dir是之前安装的预训练模型的位置,-max_seq_len=100表明单次处理句子的最大长度是100.

一直等到出现:
在这里插入图片描述
说明可以开始使用了。
一个例子:

from bert_serving.client import BertClient
bc = BertClient(ip='localhost',check_version=False, check_length=False)
vec = bc.encode(['中文知识服务集团,业务有信息传播、技术交流、教育培训和专业技术人才服务。旗下有网络社区、学习平台和交流平台。'])
# print(vec)
# print(type(vec))
print(vec.shape)
print(vec[0][55])
print(len('中文知识服务集团,业务有信息传播、技术交流、教育培训和专业技术人才服务。旗下有网络社区、学习平台和交流平台。'))
##output
#(1, 100, 768)
#[-4.98340614e-02 -2.98149362e-02  4.43814732e-02  1.57387182e-02...]
#54

vec[0][55]中的0表示当前list中的第0个句子,55表示文本中的第54个词向量。
使用bert进行预训练的时候要输入一批句子,千万不要把bert用在循环里。
这样得到的每个句子对应的词向量的维度就是字数*768了。
然后进行下一步任务吧!!!

参考地址:
https://blog.csdn.net/renyuanfang/article/details/86701148

你可能感兴趣的:(bert使用)