如何使用特定领域的规则扩展 SpaCy 英语模型?
How to extend SpaCy English model with domain-specific rules?
我正在使用 SpaCy 处理来自独特主题领域的英文文本的 NLP 任务。我想逐步改进 SpaCy 现存的英语模型(具体来说我是从 'en_core_web_md'
开始),并将它们打包以便我的同事可以重复使用。
我的第一个更改是对分词器的简单更改;我首先定义了一个自定义 class:
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"
.
如何构建依赖于已构建模型的特定领域 "language" subclass?我是否必须明确地将 en_core_web_md
文件复制到磁盘上名为 en_mydomain
的新文件夹?
一旦成功,我希望将这个小项目(class)打包为一个 Python egg,我的同事可以安装。理想情况下,我不应该要求他们也 运行 额外的 post 安装命令来在磁盘上移动文件。
从 docs,您可以像这样创建 link:
python -m spacy link en_core_web_md en_mydomain
这只会创建一个符号link,因此不会复制任何文件,它会立即完成。
我正在使用 SpaCy 处理来自独特主题领域的英文文本的 NLP 任务。我想逐步改进 SpaCy 现存的英语模型(具体来说我是从 'en_core_web_md'
开始),并将它们打包以便我的同事可以重复使用。
我的第一个更改是对分词器的简单更改;我首先定义了一个自定义 class:
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"
.
如何构建依赖于已构建模型的特定领域 "language" subclass?我是否必须明确地将 en_core_web_md
文件复制到磁盘上名为 en_mydomain
的新文件夹?
一旦成功,我希望将这个小项目(class)打包为一个 Python egg,我的同事可以安装。理想情况下,我不应该要求他们也 运行 额外的 post 安装命令来在磁盘上移动文件。
从 docs,您可以像这样创建 link:
python -m spacy link en_core_web_md en_mydomain
这只会创建一个符号link,因此不会复制任何文件,它会立即完成。