百度开源的依存句法分析系统
共 3425字,需浏览 7分钟
·
2020-09-07 23:20
向AI转型的程序员都关注了这个号???
机器学习AI算法工程 公众号:datayx
依存句法分析是自然语言处理核心技术之一,旨在通过分析句子中词语之间的依存关系来确定句子的句法结构,如下图实例所示:
依存句法分析作为底层技术,可直接用于提升其他NLP任务的效果,这些任务包括但不限于语义角色标注、语义匹配、事件抽取等。该技术具有很高的研究价值及应用价值。为了方便研究人员和商业合作伙伴共享效果领先的依存句法分析技术,我们开源了基于大规模标注数据训练的高性能的依存句法分析工具,并提供一键式安装及预测服务,用户只需一条命令即可获取依存句法分析结果。
依存句法分析标注关系集合
DuCTB1.0数据集含14种标注关系,具体含义见下表:
项目介绍
DDParser(Baidu Dependency Parser)是百度自然语言处理部基于深度学习平台飞桨(PaddlePaddle)和大规模标注数据研发的依存句法分析工具。其训练数据不仅覆盖了多种输入形式的数据,如键盘输入query、语音输入query,还覆盖了多种场景的数据,如新闻、论坛。该工具在随机评测数据上取得了优异的效果。同时,该工具使用简单,一键完成安装及预测。
本项目所用方法出自论文《Deep Biaffine Attention for Neural Dependency Parsing》,也有对应的pytorch版本。
代码 以及运行教程 获取:
关注微信公众号 datayx 然后回复 句法分析 即可获取。
AI项目体验地址 https://loveai.tech
效果说明
CTB5: Chinese Treebank 5.0 是Linguistic Data Consortium (LDC)在2005年发布的中文句法树库,包含18,782条句子,语料主要来自新闻和杂志,如新华社日报。
DuCTB1.0:
Baidu Chinese Treebank1.0
是百度构建的中文句法树库,即本次所发布的依存句法分析工具-DDParser的训练数据来源,具体信息参见数据来源
注:由于CTB5数据集规模较小,最优模型(即评测模型)使用了句子的word级表示、POS(词性标签)表示、以及预训练词向量,而DuCTB1.0数据集规模较大,其最优模型仅使用了句子的word级和char级表示。
快速开始
版本依赖
python
: >=3.6.0paddlepaddle
: 1.8.2LAC
: >=0.1.4
一键安装
用户可以使用以下方式进行一键安装及预测:
pip安装 pip install ddparser
半自动安装 先从 https://pypi.org/project/ddparser/ 下载包,解压后使用
python setup.py install
安装包。
功能使用
未分词方式
代码示例
已分词方式
代码示例
注:标签含义见依存句法分析标注关系集合。
进阶使用
项目下载
用户可以通过git clone https://github.com/baidu/DDParser
下载源码,并且执行下列命令安装依赖库:
pip install --upgrade paddlepaddle-gpu
pip install --upgrade LAC
模型下载
我们发布了基于DuCTB1.0
训练的模型,通过执行cd ddparser && sh download_pretrained_model.sh
下载模型,模型将保存在./ddparser/model_files/baidu下。
训练
用户可以通过sh run_train.sh
训练模型。详细命令如下所示:
注:用户可通过修改train_data_path
, valid_data_path
和test_data_path
指定训练集,评估集和测试集, 参数含义见参数说明,所用数据集格式见数据格式说明。
评估
用户可以通过执行sh download_data.sh
下载我们提供的评估集,其将保存在./data/baidu/下。该评估集共2,592条句子,平均长度为11.27字符。
用户可以通过执行sh run_evaluate.sh
评估模型效果,详细命令如下所示:
注:用户可通过修改test_data_path
指定评估集,所用数据集格式见数据格式说明。
预测
基于源码,我们提供两种基于命令行的预测方法,分别用于已分词数据和未分词数据。
基于已分词数据的预测
预测的输入数据要求以CoNLL-X
(官方说明)格式组织,缺失字段使用“-”代替。通过执行sh run_predict.sh
进行预测,详细命令如下所示:
注:用户可通过修改infer_data_path
和infer_result_path
指定要预测的数据集和预测结果的路径。
基于未分词数据的预测
预测的输入数据为字符串形式,一行一条数据。通过执行sh run_predict_query.sh
对来自标准输入的数据进行预测,详细命令如下所示:
注:默认调用LAC
预测分词和词性
参数说明
数据格式说明
本项目数据格式基于CoNLL-X(官方说明)的风格,缺少的字段使用"-"代替(用户只用关注ID,FROM,HEAD,DEPREL,PROB等列即可),如“百度是一家高科技公司”的可解析为如下格式:
阅读过本文的人还看了以下文章:
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《深度学习入门:基于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
机大数据技术与机器学习工程
搜索公众号添加: datanlp
长按图片,识别二维码