Update spaCy pipeline
Browse files- README.md +34 -0
- config.cfg +124 -0
- fr_arches_sentencizer-any-py3-none-any.whl +0 -0
- meta.json +41 -0
- preprocess_text.py +41 -0
- senter/cfg +3 -0
- senter/model +0 -0
- tokenizer +0 -0
- vocab/key2row +1 -0
- vocab/lookups.bin +3 -0
- vocab/strings.json +0 -0
- vocab/vectors +0 -0
- vocab/vectors.cfg +3 -0
README.md
CHANGED
@@ -1,3 +1,37 @@
|
|
1 |
---
|
|
|
|
|
|
|
|
|
2 |
license: cc-by-nc-2.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
+
tags:
|
3 |
+
- spacy
|
4 |
+
language:
|
5 |
+
- fr
|
6 |
license: cc-by-nc-2.0
|
7 |
+
model-index:
|
8 |
+
- name: fr_arches_sentencizer
|
9 |
+
results:
|
10 |
+
- task:
|
11 |
+
name: SENTS
|
12 |
+
type: token-classification
|
13 |
+
metrics:
|
14 |
+
- name: Sentences F-Score
|
15 |
+
type: f_score
|
16 |
+
value: 0.4066841152
|
17 |
---
|
18 |
+
| Feature | Description |
|
19 |
+
| --- | --- |
|
20 |
+
| **Name** | `fr_arches_sentencizer` |
|
21 |
+
| **Version** | `0.0.0` |
|
22 |
+
| **spaCy** | `>=3.6.1,<3.7.0` |
|
23 |
+
| **Default Pipeline** | `preprocess_text`, `senter` |
|
24 |
+
| **Components** | `preprocess_text`, `senter` |
|
25 |
+
| **Vectors** | 0 keys, 0 unique vectors (0 dimensions) |
|
26 |
+
| **Sources** | n/a |
|
27 |
+
| **License** | `cc-by-nc 2.0` |
|
28 |
+
| **Author** | [n/a]() |
|
29 |
+
|
30 |
+
### Accuracy
|
31 |
+
|
32 |
+
| Type | Score |
|
33 |
+
| --- | --- |
|
34 |
+
| `SENTS_F` | 40.67 |
|
35 |
+
| `SENTS_P` | 52.91 |
|
36 |
+
| `SENTS_R` | 33.03 |
|
37 |
+
| `SENTER_LOSS` | 162448.50 |
|
config.cfg
ADDED
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[paths]
|
2 |
+
train = "drive/MyDrive/ARCHES/TAL/donnees/pretraitement/modele_segmentation/extraction_wavestone/spacy/train.spacy"
|
3 |
+
dev = "drive/MyDrive/ARCHES/TAL/donnees/pretraitement/modele_segmentation/extraction_wavestone/spacy/dev.spacy"
|
4 |
+
vectors = null
|
5 |
+
init_tok2vec = null
|
6 |
+
|
7 |
+
[system]
|
8 |
+
gpu_allocator = "pytorch"
|
9 |
+
seed = 0
|
10 |
+
|
11 |
+
[nlp]
|
12 |
+
lang = "fr"
|
13 |
+
pipeline = ["preprocess_text","senter"]
|
14 |
+
batch_size = 128
|
15 |
+
disabled = []
|
16 |
+
before_creation = null
|
17 |
+
after_creation = null
|
18 |
+
after_pipeline_creation = null
|
19 |
+
tokenizer = {"@tokenizers":"spacy.Tokenizer.v1"}
|
20 |
+
|
21 |
+
[components]
|
22 |
+
|
23 |
+
[components.preprocess_text]
|
24 |
+
factory = "preprocess_text"
|
25 |
+
|
26 |
+
[components.senter]
|
27 |
+
factory = "senter"
|
28 |
+
overwrite = false
|
29 |
+
scorer = {"@scorers":"spacy.senter_scorer.v1"}
|
30 |
+
|
31 |
+
[components.senter.model]
|
32 |
+
@architectures = "spacy.Tagger.v2"
|
33 |
+
nO = null
|
34 |
+
normalize = false
|
35 |
+
|
36 |
+
[components.senter.model.tok2vec]
|
37 |
+
@architectures = "spacy.HashEmbedCNN.v2"
|
38 |
+
pretrained_vectors = null
|
39 |
+
width = 12
|
40 |
+
depth = 1
|
41 |
+
embed_size = 2000
|
42 |
+
window_size = 1
|
43 |
+
maxout_pieces = 2
|
44 |
+
subword_features = true
|
45 |
+
|
46 |
+
[corpora]
|
47 |
+
|
48 |
+
[corpora.dev]
|
49 |
+
@readers = "spacy.Corpus.v1"
|
50 |
+
path = ${paths.dev}
|
51 |
+
max_length = 0
|
52 |
+
gold_preproc = false
|
53 |
+
limit = 0
|
54 |
+
augmenter = null
|
55 |
+
|
56 |
+
[corpora.train]
|
57 |
+
@readers = "spacy.Corpus.v1"
|
58 |
+
path = ${paths.train}
|
59 |
+
max_length = 0
|
60 |
+
gold_preproc = false
|
61 |
+
limit = 0
|
62 |
+
augmenter = null
|
63 |
+
|
64 |
+
[training]
|
65 |
+
accumulate_gradient = 3
|
66 |
+
dev_corpus = "corpora.dev"
|
67 |
+
train_corpus = "corpora.train"
|
68 |
+
seed = ${system.seed}
|
69 |
+
gpu_allocator = ${system.gpu_allocator}
|
70 |
+
dropout = 0.1
|
71 |
+
patience = 1600
|
72 |
+
max_epochs = 0
|
73 |
+
max_steps = 20000
|
74 |
+
eval_frequency = 200
|
75 |
+
frozen_components = []
|
76 |
+
annotating_components = []
|
77 |
+
before_to_disk = null
|
78 |
+
before_update = null
|
79 |
+
|
80 |
+
[training.batcher]
|
81 |
+
@batchers = "spacy.batch_by_padded.v1"
|
82 |
+
discard_oversize = true
|
83 |
+
size = 2000
|
84 |
+
buffer = 256
|
85 |
+
get_length = null
|
86 |
+
|
87 |
+
[training.logger]
|
88 |
+
@loggers = "spacy.ConsoleLogger.v1"
|
89 |
+
progress_bar = false
|
90 |
+
|
91 |
+
[training.optimizer]
|
92 |
+
@optimizers = "Adam.v1"
|
93 |
+
beta1 = 0.9
|
94 |
+
beta2 = 0.999
|
95 |
+
L2_is_weight_decay = true
|
96 |
+
L2 = 0.01
|
97 |
+
grad_clip = 1.0
|
98 |
+
use_averages = false
|
99 |
+
eps = 0.00000001
|
100 |
+
|
101 |
+
[training.optimizer.learn_rate]
|
102 |
+
@schedules = "warmup_linear.v1"
|
103 |
+
warmup_steps = 250
|
104 |
+
total_steps = 20000
|
105 |
+
initial_rate = 0.00005
|
106 |
+
|
107 |
+
[training.score_weights]
|
108 |
+
sents_f = 1.0
|
109 |
+
sents_p = 0.0
|
110 |
+
sents_r = 0.0
|
111 |
+
|
112 |
+
[pretraining]
|
113 |
+
|
114 |
+
[initialize]
|
115 |
+
vectors = ${paths.vectors}
|
116 |
+
init_tok2vec = ${paths.init_tok2vec}
|
117 |
+
vocab_data = null
|
118 |
+
lookups = null
|
119 |
+
before_init = null
|
120 |
+
after_init = null
|
121 |
+
|
122 |
+
[initialize.components]
|
123 |
+
|
124 |
+
[initialize.tokenizer]
|
fr_arches_sentencizer-any-py3-none-any.whl
ADDED
Binary file (315 kB). View file
|
|
meta.json
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"lang":"fr",
|
3 |
+
"name":"arches_sentencizer",
|
4 |
+
"version":"0.0.0",
|
5 |
+
"description":"",
|
6 |
+
"author":"",
|
7 |
+
"email":"",
|
8 |
+
"url":"",
|
9 |
+
"license":"cc-by-nc 2.0",
|
10 |
+
"spacy_version":">=3.6.1,<3.7.0",
|
11 |
+
"spacy_git_version":"458bc5f45",
|
12 |
+
"vectors":{
|
13 |
+
"width":0,
|
14 |
+
"vectors":0,
|
15 |
+
"keys":0,
|
16 |
+
"name":null
|
17 |
+
},
|
18 |
+
"labels":{
|
19 |
+
|
20 |
+
},
|
21 |
+
"pipeline":[
|
22 |
+
"preprocess_text",
|
23 |
+
"senter"
|
24 |
+
],
|
25 |
+
"components":[
|
26 |
+
"preprocess_text",
|
27 |
+
"senter"
|
28 |
+
],
|
29 |
+
"disabled":[
|
30 |
+
|
31 |
+
],
|
32 |
+
"performance":{
|
33 |
+
"sents_f":0.4066841152,
|
34 |
+
"sents_p":0.529072813,
|
35 |
+
"sents_r":0.3302812296,
|
36 |
+
"senter_loss":1624.4849906801
|
37 |
+
},
|
38 |
+
"requirements":[
|
39 |
+
|
40 |
+
]
|
41 |
+
}
|
preprocess_text.py
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import re
|
2 |
+
from spacy.tokens import Doc
|
3 |
+
from spacy.language import Language
|
4 |
+
|
5 |
+
|
6 |
+
@Language.component("preprocess_text")
|
7 |
+
|
8 |
+
def preprocess_text(doc):
|
9 |
+
|
10 |
+
text = doc.text
|
11 |
+
|
12 |
+
#On supprime les espaces présentes en fin de ligne
|
13 |
+
etape1_in = re.compile('\s$', re.MULTILINE)
|
14 |
+
etape1_out = ''
|
15 |
+
|
16 |
+
#On supprime les retours à la ligne au niveau des traits d'union au sein d'un mot
|
17 |
+
# "gallo-\romain" devient ainsi "gallo-romain"
|
18 |
+
etape2_in = re.compile('(([a-zà-ÿ]|[A-ZÀ-Ÿ])-)\n')
|
19 |
+
etape2_out = r'\1'
|
20 |
+
|
21 |
+
#On remplace les retours à la ligne restants par une espace
|
22 |
+
etape3_in = re.compile('\n')
|
23 |
+
etape3_out = ' '
|
24 |
+
|
25 |
+
#On remplace les espaces multiples par une espace unique
|
26 |
+
etape4_in = re.compile('\s{2,}')
|
27 |
+
etape4_out = ' '
|
28 |
+
|
29 |
+
#On applique les transformations
|
30 |
+
sortie1 = etape1_in.sub(etape1_out, text)
|
31 |
+
sortie2 = etape2_in.sub(etape2_out, sortie1)
|
32 |
+
sortie3 = etape3_in.sub(etape3_out, sortie2)
|
33 |
+
sortie4 = etape4_in.sub(etape4_out, sortie3)
|
34 |
+
|
35 |
+
# On crée un doc avec le texte modifié
|
36 |
+
modified_doc = Doc(doc.vocab, words=sortie4.split())
|
37 |
+
|
38 |
+
return modified_doc
|
39 |
+
|
40 |
+
|
41 |
+
Language.component("preprocess_text", func=preprocess_text)
|
senter/cfg
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"overwrite":false
|
3 |
+
}
|
senter/model
ADDED
Binary file (255 kB). View file
|
|
tokenizer
ADDED
The diff for this file is too large to render.
See raw diff
|
|
vocab/key2row
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
�
|
vocab/lookups.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:76be8b528d0075f7aae98d6fa57a6d3c83ae480a8469e668d7b0af968995ac71
|
3 |
+
size 1
|
vocab/strings.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
vocab/vectors
ADDED
Binary file (128 Bytes). View file
|
|
vocab/vectors.cfg
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"mode":"default"
|
3 |
+
}
|