Markdown Cleaner

Le module MarkdownCleaner nettoie et normalise le contenu Markdown obtenu après la conversion de pages web HTML. Il prépare ainsi le texte pour une analyse efficace par les modèles de langage.

Fonctionnalités

  • Élimine tous les types de liens Markdown et les images autonomes, ne conservant que le texte pertinent.

  • Supprime les lignes qui ne contiennent que des caractères de mise en forme (comme , ###, * * *).

  • Applique un ensemble de remplacements de caractères définis dans la configuration pour corriger les erreurs de formatage courantes (espaces multiples, etc.).

  • Élimine les lignes vides consécutives et les lignes de contenu identiques qui se suivent.

Usage

La classe MarkdownCleaner est utilisé dans le pipeline principal de main.py. La fonction process_markdown_cleaning récupère les textes bruts depuis la colonne markdown_brut de la table resultats_extraction (cf bdd), les nettoie, et enregistre la version nettoyée dans la colonne markdown_nettoye de la même table.

Modules

class src.smart_watch.utils.MarkdownCleaner.CleaningStats(texts_processed: int = 0, texts_successful: int = 0, chars_replaced: int = 0)[source]

Bases : object

Dataclass pour stocker les statistiques de nettoyage à chaque étape.

Attributs :

texts_processed (int) : Nombre total de textes traités. texts_successful (int) : Nombre de textes nettoyés avec succès. chars_replaced (int) : Nombre total de caractères remplacés lors du nettoyage.

texts_processed: int = 0
texts_successful: int = 0
chars_replaced: int = 0
get_summary() Dict[str, int][source]

Retourne un résumé des statistiques de nettoyage.

Renvoie:

Un dictionnaire contenant les statistiques.

Type renvoyé:

Dict[str, int]

__init__(texts_processed: int = 0, texts_successful: int = 0, chars_replaced: int = 0) None
class src.smart_watch.utils.MarkdownCleaner.MarkdownCleaner(config: Any, logger: Any)[source]

Bases : object

Une classe pour nettoyer et normaliser le contenu Markdown.

Cette classe fournit un pipeline pour nettoyer du texte Markdown brut, le rendant plus adapté au traitement par des modèles de langage.

Paramètres:
  • config (Any) – L’objet de configuration, qui doit avoir un attribut processing avec char_replacements.

  • logger (Any) – L’instance du logger pour l’enregistrement des messages.

  • char_replacements (Dict[str, str]) – Un dictionnaire des caractères à remplacer.

_RE_STANDALONE_IMAGES = re.compile('!\\[[^\\]]*\\]\\([^)]*\\)')
_RE_MULTI_NEWLINES = re.compile('\\n{3,}')
_RE_FORMATTING_LINES = re.compile('^[\\s#\\-\\"=_\\(\\[\\]\\)\\.]+$', re.MULTILINE)
__init__(config: Any, logger: Any)[source]

Initializes the MarkdownCleaner.

Paramètres:
  • config (Any) – The application’s configuration object.

  • logger (Any) – The logger for this instance.

_get_pending_cleaning(db_manager: DatabaseManager, execution_id: int) Sequence[Row[Tuple[ResultatsExtraction, Lieux]]][source]

Récupère les enregistrements de la base de données nécessitant un nettoyage du markdown.

Paramètres:
  • db_manager (DatabaseManager) – L’instance du gestionnaire de base de données.

  • execution_id (int) – L’identifiant de l’exécution en cours.

Renvoie:

Une séquence de rows, chacune contenant un objet ResultatsExtraction et un objet Lieux.

Type renvoyé:

Sequence[Row[Tuple[ResultatsExtraction, Lieux]]]

process_markdown_cleaning(db_processor: DatabaseProcessor, execution_id: int)[source]

Nettoie le markdown brut de tous les résultats d’une exécution.

Paramètres:
  • db_processor (DatabaseProcessor) – Processeur de base de données

  • execution_id (int) – ID de l’exécution

clean_markdown_content(text: str) str[source]

Nettoie le contenu markdown en appliquant des remplacements et en supprimant les liens.

Paramètres:

text (str) – Le contenu markdown à nettoyer.

Renvoie:

Le contenu markdown nettoyé.

Type renvoyé:

str

Supprime les liens markdown, en conservant uniquement le texte.

Gère les formats : - [texte](url) - [texte](url « titre ») - [![alt](img)](url « titre ») - liens avec images - ![alt](img) - images seules

Paramètres:

text (str) – Le texte contenant des liens markdown.

Renvoie:

Le texte sans liens markdown.

Type renvoyé:

str

_apply_char_replacements(text: str) str[source]

Applique les remplacements de caractères indiqués la configuration.

Paramètres:

text (str) – Le texte auquel appliquer les remplacements.

Renvoie:

Le texte avec les caractères remplacés.

Type renvoyé:

str

_clean_multiple_newlines(text: str) str[source]

Remplace 3 sauts de ligne ou plus par exactement 2.

Paramètres:

text (str) – Le texte à nettoyer.

Renvoie:

Le texte avec des sauts de ligne normalisés.

Type renvoyé:

str

_remove_formatting_lines(text: str) str[source]

Supprime les lignes composées uniquement de caractères de formatage.

Paramètres:

text (str) – Le texte à nettoyer.

Renvoie:

Le texte sans les lignes de formatage.

Type renvoyé:

str

_remove_consecutive_duplicate_lines(text: str) str[source]

Supprime les lignes consécutives dupliquées, même si elles sont séparées par des sauts de ligne.

Paramètres:

text (str) – Le texte à nettoyer.

Renvoie:

Le texte avec les lignes dupliquées supprimées.

Type renvoyé:

str