spaCyEx

spaCyEx是spaCy的功能扩展工具,旨在通过类正则表达式语法简化复杂文本模式的创建过程。它在spaCy原生Matcher组件的基础上,提供了更直观的模式定义语法,特别适用于需要精细提取文本语言特征的场景。

安装方法

通过pip安装:

pip install spacyex

核心特性

  • 动态模式构建:使用简洁的字符串语法即可定义复杂词符匹配规则
    • spaCy深度集成:完全兼容spaCy的Matcher组件功能
    • 灵活匹配规则:支持基于文本特征、词法属性和语法特性的多维度匹配

模式定义语法

采用括号包裹的键值对语法,多个属性间用竖线分隔:

  • 单属性匹配:(pos=NOUN)
    • 多属性组合:(pos=NOUN|lemma=run)
    • 列表值匹配:(lemma=in[run,walk])
    • 数量运算符:(ent_type=person|op={2,3})

使用示例

import spacyex as se
import spacynlp = spacy.load("en_core_web_sm")
text = "某用户快速奔跑,另一用户缓步行走"
pattern = "(ent_type=person|op={2}) (lemma=in[run,walk]) (pos=ADV)"results = se.search(pattern, text, nlp)
for match in results:print("匹配文本:", match[0].text, "起始位置:", match[1], "结束位置:", match[2])

发展路线

  • 扩展支持所有字典属性匹配
    • 增加复杂场景的辅助功能模块
  • 更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)