[cad161]: / tests / test_language.py

Download this file

96 lines (85 with data), 3.0 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import pytest
import spacy
from spacy.lang.fr.lex_attrs import like_num
def test_eds_tokenizer_handles_long_text():
text = """Témoin interne : + ; témoin externe : +
- Récepteurs aux œstrogènes : tous les élements sont marqués (3+).
- Récepteurs à la progestérone : 40% sont marqués (intensité 2+).
- Anti-Cerb B2: 0% des cellules carcinomateuses présentent
un marquage membranaire complet.
CONCLUSION`: ========
-Carcinome mammaire infiltrant du quadrant inféro-externe,
de 25 mm size de grade II de
malignité selon Elston et Ellis (3+2+1), sans composante
Score ACR5 de chaque coté`'.
On se donne rendez-vous pour le 23/11/1967.
On fait des mesures de E.coli dans la seine.
Le sang est de type O. Promis !
"""
nlp = spacy.blank("eds")
tokens = nlp(text)
assert (
[t.text_with_ws for t in tokens]
== """Témoin |interne |: |+ |; |témoin |externe |: |+|
|- |Récepteurs |aux |œstrogènes |: |tous |les |élements |sont |marqués |(|3|+|)|.|
|- |Récepteurs |à |la |progestérone |: |40|% |sont |marqués |(|intensité |2|+|)|.|
|- |Anti|-|Cerb |B|2|: |0|% |des |cellules |carcinomateuses |présentent|
|un |marquage |membranaire |complet|.|
|CONCLUSION|`|: |=|=|=|=|=|=|=|=|
|-|Carcinome |mammaire |infiltrant |du |quadrant |inféro|-|externe|,|
|de |25 |mm |size |de |grade |II |de|
|malignité |selon |Elston |et |Ellis |(|3|+|2|+|1|)|, |sans |composante|
|Score |ACR|5 |de |chaque |coté|`|'|.|
|On |se |donne |rendez|-|vous |pour |le |23|/|11|/|1967|.|
|On |fait |des |mesures |de |E.|coli |dans |la |seine|.|
|Le |sang |est |de |type |O|. |Promis |!|
""".split("|")
)
@pytest.mark.parametrize("word", ["onze", "onzième"])
def test_eds_lex_attrs_capitals(word):
assert like_num(word)
assert like_num(word.upper())
def test_eds_tokenizer_whitespace():
nlp = spacy.blank("eds")
tokenized = [(w.text, w.whitespace_) for w in nlp("Lorem\xA0Ipsum\tDolor Sit Amet")]
assert tokenized == [
("Lorem", " "),
("Ipsum", ""),
("\t", ""),
("Dolor", " "),
("Sit", " "),
("Amet", ""),
]
def test_eds_tokenizer_numbers():
nlp = spacy.blank("eds")
tokenized = [(w.text, w.whitespace_) for w in nlp("Il fait 5.3/5.4mm")]
assert tokenized == [
("Il", " "),
("fait", " "),
("5.3", ""),
("/", ""),
("5.4", ""),
("mm", ""),
]
def test_eds_tokenizer_exceptions():
nlp = spacy.blank("eds")
txt = "M. Gentil a un rhume, code ADICAP: B.H.HP.A7A0"
tokenized = [(w.text, w.whitespace_) for w in nlp(txt)]
assert tokenized == [
("M.", " "),
("Gentil", " "),
("a", " "),
("un", " "),
("rhume", ""),
(",", " "),
("code", " "),
("ADICAP", ""),
(":", " "),
("B.", ""),
("H.", ""),
("HP.", ""),
("A", ""),
("7", ""),
("A", ""),
("0", ""),
]