向AI轉型的程式設計師都關注了這個號👇👇👇
機器學習AI算法工程 公眾號:datayx
網上也有很多使用BERT的例子和教程,但是我覺得都不是很完整,有些缺乏注釋對新手不太友好,有些則是問題不同修改的代碼也不同,自己也在路上遇到了不少的坑。所以記錄一下。
項目代碼 獲取方式:
關注微信公眾號 datayx 然後回復 命名實體 即可獲取。
AI項目體驗地址 https://loveai.tech
數據集tmp 文件夾下
如上圖,對數據集進行了分割,其中source是訓練集中文,target是訓練集的label。
test1 測試集,test_tgt 測試集label。dev 驗證集 dev-lable 驗證集label。
數據格式
注意BERT分詞器在對字符分詞會遇到一些問題。
比如 輸入叩 問 澳 門 =- =- =- 賀 澳 門 回 歸 進 入 倒 計 時 ,label :O O B-LOC I-LOC O O O O B-LOC I-LOC O O O O O O O
會把輸入的=- 處理成兩個字符,所以會導致label對應不上,需要手動處理一下。比如如下每次取第一個字符的label。其實這個問題在處理英文會遇到,WordPiece會將一個詞分成若干token,所以需要手動處理(這只是一個簡單處理方式)。
其中共設置了10個類別,PAD是當句子長度未達到max_seq_length時,補充0的類別。
CLS是每個句首前加一個標誌[CLS]的類別,SEP是句尾同理。(因為BERT處理句子是會在句首句尾加上這兩個符號。)
代碼
其實BERT需要根據具體的問題來修改相對應的代碼,NER算是序列標註一類的問題,可以算分類問題吧。
然後修改的主要是run_classifier.py部分即可,我把修改下遊任務後的代碼放到了run_NER.py裡。
代碼中除了數據部分的預處理之外,還需要自己修改一下評估函數、損失函數。
訓練
首先下載BERT基於中文預訓練的模型(BERT官方github頁面可下載),存放到BERT_BASE_DIR文件夾下,之後將數據放到NER_DIR文件夾下。即可開始訓練。sh run.sh
實驗結果總結其實在讀了BERT的論文後,結合代碼進行下遊任務的微調能夠理解的更深刻。
其實改造下遊任務主要是把自己數據改造成它們需要的格式,然後將輸出類別根據需要改一下,然後修改一下評估函數和損失函數。
如下圖根據具體的下遊任務修改label即可。如下圖的第四個就是在NER上進行修改,
之後會寫一篇Attention is all you need 和 bert論文的詳解,會結合代碼來解釋一下細節,比如Add & Norm是如何實現的,為什麼要Add & Norm。== 感覺不用寫了 bert已經火遍大街了 不重複造輪子了。建議大家直接莽原始碼和論文。
閱讀過本文的人還看了以下文章:
【全套視頻課】最全的目標檢測算法系列講解,通俗易懂!
《美團機器學習實踐》_美團算法團隊.pdf
《深度學習入門:基於Python的理論與實現》高清中文PDF+源碼
2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
《21個項目玩轉深度學習:基於TensorFlow的實踐詳解》完整版PDF+附書代碼
《深度學習之pytorch》pdf+附書源碼
PyTorch深度學習快速實戰入門《pytorch-handbook》
【下載】豆瓣評分8.1,《機器學習實戰:基於Scikit-Learn和TensorFlow》
《Python數據分析與挖掘實戰》PDF+完整源碼
汽車行業完整知識圖譜項目實戰視頻(全23課)
李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材
筆記、代碼清晰易懂!李航《統計學習方法》最新資源全套!
《神經網絡與深度學習》最新2018版中英PDF+源碼
將機器學習模型部署為REST API
FashionAI服裝屬性標籤圖像識別Top1-5方案分享
重要開源!CNN-RNN-CTC 實現手寫漢字識別
yolo3 檢測出圖像中的不規則漢字
同樣是機器學習算法工程師,你的面試為什麼過不了?
前海徵信大數據算法:風險概率預測
【Keras】完整實現『交通標誌』分類、『票據』分類兩個項目,讓你掌握深度學習圖像分類
VGG16遷移學習,實現醫學圖像識別分類工程項目
特徵工程(一)
特徵工程(二) :文本數據的展開、過濾和分塊
特徵工程(三):特徵縮放,從詞袋到 TF-IDF
特徵工程(四): 類別特徵
特徵工程(五): PCA 降維
特徵工程(六): 非線性特徵提取和模型堆疊
特徵工程(七):圖像特徵提取和深度學習
如何利用全新的決策樹集成級聯結構gcForest做特徵工程並打分?
Machine Learning Yearning 中文翻譯稿
螞蟻金服2018秋招-算法工程師(共四面)通過
全球AI挑戰-場景分類的比賽源碼(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(列印收藏)
python+flask搭建CNN在線識別手寫中文網站
中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特徵工程
不斷更新資源
深度學習、機器學習、數據分析、python
搜索公眾號添加: datayx
長按圖片,識別二維碼,點關注
機器學習算法資源社群
不斷上傳電子版PDF資料
技術問題求解
QQ群號: 333972581
長按圖片,識別二維碼
海淘美妝