mirror of https://github.com/explosion/spaCy.git
30 lines
1.6 KiB
Markdown
30 lines
1.6 KiB
Markdown
If you've been modifying the pipeline, vocabulary, vectors and entities, or made
|
||
updates to the model, you'll eventually want to **save your progress** – for
|
||
example, everything that's in your `nlp` object. This means you'll have to
|
||
translate its contents and structure into a format that can be saved, like a
|
||
file or a byte string. This process is called serialization. spaCy comes with
|
||
**built-in serialization methods** and supports the
|
||
[Pickle protocol](http://www.diveintopython3.net/serializing.html#dump).
|
||
|
||
> #### What's pickle?
|
||
>
|
||
> Pickle is Python's built-in object persistence system. It lets you transfer
|
||
> arbitrary Python objects between processes. This is usually used to load an
|
||
> object to and from disk, but it's also used for distributed computing, e.g.
|
||
> with
|
||
> [PySpark](https://spark.apache.org/docs/0.9.0/python-programming-guide.html)
|
||
> or [Dask](http://dask.pydata.org/en/latest/). When you unpickle an object,
|
||
> you're agreeing to execute whatever code it contains. It's like calling
|
||
> `eval()` on a string – so don't unpickle objects from untrusted sources.
|
||
|
||
All container classes, i.e. [`Language`](/api/language) (`nlp`),
|
||
[`Doc`](/api/doc), [`Vocab`](/api/vocab) and [`StringStore`](/api/stringstore)
|
||
have the following methods available:
|
||
|
||
| Method | Returns | Example |
|
||
| ------------ | ------- | ------------------------ |
|
||
| `to_bytes` | bytes | `data = nlp.to_bytes()` |
|
||
| `from_bytes` | object | `nlp.from_bytes(data)` |
|
||
| `to_disk` | - | `nlp.to_disk("/path")` |
|
||
| `from_disk` | object | `nlp.from_disk("/path")` |
|