Spacy Dependency Matcher无法匹配带序数词后缀的from xxx to xxx模式问题
问题原因
你编写的匹配规则默认to介词是from的直接子节点,但spaCy的en_core_web_sm模型对带序数词后缀(-th)的日期短语的依存解析逻辑和纯数字日期短语有差异:
- 纯数字日期(如March 4 to 15)的依存路径:
from直接挂载子节点prep(to),完全符合你写的规则,所以可以正常匹配 - 带-th的序数词日期(如March 4th to 15th)的依存路径:
to介词是挂载在from的直接宾语4th节点下,而非from的直接子节点,原有规则无法命中
修复方案
你可以调整匹配规则的节点关联关系,使用>>操作符匹配任意深度的子孙节点,兼容两种解析结果,修改后的pattern参考如下:
pattern = [ { "RIGHT_ID": "node1", "RIGHT_ATTRS": {"LEMMA": "from"} }, { "LEFT_ID": "node1", "REL_OP": ">", "RIGHT_ID": "node2", "RIGHT_ATTRS": {"DEP": "pobj"}, }, { "LEFT_ID": "node1", "REL_OP": ">>", # 从直接子节点改为匹配任意深度子孙节点 "RIGHT_ID": "node3", "RIGHT_ATTRS": {"LEMMA": "to", "DEP": 'prep'}, # 增加lemma限定为to,避免匹配到其他无关介词 }, { "LEFT_ID": "node3", "REL_OP": ">", "RIGHT_ID": "node4", "RIGHT_ATTRS": {"DEP": 'pobj'}, }]
修改后就可以同时匹配两种格式的日期短语了。
内容的提问来源于stack exchange,提问作者yuri5
相关产品推荐
相关产品推荐

