2019-10-02 10:50:48 +00:00
|
|
|
# coding: utf8
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
from spacy.lang.en import English
|
|
|
|
from spacy.util import minibatch, compounding
|
2019-11-16 19:20:53 +00:00
|
|
|
import pytest
|
2019-10-02 10:50:48 +00:00
|
|
|
|
|
|
|
|
2019-11-16 19:20:53 +00:00
|
|
|
@pytest.mark.filterwarnings("ignore::UserWarning")
|
2019-10-02 10:50:48 +00:00
|
|
|
def test_issue4348():
|
|
|
|
"""Test that training the tagger with empty data, doesn't throw errors"""
|
|
|
|
|
|
|
|
TRAIN_DATA = [("", {"tags": []}), ("", {"tags": []})]
|
|
|
|
|
|
|
|
nlp = English()
|
|
|
|
tagger = nlp.create_pipe("tagger")
|
|
|
|
nlp.add_pipe(tagger)
|
|
|
|
|
|
|
|
optimizer = nlp.begin_training()
|
|
|
|
for i in range(5):
|
|
|
|
losses = {}
|
|
|
|
batches = minibatch(TRAIN_DATA, size=compounding(4.0, 32.0, 1.001))
|
|
|
|
for batch in batches:
|
|
|
|
texts, annotations = zip(*batch)
|
|
|
|
nlp.update(texts, annotations, sgd=optimizer, losses=losses)
|