基于编辑树的spaCy词形还原技术
spaCy提供的词形还原器组件用于为词元分配基本形式(词元)。例如,它将句子"The kids bought treats from various stores."还原为基本形式:"the kid buy treat from various store."。
传统词形还原机制
spaCy词形还原器对大多数语言使用两种机制:
- 查找表:将变形映射到其词元
-
- 规则集:以特定约束方式将词元改写为其词元形式
编辑树算法
编辑树是一种递归数据结构,包含两种节点类型:
- 内部节点:将字符串分割为前缀、中缀和后缀三部分
-
- 叶节点:检查输入字符串是否匹配特定模式 该算法通过以下步骤构建规则:
- 寻找变形形式和词元的最长公共子串
-
- 将变形形式和词元分割为前缀、LCS和后缀三部分
-
- 确定从前缀和后缀到词元所需的变化
预测编辑树
将选择正确编辑树的任务视为分类任务:
- 每个编辑树被视为一个类别
-
- 使用Softmax层计算特定词元的概率分布
-
- 应用最可能的编辑树进行词形还原
性能表现
实验数据显示,编辑树词形还原器在多语言测试中准确率普遍超过95%:
语言 | 向量 | 传统准确率 | 编辑树准确率 |
---|---|---|---|
德语 | de_core_news_lg | 0.70 | 0.97 |
西班牙语 | es_core_news_lg | 0.98 | 0.99 |
意大利语 | it_core_news_lg | 0.86 | 0.97 |
使用方法
- 安装实验包:
-
- pip install spacy-experimental==0.4.0
-
- 基础配置:
-
- [components.experimental_edit_tree_lemmatizer]
- factory = "experimental_edit_tree_lemmatizer"
-
配置选项
- backoff:词形还原失败时使用的回退属性
-
- min_tree_freq:训练数据中编辑树的最小频率要求
-
- top_k:在回退前尝试的最可能树的数量
-
- overwrite:是否覆盖先前组件设置的词元
示例项目
可通过以下命令获取示例项目:
python -m spacy project clone projects/edit_tree_lemmatizer
cd edit_tree_lemmatizer
pip install spacy-experimental==0.4.0
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)