哈工大LTP的依存分析
# 可视化
网址:http://ltp.ai/demo.html
LTP提供的模型有tiny、small和base。根据安装的LTP版本,模型的版本也需要匹配,否则可能会出现不兼容的情况
注:web demo运行的是base模型;在线的SDP解码是Graph和Tree混合解码,具体可以看一下4.0.X的源码
# 本地安装(Python版)
1. pip install ltp
2. 运行代码后报错
Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure.It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe
3. 根据报错里提供的网址下载 vc_redist.x64.exe 安装即可
4.1 报错
AttributeError: 'Version' object has no attribute 'major'
解决:packaging 包版本太低了,用命令pip install --upgrade packaging
更新 packaging
4.2 报错
KeyError: 'transformer_config'
解决:模型问题,参见链接 。打开C:\Anaconda3\Lib\site-packages\ltp下的frontend.py文件(4.1.x版本,老版本文件为ltp.py),修改如下(先把模型下载下来,然后修改路径)
model_map = {'base': 'http://39.96.43.154/ltp/v2/base.tgz','small': 'http://39.96.43.154/ltp/v2/small.tgz',# 'tiny': 'http://39.96.43.154/ltp/v2/tiny.tgz''tiny': 'w:/ltp/tiny.tgz'
}
注意:LTP 4.1.X 与旧版本 v1,v2 模型不兼容[来源],LTP 4.0.X 与 v3 也不兼容
联网自动下载的模型缓存在 C:\Users\用户名\.cache\torch\ltp
4.3 报错
sdp = ltp.sdp(hidden,graph=False)
3)TypeError: sdp() got an unexpected keyword argument 'graph'
解决:4.1.X 没有该参数了,只支持依存图
## 其他
除了安装ltp,之前有个版本pyltp,调用接口参数似乎更方便 [链接] [链接] [链接] [链接]
案例:基于哈工大LTP句子主干提取
# LTP:依存句法分析与语义依存分析的区别
虽然两者都借用了依存结构,但是依存句法分析与语义依存分析之间具有显著的区别。句法依存按照句法结构功能建立依存关系并为依存结构标注句法关系,更强调介词、助词等对句法结构划分的作用。而语义依存如前所说,注重实词之间语义事实上或逻辑上的关系。而句法的结构往往随着字面词语的变化而不同,相反语义则能够跨越句子表层的变化直达语义的本质 [来源]
与句法依存分析相比,语义依存分析能表达更深刻的语义信息,对于中文这种意合的语言尤为适合 [来源] 在中文界,最有影响力的标注方案是BH-SDP,由北京语言大学和哈尔滨工业大学联合制定 [来源]
区别于依存句法分析的树形结构,语义分析结果为一个有向无环图,称为语义依存图(Semantic Dependency Graph)[来源]
① 同一说法的不同表述
虽然三个句子拥有不同的句子结构, 产生了不同的句法分析结果, 但是三个句子中语言单元之间的语义关系并没有发生变化, 从"吃"
这个词来看, 它的主体, 客体...
都没有发生变化
对于表达同一意思的不同结构的句子来说,其依存句法分析的结果是不一样的,但是其语义依存分析的结果是一样的 [链接]
② 非实词在句子结构分析中的作用
第一,句法依存某种程度上更重视非实词(如介词)在句子结构分析中的作用,而语义依存更倾向在具有直接语义关联的实词之间建立直接依存弧,非实词作为辅助标记存在。
第二,两者依存弧上标记的语义关系完全不同,语义依存关系是由论元关系引申归纳而来,可以用于回答问题,如我在哪里喝汤,我在用什么喝汤。但是句法依存却没有这个能力(或者说句法分析树的结果是间接的,而语义依存图的结果是直接的。
# LTP:语义依存分析(依存树)和语义依存分析(依存图)的区别
传统的基于转移的依存分析算法,其最终得到得是一个依存树,这对依存分析存在一定限制,因此,最近几年提出的基于转移的语义依存图的解析,对依存分析进行了扩展 [链接]
与语义依存树不同,在依存图中,每个词的父节点个数是不确定的。这种不确定性使得用基于图的方法解决该问题变得很困难,因此我们选择了基于转移的方法,通过修改现有转移系统中的转移动作来直接生成语义依存图 [来源]
在语义依存树基础上做了突破,使得对连动、兼语、概念转位等汉语中常见的现象的分析更全面深入 [链接]
在原来的语义依存树中,受限于树结构,只能刻画出“有”与“儿子”之间的属事(Belg)关系。而在语义依存图中,除了该关系之外,还刻画出了“儿子”与“上”之间的施事(Agt)关系。语义依存图对语义关系更完整的覆盖,为获取句中实词之间的语义关系提供了更方便的工具。例如在“他有个儿子才上小学。”这句话中,如果要回答“谁在上小学”这个问题,语义依存图能够直接提供答案,而语义依存树则不能。
语义依存树与语义依存图的主要区别在于,在依存树中,任何一个成分都不能依存于两个或两个以上的成分,而在依存图中则允许句中成分依存于两个或两个以上的成分。且在依存图中允许依存弧之间存在交叉,而依存树中不允许 [链接]
与语义依存树分析相比,语义依存图能更全面、灵活的表示句子中的语义关系 [来源]
问题:为什么上面描述的和LTP在线演示出来的效果不一致
# 嵌套关系
用来标记一个事件降级充当了另一个事件的成分
如句子“爷爷看见小孙女在操作计算机”,划线部分为一个降级事件充当动词“看见”的“客事”角色dCont [来源]
# 附录
LTP 使用的是863词性标注集
语义依存分析的标注方案是BH-SDP
哈工大 LTP 标注文档介绍
词性标注集pos/tag | 依存句法分析标注集dep | 语义依存分析标注集sdp | |
LTP | 863词性标注集 | BH-DEP | BH-SDP |
SpaCy | 基于Google Universal POS Tag set扩展 | 采用了 ClearNLP 的依存分析标签 | - |
DDParser | 百度构建的标注集 | DuCTB | - |
HanLP | CTB、PKU、863、UD | SD、UD | SemEval16、DM、PAS、PSD |
stanford corenlp | Penn Chinese Treebank Tag Set(CTB) | 没找到说明采用的标注集 [链接] | - |
jieba | 和 ictclas 兼容的标记法 | 不支持 | 不支持 |
# 工具学习系列
- 哈工大LTP的依存分析
- 百度DDParser的依存分析
- HanLP的依存分析
Spacy的依存分析
# 参考资料
中文语义依存分析语料库
哈工大SCIR:语言技术平台(LTP)发布新功能:中文语义依存图分析
哈工大SCIR:中文语义依存分析—通往中文语义理解的一条蹊径
哈工大SCIR:基于转移的语义依存图分析 (原理
哈工大LTP的依存分析相关推荐
- 利用好手头的资源解决海量语料资源收集以及利用哈工大的LTP云平台解决依存句法和语义依存分析
一.利用好手头的资源解决海量语料资源 基于语料做机器学习需要海量数据支撑,如何能不存一点数据获取海量数据呢?我们可以以互联网为强大的数据后盾,搜索引擎为我们提供了高效的数据获取来源,结构化的搜索结果展 ...
- NLP-文本处理:词性标注【使用成熟的第三方工具包:中文(哈工大LTP)、英文()】【对分词后得到的“词语列表”进行词性标注,词性标注的结果用于依存句法分析、语义角色标注】
词性: 语言中对词的一种分类方法,以语法特征为主要依据.兼顾词汇意义对词进行划分的结果, 常见的词性有14种, 如: 名词, 动词, 形容词等. 顾名思义, 词性标注(Part-Of-Speech t ...
- 使用哈工大LTP做自然语言处理任务基础demo
LTP4 文档:https://ltp.readthedocs.io/zh_CN/latest/ Github地址:https://github.com/HIT-SCIR/ltp 哈工大LTP官网模型 ...
- 7.中文句法依存分析
1.概念 句法分析是自然语言处理(NLP)中的关键技术之一,其基本任务是确定句子的句法结构或者句子中词汇之间的依存关系.主要包括两方面的内容:一是确定语言的语法体系,即对语言中合法句子的语法结构给予形 ...
- 利用依存分析完成开放领域关系抽取
利用依存分析完成开放领域关系抽取 1 问题描述 对于大规模的自由文本内容,完成开放领域三元组的抽取.即在不知道文本内容存在什么关系的情况下,抽取各种各样的关系,以三元组的形式表示出来.就是说,我们的目 ...
- 依存句法分析与语义依存分析的区别
github开源代码:https://github.com/lhyxcxy/nlp 依存句法分析 依存语法 (Dependency Parsing, DP) 通过分析语言单位内成分之间的依存关系揭 ...
- NLP_learning 中文基本任务与处理(分词、停用词、词性标注、语句依存分析、关键词抽取、命名实体识别)介绍、jieba工具库
文章目录 1.分词 2.停用词和N-gram 停用词 N-gram 3. 更多任务(词性标注.依赖分析.NER.关键词抽取) 词性标注 句法依存分析 命名实体识别 关键词抽取 4. jieba工具库使 ...
- cs224n第六讲依存分析
1.句法结构:成分结构和依存结构 两种角度的语言结构: 句子成分语法=短语结构语法=上下文无关语法 Constituency = phrase structure grammar = context- ...
- 句法分析:依存分析(Dependency Parsing)
目录 1. 句法分析任务分类 2. 依存分析方法 2.1 什么是依存分析 2.2 传统的基于转移的依存分析(Transition-based Parsing) 2.3 神经依存分析(Neural De ...
最新文章
- 关系数据库是如何工作的
- C#new出来的结构体内存分配在堆上
- KEIL5 编译器导致的程序异常
- Path(2)之verp中path position和path length的区别
- python怎么用字符画_用Python把图片变成字符画
- 查看服务器ip配置信息失败,U-Center 纳管戴尔的服务器报错“报错获取厂商信息失败,请确认IP、用户名、密码 、厂商、协议与配置文件是否正确”...
- 对长度为200的有序表进行二分查找_程序员常用的查找算法(顺序、二分、插值、分块、斐波那契)...
- 实训汇编语言设计——内存多字节10进制数相加
- MATLAB控制系统视频教程
- 帝搜软件新功能发布:知乎关键词seo排名优化上线
- 中国最美的十大宗教名山(图)
- 【串讲总结】涵盖ML/DL/NLP/推荐/风控/数学等知识点汇总列表
- kettle 用cmd bat来运行ktr和kjb
- ACCV2020国际细粒度网络图像识别亚军方案总结
- Twitter注册如何做到ip防关联
- Python数据分析入门笔记4——数据预处理之重复值
- linux查找最近文件在哪里,Linux查找最近修改的文件
- Android原生系统开发如何优雅的提供系统级的API供第三方程序调用?
- IDEA开发常用便捷插件
- IDEA安装和使用教程,idea 安装本地插件