<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>如何训练命名实体识别模型</title>
    <link>http://localhost:1313/spacy/ner/02_how_to_train_ner_model/index.html</link>
    <description>spaCy 中机器学习模型的训练简介 在上一个笔记本中，我们使用 spaCy 的 EntityRuler 创建了一个基本的训练集用于机器学习模型。我们通过做出某些关于非常可能或肯定属于特定标签的事物的假设来完成这项工作。这种培养训练集的方法，从本质上讲是存在问题的。它可能会错过一些实体，并错误地标记其他实体。如果您希望这是用于训练最终模型的必要训练集，我鼓励您进行手动检查。如果您想使用此模型作为可以通过 Prodigy 培养更好训练集的基线模型，那么这种方法也将有效。&#xA;在这个笔记本中，我们不会对训练集进行优化，而是使用它来训练一个定制的 spaCy 机器学习 NER 模型。因此，本笔记本的重点将放在这些方法上，而不是结果上。&#xA;在 01.04：机器学习 NER 中，我们首次接触了机器学习及其一些基本原理。如果您还没有观看那个笔记本和其中的视频，我鼓励您在完成这个笔记本之前先观看，因为我将假设您已经对机器学习有了一定的了解。&#xA;我之所以更喜欢 spaCy 而不是其他 NLP 框架，是因为 spaCy 能够很好地扩展（适用于小数据和大数据）并且它的训练过程易于使用。NER 从业者不需要通过 PyTorch/FastAI 或 TensorFlow/Keras 创建自定义神经网络，尽管这些框架是使用起来最容易的，但学习曲线却很陡峭。相反，spaCy 的用户可以利用 spaCy 训练过程背后的预设计 CNN 架构。在 spaCy 3.0 版本（在撰写本笔记本时，夜间版本可用），预计在 2021 年初，用户还可以自定义这个神经网络架构，从而扩展 spaCy 的实用性和可定制性。&#xA;为了利用 spaCy 的训练过程，用户只需要了解一些基本概念，例如数据应该如何进入训练过程（在上一个笔记本中介绍）以及一些超参数（我们在训练过程中调整以尝试找到最佳结果的东西）。&#xA;准备数据 如前一个笔记本所述，您的输入数据应采用以下格式：&#xA;TRAIN_DATA = [ (TEXT AS A STRING, {“entities”: [(START, END, LABEL)]}) ] 首先，让我们将上一段视频中的代码引入以生成我们的训练数据：&#xA;import spacy nlp = spacy.load(&#34;en_core_web_sm&#34;) text = &#34;Treblinka is a small village in Poland. Wikipedia notes that Treblinka is not large.&#34; corpus = [] doc = nlp(text) for sent in doc.sents: corpus.append(sent.text) nlp = spacy.blank(&#34;en&#34;) ruler = nlp.add_pipe(&#34;entity_ruler&#34;) patterns = [ {&#34;label&#34;: &#34;GPE&#34;, &#34;pattern&#34;: &#34;Treblinka&#34;} ] ruler.add_patterns(patterns) TRAIN_DATA = [] for sentence in corpus: doc = nlp(sentence) entities = [] for ent in doc.ents: entities.append([ent.start_char, ent.end_char, ent.label_]) TRAIN_DATA.append([sentence, {&#34;entities&#34;: entities}]) print (TRAIN_DATA) 如何将训练数据转换为 spaCy 二进制文件 在此教科书的早期版本中，我们使用了 spaCy 2。在 spaCy 3 中进行训练的方式完全不同。虽然可以在脚本中处理一些基础知识，但我认为在终端中完成是最好的。因为这本教科书是基于许多 Jupyter Notebooks 的 JupyterBook，我们可以通过在单元格开头使用 ! 来执行基于终端的命令。为了训练机器学习模型，我们首先需要创建一个包含训练数据的 spaCy 二进制对象。我发现如果将来需要重复使用一小段代码，使用函数总是很好的，这样就可以保证可重复性。以下函数可在 spaCy 的仓库中找到：https://github.com/explosion/projects/blob/v3/pipelines/ner_demo/scripts/convert。我对其进行了轻微修改以更好地适应本教科书。</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate></lastBuildDate>
    <atom:link href="http://localhost:1313/spacy/ner/02_how_to_train_ner_model/index.xml" rel="self" type="application/rss+xml" />
  </channel>
</rss>