当前位置:网站首页>论文阅读_中文NLP_LTP
论文阅读_中文NLP_LTP
2022-07-05 17:16:00 【xieyan0811】
英文题目:N-LTP: An Open-source Neural Language Technology Platform for Chinese
中文题目:开源中文神经网络语言技术平台N-LTP
论文地址:https://arxiv.org/pdf/2009.11616v4.pdf
领域:自然语言处理
发表时间:2021
作者:Wanxiang Che等,哈工大
出处:EMNLP
被引量:18+
代码和数据:https://github.com/HIT-SCIR/ltp
阅读时间:22.06.20
读后感
它是一个基于Pytorch的针对中文的离线工具,带训练好的模型,最小模型仅164M。直接支持分词,命名实体识别等六种任务,六种任务基本都围绕分词、确定词的成份、关系。
实测:比想象中好用,如果用于识别人名,效果还可以,直接用于垂直领域,效果一般,可能还需要进一步精调。

文章贡献
- 支持六项中文自然语言任务。
- 基于多任务框架,共享知识,减少内存用量,加快速度。
- 高扩展性:支持用户引入的BERT类模型。
- 容易使用:支持多语言接口 C++, Python, Java, Rust
- 达到比之前模型更好的效果
设计和架构

图-2展示了软件架构,由一个多任务共享的编码层和各任务别实现的解码层组成。
共享编码层
使用预训练的模型 ELECTRA,输入序列是s=(s1,s2,…,sn),加入符号将其变成 s = ([CLS], s1, s2, . . . , sn, [SEP]),请见BERT原理,输出为对应的隐藏层编码
H = (h[CLS],h1, h2, . . . , hn, h[SEP])。
中文分词 CWS
将编码后的H代入线性解码器,对每个字符分类:

y是每个字符类别为各标签的概率。
位置标注 POS
位置标注也是NLP中的一个重要任务,用于进一步的语法解析。目前的主流方法是将其视为序列标注问题。也是将编码后的H作为输入,输出位置的标签:

y是该位置字符属于某一标签的概率,其中i是位置信息。
命名实体识别 NER
命名实体识别的目标是寻找实体的开始位置和结束位置,以及该实体的类别。工具中使用Adapted-Transformer方法,加入方向和距离特征:

最后一步也使用线性分类器计算每个词的类别:

其中y是NER属于某一标签的概率。
依赖性解析 DEP
依赖性解析主要是分析句子的语义结构(详见网上示例),寻找词与词之间的关系。软件中具体使用了双仿射神经网络和einser算法。

语义依解析 SDP
与依赖性分析相似,语义依赖分析也是捕捉句子的语义结构。它将句子分析成一棵依存句法树,描述出各个词语之间的依存关系。也即指出了词语之间在句法上的搭配关系,这种搭配关系是和语义相关联的。具体包括:主谓关系SBV,动宾关系VOB,定中关系ATT等,详见:
从0到1,手把手教你如何使用哈工大NLP工具——PyLTP
具方法是查找语义上相互关联的词对,并找到预定义的语义关系。实现也使用了双仿射模型。

当p>0.5时,则认为词 i 与 j 之间存在关联。
语义角色标注 SRL
语义角色标注主要目标是识别句子以谓语为中心的结构,具体方法是使用端到端的SRL模型,它结合了双仿射神经网络和条件随机场作为编码器,条件随机场公式如下:

其中f用于计算从yi,j-1到yi,j的转移概率。
知识蒸馏
为了比较单独训练任务和多任务训练,引入了BAM方法:
用法
安装
$ pip install ltp
在线demo
http://ltp.ai/demo.html
示例代码
from ltp import LTP
ltp = LTP()
seg, hidden = ltp.seg(["他叫汤姆去拿外衣。"])
pos = ltp.pos(hidden)
ner = ltp.ner(hidden)
srl = ltp.srl(hidden)
dep = ltp.dep(hidden)
sdp = ltp.sdp(hidden)
其中seg函数实现了分词,并输出了切分结果,及各词的向量表示。
精调模型
下载源码
$ git clone https://github.com/HIT-SCIR/ltp
在其 ltp 目录中有 task_xx.py,可训练及调优模型,用法详见py内部的示例。形如:
python ltp/task_segmention.py --data_dir=data/seg --num_labels=2 --max_epochs=10 --batch_size=16 --gpus=1 --precision=16 --auto_lr_find=lr
实验
Stanza是支持一个多语言的NLP工具,中文建模效果比较如下:

另外,实验也证明,使用联合模型速度更快,占用内存更少。
参考
边栏推荐
- 为什么阳历中平年二月是28天
- QT控制台打印输出
- Error in compiling libssh2. OpenSSL cannot be found
- 解读:如何应对物联网目前面临的安全问题?
- Mongodb (quick start) (I)
- 解决“双击pdf文件,弹出”请安装evernote程序
- Vulnerability recurrence - 48. Command injection in airflow DAG (cve-2020-11978)
- Cartoon: interesting [pirate] question
- Force deduction solution summary 729- my schedule I
- Rider 设置选中单词侧边高亮,去除警告建议高亮
猜你喜欢

How to write a full score project document | acquisition technology

Short the command line via jar manifest or via a classpath file and rerun

winedt常用快捷键 修改快捷键latex编译按钮
Redis+caffeine two-level cache enables smooth access speed

Machine learning 01: Introduction
Oracle缩表空间的完整解决实例
Example tutorial of SQL deduplication

WR | Jufeng group of West Lake University revealed the impact of microplastics pollution on the flora and denitrification function of constructed wetlands

解决“双击pdf文件,弹出”请安装evernote程序

Use of ThinkPHP template
随机推荐
What are the precautions for MySQL group by
2022年信息系统管理工程师考试大纲
C # mixed graphics and text, written to the database in binary mode
外盘黄金哪个平台正规安全,怎么辨别?
Cartoon: how to multiply large integers? (I) revised version
查看自己电脑连接过的WiFi密码
Alpha conversion from gamma space to linner space under URP (II) -- multi alpha map superposition
CMake教程Step1(基本起点)
VBA驱动SAP GUI实现办公自动化(二):判断元素是否存在
How to write a full score project document | acquisition technology
Short the command line via jar manifest or via a classpath file and rerun
Mysql5.6 parsing JSON strings (supporting complex nested formats)
Ordinary programmers look at the code, and top programmers look at the trend
机器学习02:模型评估
About JSON parsing function JSON in MySQL_ EXTRACT
一文了解Go语言中的函数与方法的用法
统计php程序运行时间及设置PHP最长运行时间
goto Statement
Use of ThinkPHP template
解决“双击pdf文件,弹出”请安装evernote程序