In [2]:
Copied!
# If needed, install chunknorris
%pip install chunknorris -q
# If needed, install chunknorris
%pip install chunknorris -q
Note: you may need to restart the kernel to use updated packages.
In [4]:
Copied!
# imported the required chunknorris components
from chunknorris.parsers import HTMLParser
from chunknorris.chunkers import MarkdownChunker
from chunknorris.pipelines import BasePipeline
# imported the required chunknorris components
from chunknorris.parsers import HTMLParser
from chunknorris.chunkers import MarkdownChunker
from chunknorris.pipelines import BasePipeline
3 components are needed to chunk a HTML file:
HTMLParser
: Behind the scene, it will usemarkdownify
to convert the html to markdown, and perform extra cleaning of the content. It returns aMarkdownDoc
.MarkdownChunker
: the chunker takes as input aMarkdownDoc
and performs chunking in multipleChunks
objects.BasePipeline
: this pipline just plugs together the parser and the chunker so that the output of the parser in fed to the chunker.
In [5]:
Copied!
# instanciate
pipeline = BasePipeline(HTMLParser(), MarkdownChunker())
# instanciate
pipeline = BasePipeline(HTMLParser(), MarkdownChunker())
In [6]:
Copied!
# Get those chunks !
path_to_html_file = "../../tests/test_files/file.html"
chunks = pipeline.chunk_file(path_to_html_file)
print(f"Got {len(chunks)} chunks !")
# Get those chunks !
path_to_html_file = "../../tests/test_files/file.html"
chunks = pipeline.chunk_file(path_to_html_file)
print(f"Got {len(chunks)} chunks !")
2024-12-17 17:33:ChunkNorris:INFO:Function "chunk" took 0.0032 seconds
Got 17 chunks !
View the chunks¶
In [8]:
Copied!
# Let's look at the chunks
for i, chunk in enumerate(chunks[:2]): # we only look at the 2 first chunks
print(f"\n------------- chunk {i} ----------------\n")
print(chunk.get_text())
# Let's look at the chunks
for i, chunk in enumerate(chunks[:2]): # we only look at the 2 first chunks
print(f"\n------------- chunk {i} ----------------\n")
print(chunk.get_text())
------------- chunk 0 ---------------- # Le Jardin Un [jardin japonais](https://fr.wikipedia.org/wiki/Jardin_japonais "Jardin japonais"). Une femme de 87 ans en train de cultiver son jardin. [Comté de Harju](https://fr.wikipedia.org/wiki/Comt%C3%A9_de_Harju "Comté de Harju"), Estonie, juin 2016. Un **jardin** est un lieu durablement et hypothétiquement aménagé où l'on cultive de façon ordonnée des [plantes](https://fr.wikipedia.org/wiki/Plante "Plante") domestiquées ou sélectionnées. Il est le produit de la technique du [jardinage](https://fr.wikipedia.org/wiki/Jardinage "Jardinage") et, comme elle, il remonte au moins à l'Antiquité. Les différentes cultures humaines dans le monde, au fil des époques, ont inventé de nombreux types et styles de jardins. Lieux d'agrément, de repos, de rêverie solitaire ou partagée, les jardins ont aussi été revêtus dès l'Antiquité d'une valeur symbolique. Ils apparaissent dans les mythologies et les religions, et ils ont été fréquemment évoqués dans les arts. ------------- chunk 1 ---------------- # Le Jardin ## Étymologie Le terme *jardin* est attesté au [XIIe siècle](https://fr.wikipedia.org/wiki/XIIe_si%C3%A8cle "XIIe siècle") au sens de « terrain, généralement clos, où l'on cultive des végétaux utiles ou d'agrément » (Grand mal fit Adam, éd. H. Suchier, 88). Il remonte à un gallo-roman **hortus gardinus* (autrement *HORTU GARDINU, *gardinium* étant attesté au IXe siècle en [latin médiéval](https://fr.wikipedia.org/wiki/Latin_m%C3%A9di%C3%A9val "Latin médiéval")), ce qui signifie littéralement « jardin entouré d'une clôture », composé du latin *hortus* « jardin » et du [vieux bas francique](https://fr.wikipedia.org/wiki/Vieux-francique "Vieux-francique") **gart* ou **gardo* « clôture » (d'où l'ancien français *jart, gart* « jardin » et le russe город, *gorot*)[[1]](https://fr.wikipedia.org/wiki/Jardin#cite_note-%C3%A9tym_CNRTL-1). Le terme vieux bas francique, langue non attestée, est reconstitué d'après le [vieux haut allemand](https://fr.wikipedia.org/wiki/Vieux_haut_allemand "Vieux haut allemand") *gart, garto* « jardin », l'ancien néerlandais *gaert* et le gotique *garda*[[1]](https://fr.wikipedia.org/wiki/Jardin#cite_note-%C3%A9tym_CNRTL-1). Cette étymologie suggère que le jardin se doit d'être clos pour être protégé de l'extérieur et bien entretenu à l'intérieur. Le mot s'est diffusé dans les autres langues romanes à partir du français *jardin*, ainsi qu'en anglais (*garden*) via le normand *gardin*, semblable au picard *gardin*[[1]](https://fr.wikipedia.org/wiki/Jardin#cite_note-%C3%A9tym_CNRTL-1).
Save the chunks¶
The pipeline as a method to save the chunks and their attributes as a json file. Here is how to use it.
In [ ]:
Copied!
# Let's save the chunks. We can just pass the chunks we obtain and the filename we want
pipeline.save_chunks(chunks, "mychunk.json")
# Let's save the chunks. We can just pass the chunks we obtain and the filename we want
pipeline.save_chunks(chunks, "mychunk.json")