Modernise Doc array tests and don't depend on models

This commit is contained in:
Ines Montani 2017-01-11 18:54:46 +01:00
parent 05447be884
commit 439f396acd
1 changed files with 30 additions and 26 deletions

View File

@ -1,38 +1,42 @@
# coding: utf-8
from __future__ import unicode_literals
from ...attrs import ORTH, SHAPE, POS, DEP
from ..util import get_doc
import pytest
from spacy import attrs
def test_attr_of_token(EN):
text = u'An example sentence.'
tokens = EN(text, tag=True, parse=False)
example = EN.vocab[u'example']
def test_array_attr_of_token(en_tokenizer, en_vocab):
text = "An example sentence"
tokens = en_tokenizer(text)
example = tokens.vocab["example"]
assert example.orth != example.shape
feats_array = tokens.to_array((attrs.ORTH, attrs.SHAPE))
feats_array = tokens.to_array((ORTH, SHAPE))
assert feats_array[0][0] != feats_array[0][1]
assert feats_array[0][0] != feats_array[0][1]
@pytest.mark.models
def test_tag(EN):
text = u'A nice sentence.'
tokens = EN(text)
assert tokens[0].tag != tokens[1].tag != tokens[2].tag != tokens[3].tag
feats_array = tokens.to_array((attrs.ORTH, attrs.TAG))
assert feats_array[0][1] == tokens[0].tag
assert feats_array[1][1] == tokens[1].tag
assert feats_array[2][1] == tokens[2].tag
assert feats_array[3][1] == tokens[3].tag
def test_array_tag(en_tokenizer):
text = "A nice sentence."
tags = ['DET', 'ADJ', 'NOUN', 'PUNCT']
tokens = en_tokenizer(text)
doc = get_doc(tokens.vocab, [t.text for t in tokens], tags=tags)
assert doc[0].pos != doc[1].pos != doc[2].pos != doc[3].pos
feats_array = doc.to_array((ORTH, POS))
assert feats_array[0][1] == doc[0].pos
assert feats_array[1][1] == doc[1].pos
assert feats_array[2][1] == doc[2].pos
assert feats_array[3][1] == doc[3].pos
@pytest.mark.models
def test_dep(EN):
text = u'A nice sentence.'
tokens = EN(text)
feats_array = tokens.to_array((attrs.ORTH, attrs.DEP))
assert feats_array[0][1] == tokens[0].dep
assert feats_array[1][1] == tokens[1].dep
assert feats_array[2][1] == tokens[2].dep
assert feats_array[3][1] == tokens[3].dep
def test_array_dep(en_tokenizer):
text = "A nice sentence."
deps = ['det', 'amod', 'ROOT', 'punct']
tokens = en_tokenizer(text)
doc = get_doc(tokens.vocab, [t.text for t in tokens], deps=deps)
feats_array = doc.to_array((ORTH, DEP))
assert feats_array[0][1] == doc[0].dep
assert feats_array[1][1] == doc[1].dep
assert feats_array[2][1] == doc[2].dep
assert feats_array[3][1] == doc[3].dep