Coverage for tests\utils\test_preprocessing.py: 100.00%
37 statements
« prev ^ index » next coverage.py v7.3.2, created at 2023-11-17 13:31 +0100
« prev ^ index » next coverage.py v7.3.2, created at 2023-11-17 13:31 +0100
1# -*- coding: utf-8 -*-
3"""
4* Name: interactive-clustering/tests/utils/test_preprocessing.py
5* Description: Unittests for the `utils.preprocessing` module.
6* Author: Erwan SCHILD
7* Created: 17/03/2021
8* Licence: CeCILL (https://cecill.info/licences.fr.html)
9"""
11# ==============================================================================
12# IMPORT PYTHON DEPENDENCIES
13# ==============================================================================
15import pytest
17from cognitivefactory.interactive_clustering.utils.preprocessing import preprocess
20# ==============================================================================
21# test_preprocess_for_uninstalled_spacy_language_model
22# ==============================================================================
23def test_preprocess_for_uninstalled_spacy_language_model():
24 """
25 Test that the `utils.preprocessing.preprocess` raises `ValueError` for uninstalled spacy language model.
26 """
28 # Check a unimplemented vectorizer.
29 with pytest.raises(ValueError, match="`spacy_language_model`"):
30 preprocess(
31 dict_of_texts={
32 "0": "Comment signaler une perte de carte de paiement ?",
33 "1": "Quelle est la procédure pour chercher une carte de crédit avalée ?",
34 "2": "Ma carte Visa a un plafond de paiment trop bas, puis-je l'augmenter ?",
35 },
36 spacy_language_model="uninstalled",
37 )
40# ==============================================================================
41# test_preprocess_for_installed_spacy_language_model
42# ==============================================================================
43def test_preprocess_for_installed_spacy_language_model():
44 """
45 Test that the `utils.preprocessing.preprocess` works for an installed spacy language model.
46 """
48 # Check simple preprocessing.
49 dict_of_preprocessed_texts = preprocess(
50 dict_of_texts={
51 "0": "Hello. How are you ??",
52 "1": "Hello, how old are you ?",
53 "2": "Hello ! Where do you live ?",
54 },
55 spacy_language_model="en_core_web_md",
56 )
58 # Assertions
59 assert dict_of_preprocessed_texts
62# ==============================================================================
63# test_preprocess_for_simple_preprocessing
64# ==============================================================================
65def test_preprocess_for_simple_preprocessing():
66 """
67 Test that the `utils.preprocessing.preprocess` works for simple preprocessing.
68 """
70 # Check simple preprocessing.
71 dict_of_preprocessed_texts = preprocess(
72 dict_of_texts={
73 "0": "Comment signaler une perte de carte de paiement ?",
74 "1": "Quelle est la procédure pour chercher une carte de crédit avalée ?",
75 "2": "Ma carte Visa a un plafond de paiment trop bas, puis-je l'augmenter ?",
76 },
77 )
79 # Assertions
80 assert dict_of_preprocessed_texts
81 assert sorted(dict_of_preprocessed_texts.keys()) == ["0", "1", "2"]
82 assert dict_of_preprocessed_texts["0"] == "comment signaler une perte de carte de paiement"
83 assert dict_of_preprocessed_texts["1"] == "quelle est la procedure pour chercher une carte de credit avalee"
84 assert dict_of_preprocessed_texts["2"] == "ma carte visa a un plafond de paiment trop bas puis je l augmenter"
87# ==============================================================================
88# test_preprocess_for_stopwords_deletion
89# ==============================================================================
90def test_preprocess_for_stopwords_deletion():
91 """
92 Test that the `utils.preprocessing.preprocess` works for stopwords deletion.
93 """
95 # Check stopwords deletion.
96 dict_of_preprocessed_texts = preprocess(
97 dict_of_texts={
98 "0": "Comment signaler une perte de carte de paiement ?",
99 "1": "Quelle est la procédure pour chercher une carte de crédit avalée ?",
100 "2": "Ma carte Visa a un plafond de paiment trop bas, puis-je l'augmenter ?",
101 },
102 apply_stopwords_deletion=True,
103 )
105 # Assertions
106 assert dict_of_preprocessed_texts
107 assert sorted(dict_of_preprocessed_texts.keys()) == ["0", "1", "2"]
108 assert dict_of_preprocessed_texts["0"] == "signaler perte carte paiement"
109 assert dict_of_preprocessed_texts["1"] == "procedure chercher carte credit avalee"
110 assert dict_of_preprocessed_texts["2"] == "carte visa plafond paiment trop l augmenter"
113# ==============================================================================
114# test_preprocess_for_parsing_filter
115# ==============================================================================
116def test_preprocess_for_parsing_filter():
117 """
118 Test that the `utils.preprocessing.preprocess` works for parsing filter.
119 """
121 # Check parsing filter.
122 dict_of_preprocessed_texts = preprocess(
123 dict_of_texts={
124 "0": "Comment signaler une perte de carte de paiement ?",
125 "1": "Quelle est la procédure pour chercher une carte de crédit avalée ?",
126 "2": "Ma carte Visa a un plafond de paiment trop bas, puis-je l'augmenter ?",
127 },
128 apply_parsing_filter=True,
129 )
131 # Assertions
132 assert dict_of_preprocessed_texts
133 assert sorted(dict_of_preprocessed_texts.keys()) == ["0", "1", "2"]
134 assert dict_of_preprocessed_texts["0"] == "comment signaler perte"
135 assert dict_of_preprocessed_texts["1"] == "quelle est procedure chercher"
136 assert dict_of_preprocessed_texts["2"] == "carte a plafond augmenter"
139# ==============================================================================
140# test_preprocess_for_lemmatization
141# ==============================================================================
142def test_preprocess_for_lemmatization():
143 """
144 Test that the `utils.preprocessing.preprocess` works for lemmatization.
145 """
147 # Check lemmatization.
148 dict_of_preprocessed_texts = preprocess(
149 dict_of_texts={
150 "0": "Comment signaler une perte de carte de paiement ?",
151 "1": "Quelle est la procédure pour chercher une carte de crédit avalée ?",
152 "2": "Ma carte Visa a un plafond de paiment trop bas, puis-je l'augmenter ?",
153 },
154 apply_lemmatization=True,
155 )
157 # Assertions
158 assert dict_of_preprocessed_texts
159 assert sorted(dict_of_preprocessed_texts.keys()) == ["0", "1", "2"]
160 assert dict_of_preprocessed_texts["0"] == "comment signaler un perte de carte de paiement"
161 assert dict_of_preprocessed_texts["1"] == "quel etre le procedure pour chercher un carte de credit avaler"
162 assert dict_of_preprocessed_texts["2"] == "mon carte visa avoir un plafond de paiment trop bas puis je l augmenter"