From 1be9c0e724401dc2ff1b3f39534bb3c43a72544d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Bournhonesque?= Date: Tue, 24 Jan 2017 10:55:02 +0100 Subject: [PATCH] Add fr tokenization unit tests --- spacy/tests/conftest.py | 5 +++++ spacy/tests/fr/__init__.py | 1 + spacy/tests/fr/test_exceptions.py | 30 ++++++++++++++++++++++++++++++ spacy/tests/fr/test_text.py | 19 +++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 spacy/tests/fr/__init__.py create mode 100644 spacy/tests/fr/test_exceptions.py create mode 100644 spacy/tests/fr/test_text.py diff --git a/spacy/tests/conftest.py b/spacy/tests/conftest.py index 72e93cf59..de7ecae9b 100644 --- a/spacy/tests/conftest.py +++ b/spacy/tests/conftest.py @@ -52,6 +52,11 @@ def de_tokenizer(): return German.Defaults.create_tokenizer() +@pytest.fixture +def fr_tokenizer(): + return French.Defaults.create_tokenizer() + + @pytest.fixture def hu_tokenizer(): return Hungarian.Defaults.create_tokenizer() diff --git a/spacy/tests/fr/__init__.py b/spacy/tests/fr/__init__.py new file mode 100644 index 000000000..57d631c3f --- /dev/null +++ b/spacy/tests/fr/__init__.py @@ -0,0 +1 @@ +# coding: utf-8 diff --git a/spacy/tests/fr/test_exceptions.py b/spacy/tests/fr/test_exceptions.py new file mode 100644 index 000000000..c633a9381 --- /dev/null +++ b/spacy/tests/fr/test_exceptions.py @@ -0,0 +1,30 @@ +# coding: utf-8 + +from __future__ import unicode_literals + +import pytest + + +@pytest.mark.parametrize('text', ["aujourd'hui", "Aujourd'hui", "prud'hommes", + "prud’hommal"]) +def test_tokenizer_infix_exceptions(fr_tokenizer, text): + tokens = fr_tokenizer(text) + assert len(tokens) == 1 + + +@pytest.mark.parametrize('text,lemma', [("janv.", "janvier"), + ("juill.", "juillet"), + ("sept.", "septembre")]) +def test_tokenizer_handles_abbr(fr_tokenizer, text, lemma): + tokens = fr_tokenizer(text) + assert len(tokens) == 1 + assert tokens[0].lemma_ == lemma + + +def test_tokenizer_handles_exc_in_text(fr_tokenizer): + text = "Je suis allé au mois de janv. aux prud’hommes." + tokens = fr_tokenizer(text) + assert len(tokens) == 10 + assert tokens[6].text == "janv." + assert tokens[6].lemma_ == "janvier" + assert tokens[8].text == "prud’hommes" diff --git a/spacy/tests/fr/test_text.py b/spacy/tests/fr/test_text.py new file mode 100644 index 000000000..350fdae70 --- /dev/null +++ b/spacy/tests/fr/test_text.py @@ -0,0 +1,19 @@ +# encoding: utf8 + + +from __future__ import unicode_literals + + +def test_tokenizer_handles_long_text(fr_tokenizer): + text = """L'histoire du TAL commence dans les années 1950, bien que l'on puisse \ +trouver des travaux antérieurs. En 1950, Alan Turing éditait un article \ +célèbre sous le titre « Computing machinery and intelligence » qui propose ce \ +qu'on appelle à présent le test de Turing comme critère d'intelligence. \ +Ce critère dépend de la capacité d'un programme informatique de personnifier \ +un humain dans une conversation écrite en temps réel, de façon suffisamment \ +convaincante que l'interlocuteur humain ne peut distinguer sûrement — sur la \ +base du seul contenu de la conversation — s'il interagit avec un programme \ +ou avec un autre vrai humain.""" + + tokens = fr_tokenizer(text) + assert len(tokens) == 113