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

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

传统词形还原机制

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

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

编辑树算法

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

  • 内部节点:将字符串分割为前缀、中缀和后缀三部分
    • 叶节点:检查输入字符串是否匹配特定模式 该算法通过以下步骤构建规则:
  1. 寻找变形形式和词元的最长公共子串
    1. 将变形形式和词元分割为前缀、LCS和后缀三部分
    1. 确定从前缀和后缀到词元所需的变化

预测编辑树

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

  • 每个编辑树被视为一个类别
    • 使用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

使用方法

  1. 安装实验包:
  2. pip install spacy-experimental==0.4.0
  3. 基础配置:
  4. [components.experimental_edit_tree_lemmatizer]
  5. 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智能小助手)