fr_arches_sentencizer / preprocess_text.py
a-menu's picture
Update spaCy pipeline
bebc8b9
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)