spaCy中的“语言模型”有三个主要组成部分:Python中提供的“静态”语言特定数据(标记器异常、停止词、细粒度到粗粒度词性标记的映射规则)、训练用于预测词性标记的统计模型,依赖关系和命名实体(在一个大的标记语料库上训练并作为二进制权重包含)和Gensim这样的库在原始文本上训练自己的向量,然后将它们添加到spaCy中。在

spacyv2.x允许您独立或在运行中训练所有管道组件,因此您可以在数据上训练标记器、解析器和实体识别器。所有这些都需要标记数据。如果你从头开始训练一门新的语言,你通常会使用现有的树库。Here's an example的西班牙语通用依赖语料库(也是用来训练spaCy的西班牙语模型的语料库)。然后可以将数据转换为spaCy's JSON format,并使用spacy train命令训练模型。例如:git clone https://github.com/UniversalDependencies/UD_Spanish-AnCora

mkdir ancora-json

python -m spacy convert UD_Spanish-AnCora/es_ancora-ud-train.json ancora-json

python -m spacy convert UD_Spanish-AnCora/es_ancora-ud-dev.json ancora-json

mkdir models

python -m spacy train es models ancora-json/es_ancora-ud-train.json ancora-json/es_ancora-ud-dev.json

我不知道你的corpus.txt里有什么,它是完全标记的还是只有原始文本。(我也不知道卢森堡的现有资源——听起来很难找到!)如果您的数据被标记,您可以使用built-in converters或您自己的小脚本将其转换为spaCy的格式。如果你的语料库只由原始文本组成,你需要先给它加上标签,看看它是否适合训练一个通用的语言模型。归根结底,这可以归结为实验——但以下是一些策略:为每个组件手动标记整个语料库–例如,如果要训练标记器,请标记词性标记;如果要训练解析器,则使用依赖关系标签;如果要训练实体识别器,则标记实体跨距。但是,您需要大量的数据,理想情况下,需要一个与通用依赖项相似大小的语料库。在

尝试教一个现有的预培训模型卢森堡语-例如German model。这听起来可能很奇怪,但这并不是一种罕见的策略。不是从头开始训练,而是使用卢森堡语的例子对现有模型进行后期训练(理想情况下,直到它对卢森堡语文本的预测足够好为止)。您还可以通过在您的卢森堡文本上运行德语模型并提取并更正其错误来创建更多的培训数据(有关详细信息,see here)。在

请记住,您也始终需要评估数据(在文档中也称为“开发数据”)。这通常是您的标签数据中的随机部分,您在培训期间会保留这些数据,并用于确定您的模型是否正在改进。在