依存句法分析的TOK和REL的位置偏差
你好,我在用hanlp对句子做依存句法分析的过程中发现:有一些TOK和REL对不上。
下面是一些问题和例子。
问题1:
我理解”与“ 应该对应COO。但我发现,COO会被标记在”和”,”与“这些字的上一个位置。
例子1:
sentence = '当前由于硅片环节格局尚好,盈利性能够维持,电池与组件环节已经微利,头部企业市占率提升。
从依存关系图来看,电池是COO,与是LAD。
依存关系树如下:
Dep Tree Tok Rel
──────────────────── ─── ───
┌──────────────────► 当前 ADV
│ ┌────────► 由于 LAD
│ │ ┌─► 硅片 ATT
│ │ ┌─►└── 环节 ATT
│ │┌─►└───── 格局 SBV
│ ││ ┌─► 尚 ADV
│ ┌─►└┴─────┴── 好 IC
│ │ ┌─────► , PUN
│ │ │ ┌─► 盈利 ATT
│ │ │┌─►└── 性 SBV
│ │ ││ ┌─► 能够 ADV
│ ┌─►└─────┴┴──┴── 维持 IC
│ │ ┌─────────► , PUN
│ │ │ ┌──► 电池 COO
│ │ │ │┌─► 与 LAD
│ │ │ ┌─►└┴── 组件 ATT
│ │ │┌─►└────── 环节 SBV
│ │ ││ ┌─► 已经 ADV
│┌─►└────┴┴──────┴── 微利 IC
││ ┌────────► , PUN
││ │ ┌─► 头部 ATT
││ │ ┌─►└── 企业 ATT
││ │┌─►└───── 市占率 SBV
└┴────────┴┴─────┬── 提升 HED
└─► 。 PUS
例子2:
sentence = '硅料、硅片和电池片环节近期均上调了价格,给组件环节带来明显的压力,终端接受度有限。'
从依存关系图来看,硅片是COO,和是LAD。
Dep Tree Tok Rel
─────────────── ─── ───
┌─► 硅 ATT
┌─►└── 料 COO
│┌───► 、 PUN
││┌──► 硅片 COO
│││┌─► 和 LAD
┌─►└┴┴┴── 电池片 ATT
┌─►└──────── 环节 SBV
│ ┌──► 近期 ADV
│ │┌─► 均 ADV
┌─►└───────┼┼── 上调 IC
│ │└─► 了 MT
│ └──► 价格 VOB
│ ┌────────► , PUN
│ │┌─►┌───── 给 ADV
│ ││ │ ┌─► 组件 ATT
│ ││ └─►└── 环节 POB
│ ┌─►└┼──────── 带来 IC
│ │ │ ┌─► 明显 DE
│ │ │ ┌─►└── 的 ATT
│ │ └─►└───── 压力 VOB
│ │ ┌─────► , PUN
│ │ │ ┌─► 终端 ATT
│ │ │┌─►└── 接受度 SBV
└─┴─────┴┴──┬── 有限 HED
└─► 。 PUS
问题2: DE的位置错误
sentence = '公司认为,2021年上半年大宗商品、多晶硅等原材料及国际海运费价格快速上涨推动了光伏组件价格的上涨,使得光伏发电终端市场需求低迷'
从依存关系树来看:价格是DE,的是ATT。
Dep Tree Token Rel
─────────────────────── ──────── ───
┌─► 公司 SBV
┌───────────────────┴── 认为 HED
│ ┌───────────────► , PUN
│ │ ┌──► 2021年上半年 ATT
│ │ │┌─► 大宗 ATT
│ │ ┌─►└┴── 商品 COO
│ │ │ ┌─► 、 PUN
│ │ ┌─►└───┼── 多晶硅 ATT
│ │ │ └─► 等 RAD
│ │ │ ┌────► 原材料 COO
│ │ │ │┌───► 及 LAD
│ │ │ ││┌──► 国际 ATT
│ │ │ │││┌─► 海运 ATT
│ │ ┌─►└───┴┴┴┴── 费 ATT
│ │ │ ┌──► 价格 SBV
│ │ │ │┌─► 快速 ADV
│ │┌─►└────────┴┴── 上涨 SBV
│ ┌─►└┴┬───────────┬── 推动 IC
│ │ │ └─► 了 MT
│ │ │ ┌─► 光伏 ATT
│ │ │ ┌─►└── 组件 ATT
│ │ │ ┌─►└───── 价格 DE
│ │ │ ┌─►└──────── 的 ATT
│ │ └─►└─────────── 上涨 VOB
│ │ ┌─► , PUN
└─►└─────┬┬─────────┴── 使得 VOB
││ ┌──► 光伏 ATT
││ │┌─► 发电 ATT
││ ┌─►└┴── 终端 ATT
││ ┌─►└────── 市场 ATT
│└─►└───────── 需求 VOB
└────────────► 低迷 ACT
我用的tok和dep的包如下:
tok = hanlp.load(hanlp.pretrained.tok.COARSE_ELECTRA_SMALL_ZH)
dep = hanlp.load(hanlp.pretrained.dep.PMT1_DEP_ELECTRA_SMALL)
请问这里是出现了bug还是我对依存树的理解有偏差呢?非常期待和感谢大家的回复。