将特定领域的实体添加到 spaCy 或 Stanford NLP 训练集
Add domain-specific entities to spaCy or Stanford NLP training set
我们想在重新训练模型之前将一些自定义实体添加到 Stanford NLP 或 spaCy 的训练集中。我们愿意标记我们的自定义实体,但我们希望将这些添加到现有的训练集中,以免花费太多时间标记。
我们假设 NLP 模型是在一个大型标记数据集上训练的,其中包括标记为 "O"("other",即没有兴趣)的词的标签以及被标记为 "DATE"、"PERSON"、"ORGANIZATION" 等。我们有一组自定义的 ORGANIZATION 词,但我们想在重新训练之前将这些添加到所有其他标记的数据中模型.
这可能吗?我们应该怎么做?我们是否必须获得用于训练模型的标记数据集,以便我们可以添加自己的数据?如果是这样,我们该怎么做?
我们已经使用 Stanford NLP 和 spaCy 构建了原型,因此任何一个的答案都适合我们。
对于 spaCy,您应该可以调用 nlp.update()
。这将根据当前重量更新重量,让您恢复训练。如果您想进行多次更新,您可能需要用原始模型解析一些文本并通过训练将其混合,以避免 "catastrophic forgetting" 问题。
您可以使用 helkaroui 的 entity tagger tool 创建您自己的训练集。
我们想在重新训练模型之前将一些自定义实体添加到 Stanford NLP 或 spaCy 的训练集中。我们愿意标记我们的自定义实体,但我们希望将这些添加到现有的训练集中,以免花费太多时间标记。
我们假设 NLP 模型是在一个大型标记数据集上训练的,其中包括标记为 "O"("other",即没有兴趣)的词的标签以及被标记为 "DATE"、"PERSON"、"ORGANIZATION" 等。我们有一组自定义的 ORGANIZATION 词,但我们想在重新训练之前将这些添加到所有其他标记的数据中模型.
这可能吗?我们应该怎么做?我们是否必须获得用于训练模型的标记数据集,以便我们可以添加自己的数据?如果是这样,我们该怎么做?
我们已经使用 Stanford NLP 和 spaCy 构建了原型,因此任何一个的答案都适合我们。
对于 spaCy,您应该可以调用 nlp.update()
。这将根据当前重量更新重量,让您恢复训练。如果您想进行多次更新,您可能需要用原始模型解析一些文本并通过训练将其混合,以避免 "catastrophic forgetting" 问题。
您可以使用 helkaroui 的 entity tagger tool 创建您自己的训练集。