VnCoreNLP依存句法分析详解:越南语语法结构解析与20个高频关系标签速查
VnCoreNLP依存句法分析详解越南语语法结构解析与20个高频关系标签速查【免费下载链接】VnCoreNLPA Vietnamese natural language processing toolkit (NAACL 2018)项目地址: https://gitcode.com/gh_mirrors/vn/VnCoreNLPVnCoreNLP依存句法分析是越南语自然语言处理工具包 VnCoreNLP 的核心组件之一它能够在切词、词性标注和命名实体识别之后自动解析出越南语句子中词与词之间的语法关系并输出每个词的主词head索引与依存关系标签。借助这一能力开发者可以轻松构建越南语语法分析、信息抽取、机器翻译等上层应用。本文将从原理、输出格式到实战技巧为你完整拆解 VnCoreNLP 依存句法分析并附上一份可以直接收藏的 20 个高频越南语依存关系标签速查表。什么是依存句法分析越南语语法结构为何需要它依存句法分析Dependency Parsing通过建立支配词 → 从属词的有向弧来描述句子结构。每个词都指向它的主词head主词与从属词之间标注一个依存关系标签dependency relation label例如主语sub宾语dob。越南语属于典型的孤立语分析语几乎没有格标记和词形变化语法结构高度依赖词序和虚词。正因如此越南语语法结构分析对依存句法分析的依赖尤为明显——分词之后只有搞清楚谁是谓语、谁是主语、谁修饰谁机器才能真正理解一句话。VnCoreNLP 将整个流程封装为一条流水线切词wseg→ 词性标注pos→ 命名实体识别ner→ 依存句法分析parse。句法分析环节使用在VnDTVietnamese Dependency Treebank语料上训练的 transition-based 解析器模型文件位于 models/dep/vi-dep.xz对应实现见源码 DependencyParser.java。VnCoreNLP 依存句法分析输出格式6列信息一次看懂默认情况下VnCoreNLP 依存句法分析的输出采用 6 列制表符分隔格式每一行对应一个词列号内容说明1word index词在句中的序号从 1 开始2word form词形切词后复合词用下划线连接3POS tag词性标签如 Np、Nc、V、R、E 等4NER label命名实体类型如 B-PER、B-ORG、O5head index该词主词的序号0 表示根节点6dependency relation依存关系标签如 sub、nmod、adv以官方示例句Ông Nguyễn Khắc Chúc đang làm việc tại Đại học Quốc gia Hà Nội.阮克珠先生正在河内国家大学工作为例1 Ông Nc O 4 sub 2 Nguyễn_Khắc_Chúc Np B-PER 1 nmod 3 đang R O 4 adv 4 làm_việc V O 0 root 5 tại E O 4 loc 6 Đại_học N B-ORG 5 pob读法很简单第 4 行的 head 是 0说明làm_việc工作是整句的根节点第 1 行Ông的 head 是 4说明它从属于第 4 个词关系为sub主语。这 6 列输出格式由 Word.java 中的toString()方法定义句子级组装逻辑见 Sentence.java。用一棵树直观理解越南语句子结构把上面的 6 列输出还原成树形图句子结构一目了然làm_việc (4) ← root句根 / | \ sub adv loc / | \ Ông (1) đang (3) tại (5) | | nmod pob | | Nguyễn_Khắc_Chúc (2) Đại_học (6)Ông先生类别名词做主语subNguyễn_Khắc_Chúc是它的名词修饰语nmodđang正在是时间状语advtại在引导地点状语locĐại_học大学是介词宾语pob。这种从根节点出发、逐层挂载的结构正是越南语语法结构解析的核心产出也是后续做语义角色标注、关系抽取的基础。20个高频越南语依存关系标签速查表官方文档 TagsetDescription.md 将出现率不低于 0.2% 的依存标签定义为高频标签。其中dep是兜底的默认标签其余 20 个高频关系标签可按下表速查句法核心成分7个标签含义一句话理解root根节点句子的中心head 为 0sub主语动作的发出者dob直接宾语动作的直接承受者iob间接宾语动作的间接对象如送书给他prd谓语/表语系动词后的补足成分conj连词连接连词引导的从属成分coord并列结构两个同等成分并列修饰与限定成分5个标签含义一句话理解nmod名词修饰语名词修饰名词amod形容词修饰语形容词修饰名词adv状语修饰动词/句子的副词vmod动词修饰语修饰动词的补足成分det限定词这/那/每等限定成分语义角色状语5个标签含义一句话理解loc地点动作发生的地点tmp时间动作发生的时间dir方向动作的方向mnr方式动作的方式prp目的动作的目的介词结构与标点3个标签含义一句话理解pob介词宾语介词后面的宾语pmod介词修饰语介词短语修饰名词punct标点逗号、句号等符号 技巧如果解析结果出现了无法归入上述类别的标签多半就是默认标签dep。此外标点符号会被统一处理为punct这一逻辑写在 DependencyParser.java 中——当词性标签为CH标点时强制赋予punct。快速上手VnCoreNLP 依存句法分析的命令行与 API 用法第一步准备运行环境VnCoreNLP 只需要Java 1.8环境。将VnCoreNLP-1.2.jar与models目录放在同一工作目录即可无需任何外部依赖。如果你想从源码构建或查看实现也可以克隆仓库git clone https://gitcode.com/gh_mirrors/vn/VnCoreNLP.git第二步命令行一键解析java -Xmx2g -jar VnCoreNLP-1.2.jar -fin input.txt -fout output.txt其中-fin指定输入文本文件-fout指定输出文件。默认执行wseg,pos,ner,parse全部四个步骤如果只想做切词与词性标注、暂不需要依存句法分析可以这样限定java -Xmx2g -jar VnCoreNLP-1.2.jar -fin input.txt -fout output.txt -annotators wseg,pos第三步Python 与 Java 调用Python 用户可以通过py_vncorenlp包装器直接调用import py_vncorenlp model py_vncorenlp.VnCoreNLP(save_dir/path/to/vncorenlp) model.print_out(model.annotate_text(Ông Nguyễn Khắc Chúc đang làm việc tại Đại học Quốc gia Hà Nội.))Java 用户则在annotators数组中传入parse即可启用依存句法分析完整可运行示例见 VnCoreNLPExample.java流水线入口逻辑见 VnCoreNLP.java。越南语依存句法分析常见问题与技巧如何找到句子的核心谓语看 head 为 0 的那一行它就是整棵依存树的根节点通常对应句子的谓语动词。如何判断两个词是否有直接关系遍历第 5 列 head 索引凡是 head 指向同一个词的节点彼此就是兄弟关系。如何区分 sub 和 nmod关键在于位置sub是谓语的语法主语而nmod是名词内部的修饰关系。例如上面例子中Ông是sub而Nguyễn_Khắc_Chúc只是Ông的nmod。为什么要先切词再解析越南语空格隔开的未必是词如Nguyễn_Khắc_Chúc是一个专名VnCoreNLP 会先用下划线合并多音节词再交由依存解析器处理这也是越南语语法结构解析与英语的关键差异。输出结果如何接下游任务借助依存树可以低成本实现主谓宾三元组抽取subdob、事件论元标注loc/tmp/mnr、短语级信息检索等是越南语 NLP 应用的重要基础。结语VnCoreNLP 依存句法分析让越南语语法结构解析变得开箱即用一个 jar 包、一条命令就能拿到高质量的 6 列依存标注结果。配合本文的 20 个高频关系标签速查表相信你已经能读懂任何一句越南语的依存树。更多标签细节可参考官方文档 TagsetDescription.md 与树库说明 VnDT-treebank-description.pdf动手跑一个句子你就能立刻体会到越南语语法结构解析的乐趣。【免费下载链接】VnCoreNLPA Vietnamese natural language processing toolkit (NAACL 2018)项目地址: https://gitcode.com/gh_mirrors/vn/VnCoreNLP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考