Просмотр исходного кода

meilleurs gestion des paragraphes

main
Alex 2 недель назад
Родитель
Сommit
9a0935c6e6
1 измененных файлов: 10 добавлений и 6 удалений
  1. 10
    6
      main.py

+ 10
- 6
main.py Просмотреть файл

text_by_page.append(text) text_by_page.append(text)
return text_by_page return text_by_page


def merge_paragraphs_across_pages(pages_text):
def split_pages_in_paragraphs(pages_text):
""" """
Divise le texte en paragraphes en détectant un point suivi d'un saut de ligne ou d'un retour à la ligne. Divise le texte en paragraphes en détectant un point suivi d'un saut de ligne ou d'un retour à la ligne.
Conserve les sauts de ligne à l'intérieur des paragraphes. Conserve les sauts de ligne à l'intérieur des paragraphes.
# Concatène tout le texte # Concatène tout le texte
full_text = "\n".join(pages_text) full_text = "\n".join(pages_text)


# Divise le texte en paragraphes : un point suivi d'un saut de ligne ou d'un retour à la ligne
# Remplace les sauts de ligne à l'intérieur des paragraphes par des espaces
# (pour éviter les sauts de ligne intempestifs dans un même paragraphe)
full_text = re.sub(r'(?<![.!?])\n+(?![.!?])', ' ', full_text)

# Divise le texte en paragraphes : un point suivi d'un saut de ligne
paragraphs = re.split(r'(?<=[.!?])\s*\n+', full_text.strip()) paragraphs = re.split(r'(?<=[.!?])\s*\n+', full_text.strip())


# Conserve les sauts de ligne à l'intérieur des paragraphes
paragraphs = [p.strip() for p in paragraphs if p.strip()]
# Nettoie chaque paragraphe : remplace les sauts de ligne restants par des espaces
paragraphs = [re.sub(r'\s+', ' ', p).strip() for p in paragraphs if p.strip()]


return paragraphs return paragraphs


# Préserver la mise en page en convertissant les sauts de ligne # Préserver la mise en page en convertissant les sauts de ligne
formatted_text = translation.replace("\n", "<br/>") formatted_text = translation.replace("\n", "<br/>")
story.append(Paragraph(formatted_text, body_style)) story.append(Paragraph(formatted_text, body_style))
story.append(Spacer(1, 0.1*inch))
# story.append(Spacer(1, 0.1*inch))
# Infos sur le LLM # Infos sur le LLM
story.append(Spacer(1, 0.2*inch)) story.append(Spacer(1, 0.2*inch))
print(f"Nombre de pages extraites : {len(pages)}") print(f"Nombre de pages extraites : {len(pages)}")
# Fusion des paragraphes qui s'étendent sur plusieurs pages # Fusion des paragraphes qui s'étendent sur plusieurs pages
paragraphs = merge_paragraphs_across_pages(pages)
paragraphs = split_pages_in_paragraphs(pages)
print(f"Nombre de paragraphes complets extraits : {len(paragraphs)}") print(f"Nombre de paragraphes complets extraits : {len(paragraphs)}")


# Dictionnaire pour stocker les résultats # Dictionnaire pour stocker les résultats

Загрузка…
Отмена
Сохранить