File size: 1,126 Bytes
bebc8b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import re
from spacy.tokens import Doc
from spacy.language import Language


@Language.component("preprocess_text")

def preprocess_text(doc):

  text = doc.text

  #On supprime les espaces présentes en fin de ligne
  etape1_in = re.compile('\s$', re.MULTILINE)
  etape1_out = ''

  #On supprime les retours à la ligne au niveau des traits d'union au sein d'un mot
  # "gallo-\romain" devient ainsi "gallo-romain"
  etape2_in = re.compile('(([a-zà-ÿ]|[A-ZÀ-Ÿ])-)\n')
  etape2_out = r'\1'

  #On remplace les retours à la ligne restants par une espace
  etape3_in = re.compile('\n')
  etape3_out = ' '

  #On remplace les espaces multiples par une espace unique
  etape4_in = re.compile('\s{2,}')
  etape4_out = ' '

  #On applique les transformations
  sortie1 = etape1_in.sub(etape1_out, text)
  sortie2 = etape2_in.sub(etape2_out, sortie1)
  sortie3 = etape3_in.sub(etape3_out, sortie2)
  sortie4 = etape4_in.sub(etape4_out, sortie3)

  # On crée un doc avec le texte modifié
  modified_doc = Doc(doc.vocab, words=sortie4.split())

  return modified_doc


Language.component("preprocess_text", func=preprocess_text)