基于编辑树的神经词形还原技术
某机构研发团队推出了一种实验性的机器学习词形还原器,该组件在多种语言中实现了超过95%的准确率。与传统方法不同,该技术能够从标注语料中自动学习词形还原规则,无需人工编写详尽的语言特定规则集。
技术原理
spaCy框架原有的词形还原器采用两种机制:
- 查找表:映射词形变化与词元关系(如"buys"→“buy”)
- 规则集:基于后缀的改写规则(如动词以"-ed"结尾时删除该后缀)
新提出的编辑树(edit-tree)算法通过以下步骤自动推导规则:
- 寻找词形与词元的最长公共子串(LCS)
- 将词形拆分为前缀、LCS和后缀三部分
- 推导前缀和后缀的转换规则
该算法采用递归结构处理复杂变化,生成的编辑树包含两种节点:
- 内部节点:递归处理字符串前缀和后缀
- 叶节点:执行具体的字符串替换操作
技术实现
系统将编辑树预测建模为分类任务:
- 每个编辑树视为一个类别
- 使用Softmax层计算概率分布
- 采用HashEmbedCNN层提供子词和上下文信息:
- 子词信息确保规则适用性
- 上下文信息解决词性歧义
性能表现
实验对比了多种语言的准确率和处理速度(词/秒):
语言 | 原准确率 | 原速度 | 新准确率 | 新速度 |
---|---|---|---|---|
德语 | 0.70 | 39,567 | 0.97 | 31,043 |
西班牙语 | 0.98 | 46,388 | 0.99 | 39,018 |
意大利语 | 0.86 | 43,397 | 0.97 | 33,419 |
部署方式
通过spacy-experimental
包可快速集成该组件:
|
|
配置选项包括:
backoff
: 备用词元获取策略min_tree_freq
: 编辑树最低出现频率top_k
: 尝试的候选规则数量overwrite
: 是否覆盖已有词元标注
未来发展
该技术已作为trainable_lemmatizer
组件集成至spaCy v3.3正式版。用户可通过spacy init config -p trainable_lemmatizer
命令快速创建训练配置。