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 du Markdown.

texts_processed

nombre total de textes traités.

Type:

int

texts_successful

nombre de textes nettoyés avec succès.

Type:

int

chars_replaced

nombre total de caractères remplacés.

Type:

int

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: SmartWatchLogger)[source]

Bases : object

Classe pour nettoyer et normaliser le contenu Markdown brut.

Cette classe fournit un pipeline de nettoyage configurable pour préparer le texte Markdown à un traitement ultérieur, notamment par des modèles de langage.

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

Initialise le MarkdownCleaner.

Paramètres:
  • config (Any) – l’objet de configuration de l’application.

  • logger (SmartWatchLogger) – l’instance du logger à utiliser.

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

Récupère les enregistrements nécessitant un nettoyage du markdown.

Paramètres:
  • db_manager (DatabaseManager) – le gestionnaire de base de données.

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

Renvoie:

une séquence de résultats à nettoyer.

Type renvoyé:

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

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

Nettoie le markdown brut pour tous les résultats d’une exécution donnée.

Paramètres:
  • db_processor (DatabaseProcessor) – le processeur de base de données.

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

clean_markdown_content(text: str) str[source]

Applique un pipeline complet de nettoyage sur un contenu Markdown.

Paramètres:

text (str) – le contenu Markdown à nettoyer.

Renvoie:

le contenu Markdown nettoyé et normalisé.

Type renvoyé:

str

Supprime tous les types de liens Markdown, en ne conservant que le texte visible.

Paramètres:

text (str) – le texte contenant des liens Markdown.

Renvoie:

le texte sans les liens Markdown.

Type renvoyé:

str

_apply_char_replacements(text: str) str[source]

Applique les remplacements de caractères définis dans la configuration.

Paramètres:

text (str) – le texte à traiter.

Renvoie:

le texte avec les caractères remplacés.

Type renvoyé:

str

_clean_multiple_newlines(text: str) str[source]

Remplace les séquences de 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 inutiles.

Type renvoyé:

str

_remove_consecutive_duplicate_lines(text: str) str[source]

Supprime les lignes consécutives qui sont identiques après nettoyage des espaces.

Paramètres:

text (str) – le texte à nettoyer.

Renvoie:

le texte sans les lignes dupliquées consécutives.

Type renvoyé:

str