向AI轉型的程序員都關注了這個號👇👇👇python
機器學習AI算法工程 公衆號:datayxgit
Tensorflow solution of NER task Using BiLSTM-CRF model with Google BERT Fine-tuning程序員
如今可使用下面的命令下載軟件包了:github
pip install bert-base==0.0.7 -i https://pypi.python.org/simpleweb
或者使用基於源代碼的安裝:面試
git clone https://github.com/macanv/BERT-BiLSTM-CRF-NER算法
cd BERT-BiLSTM-CRF-NER/json
python3 setup.py installflask
若是沒啥問題,你將會看到這個:windows
筆者在windows10/ Linux/ Mac OSX上都測試過,安裝沒有問題。
軟件包如今支持的功能
命名實體識別的訓練
命名實體識別的服務C/S
繼承優秀開源軟件:bert_as_service(hanxiao)的BERT全部服務
基於bert命名行訓練命名實體識別模型:
安裝完bert-base後,會生成兩個基於命名行的工具,其中bert-base-ner-train支持命名實體識別模型的訓練,你只須要指定訓練數據的目錄,BERT相關參數的目錄便可。可使用下面的命令查看幫助
bert-base-ner-train -help
訓練命名實體識別的例子以下:
參數說明
其中data_dir是你的數據所在的目錄,訓練數據,驗證數據和測試數據命名格式爲:train.txt, dev.txt,test.txt,請按照這個格式命名文件,不然會報錯。
訓練數據的格式以下:
每行得第一個是字,第二個是它的標籤,使用空格’ '分隔,請必定要使用空格。句與句之間使用空行劃分。程序會自動讀取你的數據。
output_dir:訓練模型輸出的文件路徑,模型的checkpoint以及一些標籤映射表都會存儲在這裏,這個路徑在做爲服務的時候,能夠指定爲-ner_model_dir
init_checkpoint: 下載的谷歌BERT模型
bert_config_file :谷歌BERT模型下面的bert_config.json
vocab_file:谷歌BERT模型下面的vocab.txt
訓練完成後,你能夠在你指定的output_dir中查看訓練結果。
將命名實體識別任務進行服務部署
做爲服務的不少代碼都來自優秀的開源項目: bert as service of hanxiao
https://github.com/hanxiao/bert-as-service
做爲服務的命名是:bert-base-serving-start,一樣的,你能夠先使用-help查看相關幫助
bert-base-serving-start -help
做爲命名實體識別任務的服務,這兩個目錄是你必須指定的:ner_model_dir, bert_model_dir
而後你就可使用下面的命令啓動了:
參數解釋
bert_model_dir: 谷歌BERT模型的解壓路徑,能夠在這裏下載 https://github.com/google-research/bert
model_dir: 訓練好的NER模型或者文本分類模型的路徑,對於上面的output_dir
model_pd_dir: 運行模型優化代碼後, 通過模型壓縮後的存儲路徑,例如運行上面的命令後改路徑下會產生 ner_model.pb 這個二進制文件
mode:NER 或者是BERT這兩個模式,類型是字符串,若是是NER,那麼就會啓動NER的服務,若是是BERT,那麼具體參數將和[bert as service] 項目中得同樣。
我提供了命名實體識別pb模型下載:
https://pan.baidu.com/s/1m9VcueQ5gF-TJc00sFD88w,
提取碼: guqq
文本分類模型:https://pan.baidu.com/s/1oFPsOUh1n5AM2HjDIo2XCw, 提取碼: bbu8
文本分類使用的是bert中的demo:run_classxxx.py,在運行的時候使用Pickle序列化了label_list和id2label折兩個變量。
將 ner_mode.pb/classification_model.pb 文件放到 model_pd_dir目錄下,將命名識別的label_list.pkl和id2map.pkl不一樣的模型不一樣的文件夾,由於他們同名,可是內容不同,須要區分開來
命名實體識別模型只支持人名,地名,住址機構名的識別,在個人測試數據上有95.6%的F1值(實體級別的得分)
文本分類模型數據來自清華大學的文本分類數據:http://thuctc.thunlp.org/ , 在測試數據上準確率爲98%~99%的準確率
若是使用的下載的模型,你可使用下面的命令啓動,替換你本身的路徑便可:
你將會看到下面的啓動信息(啓動log有點多,分兩張圖截):
在本地鏈接服務端進行命名實體識別的測試
你可使用下面的代碼進行服務的鏈接,在本地進行NER測試,客戶端代碼以下:
運行後,會輸出下面的信息:
結果說明:
返回的結果就是序列標註的結果
到此,基於命令行的用法已經講完,不明白的地方請評論或者在GitHub上提交issue,以爲有用。
原文地址
https://blog.csdn.net/macanv/article/details/85684284
閱讀過本文的人還看了如下文章:
《深度學習入門:基於Python的理論與實現》高清中文PDF+源碼
2019最新《PyTorch天然語言處理》英、中文版PDF+源碼
《21個項目玩轉深度學習:基於TensorFlow的實踐詳解》完整版PDF+附書代碼
PyTorch深度學習快速實戰入門《pytorch-handbook》
【下載】豆瓣評分8.1,《機器學習實戰:基於Scikit-Learn和TensorFlow》
李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材
【Keras】完整實現‘交通標誌’分類、‘票據’分類兩個項目,讓你掌握深度學習圖像分類
如何利用全新的決策樹集成級聯結構gcForest作特徵工程並打分?
Machine Learning Yearning 中文翻譯稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特徵工程
不斷更新資源
深度學習、機器學習、數據分析、python
搜索公衆號添加: datayx
QQ羣
333972581
本文分享自微信公衆號 - 機器學習AI算法工程(datayx)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。