基于编辑树的spaCy词形还原技术

35 阅读2分钟

基于编辑树的spaCy词形还原技术

spaCy提供的词形还原器组件用于为词元分配基本形式(词元)。例如,它将句子"The kids bought treats from various stores."还原为基本形式:"the kid buy treat from various store."。

传统词形还原机制

spaCy词形还原器对大多数语言使用两种机制:

  1. 查找表:将变形映射到其词元
  2. 规则集:以特定约束方式将词元改写为其词元形式

编辑树算法

编辑树是一种递归数据结构,包含两种节点类型:

  • 内部节点:将字符串分割为前缀、中缀和后缀三部分
  • 叶节点:检查输入字符串是否匹配特定模式

该算法通过以下步骤构建规则:

  1. 寻找变形形式和词元的最长公共子串
  2. 将变形形式和词元分割为前缀、LCS和后缀三部分
  3. 确定从前缀和后缀到词元所需的变化

预测编辑树

将选择正确编辑树的任务视为分类任务:

  • 每个编辑树被视为一个类别
  • 使用Softmax层计算特定词元的概率分布
  • 应用最可能的编辑树进行词形还原

性能表现

实验数据显示,编辑树词形还原器在多语言测试中准确率普遍超过95%:

语言向量传统准确率编辑树准确率
德语de_core_news_lg0.700.97
西班牙语es_core_news_lg0.980.99
意大利语it_core_news_lg0.860.97

使用方法

  1. 安装实验包:
pip install spacy-experimental==0.4.0
  1. 基础配置:
[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