代码之家  ›  专栏  ›  技术社区  ›  jlrl

如何将自定义本地标记化器函数导入SpaCy配置文件

  •  0
  • jlrl  · 技术社区  · 2 年前

    我正在为一种新语言从头开始训练spaCy管道。

    我有一个预先编写的函数,可以用一种没有作为spaCy开箱即用的标记器的语言标记文本。该语言的书面逻辑与越南语相似,所以我首先用越南语实例化了一个spaCy模型,然后尝试自定义配置文件post-hoc的组件。我想做的是将我的自定义标记化函数插入到配置文件中(在python代码中,这就像“导入”语句一样简单),但我收到一个错误,说“如果你正在使用自定义函数,请确保你的代码可用。”。我感觉我只是缺少了一些关于cfg文件语法的东西。

    以下是我尝试做的一个示例,直到配置文件的标记器部分:

    train = conllu_converted/train.spacy
    dev = conllu_converted/train.spacy
    vectors = null
    init_tok2vec = null
    tokenizer = custom_tokenizer
    
    [system]
    gpu_allocator = null
    seed = 0
    
    [nlp]
    lang = "vi"
    pipeline = ["tok2vec","tagger","morphologizer","trainable_lemmatizer","parser"]
    batch_size = 1000
    disabled = []
    before_creation = null
    after_creation = null
    after_pipeline_creation = null
    
    [nlp.tokenizer]
    @tokenizers = custom_tokenizer.tokenize
    use_pyvi = false
    

    默认示例如下所示:

    train=conll_converted/train.spacy
    dev=conll_converted/train.spacy
    矢量=空
    init_tok2vec=空
    标记化器=自定义标记化器
    
    [系统]
    gpu_allocator=空
    种子=0
    
    [nlp]
    lang=“vi”
    pipeline=[“tok2vec”,“tagger”,“morphologizer”,“trainable_lemmatizer”,“parser”]
    batch_size=1000
    disabled=[]
    before_create=空
    after_creation=空
    after_pipeline_creation=空
    
    [nlp.tokenizer]
    @tokenizers=custom_tokenizer.tokenize
    use_pyvi=错误
    

    我希望能够将自定义标记化器函数直接导入到spaCy配置文件中。错误消息表明这应该是可能的,但我在文档中缺少一个步骤,找不到它。

    0 回复  |  直到 2 年前