学习谷歌开源的 BERT
算法及在NLP中的应用建议按以下步骤展开:
步骤1:阅读谷歌的 BERT
算法特性的论文中文翻译版: BERT:预训练的深度双向 Transformer 语言模型 可以先仔细阅读,了解 BERT
的基本原理和特性。
步骤2:阅读BERT
算法应用于中文分析的文章,如下所列:
- BERT中文实战(文本相似度) https://blog.csdn.net/weixin_37947156/article/details/84877254
NLP - 基于 BERT 的中文命名实体识别(NER) http://www.zhuanzhi.ai/document/4ae9cdca89d996f4dd5f41a38bd48bca
BERT在中文数据集上的fine tune全攻略 http://www.elecfans.com/d/821907.html
BERT使用详解(实战) https://www.jianshu.com/p/bfd0148b292e
步骤3:应用 BERT
做中文的命名实体识别/关键信息提取
可以参考下列资料
- 使用预训练语言模型BERT做中文NER https://github.com/ProHiryu/bert-chinese-ner
- 使用kashgari包做中文NLP高级任务 https://github.com/BrikerMan/Kashgari
- Google Colab实战-基于Google BERT的中文命名实体识别 https://blog.csdn.net/weixin_42441790/article/details/86751031
- 五分钟搭建一个基于BERT的NER模型 https://www.jianshu.com/p/1d6689851622
- 15分钟搭建中文文本分类模型 https://eliyar.biz/nlp_chinese_text_classification_in_15mins/
步骤4:利用 BERT
进行中文NLP语义分析,可以参见LongGang Pang, from UC Berkeley 的实践案例:https://gitlab.com/snowhitiger/speakerextraction 增进了解如何实际应用。
BERT应用之《红楼梦》对话人物提取
- 这个目录包含用于提取对话人物语境的脚本 conversation_extraction.ipynb,
- 辅助打标签的脚本 label_data_by_click_buttons.ipynb,
- 提取出的语境文件:honglou.py
- 打过标签的训练数据:label_honglou.txt
- 从打过标签的数据合成百万级别新数据的脚本:augment_data.py
- 将训练数据转换为BERT/SQUAD可读的脚本:prepare_squad_data.py 以及预测结果文件:
- res.txt (使用36000组数据训练后的预测结果);
- res_1p2million.txt(使用120万组数据训练后的预测结果)。
- res_crf.txt: 使用条件随机场预测的结果。
- bert_vs_crf.txt: BERT 与 条件随机场预测结果的不同条目的对比。
对比8和9之后发现使用更多的数据训练所提升的效果有限,比较大的提升是后者在没有答案时,输出是输入的完整拷贝。