如何使用特定于域的规则扩展SpaCy英语模型?

时间:2017-09-26 00:00:02

标签: spacy python-packaging

我正在使用SpaCy对来自独特主题领域的英文文本进行NLP任务。我希望逐步改进SpaCy现有的英语模式(特别是我从'en_core_web_md'开始),并将它们打包以便我的同事轻松重复使用。

我的第一个改变是对标记器的简单更改;我从定义自定义类开始:

class DomainSpecificEnglish(English.Defaults):
    lang = 'en_mydomain'

    class Defaults(English.Defaults):
        # my custom changes the tokenizer here


spacy.util.set_lang_class(DomainSpecificEnglish.lang, DomainSpecificEnglish)

现在,我会继续使用en_core_web_md的词汇和单词向量(稍后我会重新训练这些)。 ,但SpaCy通过lang字符串查找这些模型文件,该字符串不再是"en"

如何构建特定于域的语言"依赖于已经建立的模型的子类?我是否必须将en_core_web_md文件显式复制到名为en_mydomain的磁盘上的新文件夹中?

一旦有效,我希望将这个小项目(一个类)打包成我的同事可以安装的Python蛋。理想情况下,我不应该要求他们运行额外的安装后命令来在磁盘上移动文件。

1 个答案:

答案 0 :(得分:0)

docs,您可以创建如下链接:

python -m spacy link en_core_web_md en_mydomain

这只是创建一个符号链接,因此不会复制任何文件并立即完成。