bert获取词向量做textcnn文本分类
生活随笔
收集整理的這篇文章主要介紹了
bert获取词向量做textcnn文本分类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
BERT其中的一個重要作用是可以生成詞向量
下面介紹獲取詞向量的方法
獲取BERT詞向量的時候用到了肖涵博士的bert-as-service,具體使用方式如下。
環境要求:python版本>=3.5,tensorflow版本>=1.10
相關包的安裝:
pip install??bert-serving-server
pip install?bert-serving-client
下載訓練好的BERT中文模型:https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip
啟動bert-as-service :
在cmd窗口進入bert-serving-start.exe所在的文件夾(一般這個文件在python安裝路徑下的Scripts文件夾下),
在該文件路徑下輸入 bert-serving-start ?-model_dir C:\Users\admin\Desktop\text_cf\chinese_L-12_H-768_A-12
測試一下
from bert_serving.client import BertClientbc = BertClient()d=bc.encode(['你好','我','朋友'])>>>array([[ 0.28940195, -0.13572705, 0.07591176, ..., -0.14091267,0.5463005 , -0.30118063],[-0.17258267, 0.05145651, 0.3027011 , ..., 0.06416287,0.11442862, -0.33527803],[-0.16574037, 0.29926932, 0.00558878, ..., -0.14497901,0.64227146, -0.3119482 ]], dtype=float32)接下來正式工作
# 讀取數據 df = pd.read_csv(...)# 把https://github.com/google-research/bert的tokenization.py下載該文件路徑下 from tokenization import BasicTokenizertokenizer = BasicTokenizer() # 進行分詞處理 df['cutted'] = df['text'].apply(lambda x: tokenizer.tokenize(x))def padding_sentences(input_sentences, padding_token, padding_sentence_length = 200):sentences = [sentence for sentence in input_sentences]max_sentence_length = padding_sentence_lengthl=[]for sentence in sentences:if len(sentence) > max_sentence_length:sentence = sentence[:max_sentence_length]l.append(sentence)else:sentence.extend([padding_token] * (max_sentence_length - len(sentence)))l.append(sentence)return (l, max_sentence_length)# 截取文本固定長度 sentences, max_document_length = padding_sentences(df['cutted'], '[UNK]')from bert_serving.client import BertClientbc = BertClient() vec=[] for i in range(len(sentences)):bert_vec=bc.encode(sentences[i])print(i,bert_vec.shape)vec.append(bert_vec)bert_vec=np.array(vec) #這里注意時間復雜度會很大,慎用# 向量獲取成功,接下來可參照https://blog.csdn.net/hufei_neo/article/details/98732734 # 做接下來的textcnn文本分類工作?
總結
以上是生活随笔為你收集整理的bert获取词向量做textcnn文本分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学会低调
- 下一篇: (转)移动端自适应方案