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智能小助手)