<jupyter_start><jupyter_text>Explorer un corpus  Imports<jupyter_code>from collections import defaultdict
import os

import matplotlib.pyplot as plt
import numpy as np
import yake<jupyter_output><empty_output><jupyter_text>Compter le nombre de documents dans le corpus<jupyter_code>path = "../data/txt/"
files = sorted(os.listdir(path))
len(files)<jupyter_output><empty_output><jupyter_text>Explorer les noms de fichier Nous allons manipuler ici les chaines de caractères.Il s'agit de la classe `str` en Python.Pour en savoir plus : https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/231888-creez-votre-premier-objet-les-chaines-de-caracteres<jupyter_code>chaine = 'Bxl_1901'
type(chaine)
# la méthode split
chaine_split = chaine.split('_')
chaine_split
# Accéder à l'année
year = chaine_split[1]
year
# Manipuler les str pour convertir une année en décennie
year[:3]
year[-1]
year[:3] + '0s'<jupyter_output><empty_output><jupyter_text>Quelques statistiques<jupyter_code>all_years = [str(year) for year in range(1847, 1979)]
count_decade = defaultdict(int)
count_cities = defaultdict(int)
count_tomes = defaultdict(int)
covered_years = set()

for f in files:
    if "_" in f and f.endswith("txt"):
        elems = f.split("_")
        city = elems[0]
        year = elems[1]
        tome = elems[3]
        covered_years.add(year)
        decade = year[:3] + "0s"
        count_decade[decade] += 1
        count_cities[city] += 1
        count_tomes[tome] += 1
    else:
        print(f"Anomalous file: {f}")
print(f"Il y a {count_cities['Bxl']} bulletins de Bruxelles and {count_cities['Lkn']} de Laeken")
nb_rap = count_tomes['RptAn']
print(f"{len(files)-nb_rap-1} documents sont des bulletins et {nb_rap} documents sont des rapports annuels")
missing_years = [y for y in all_years if y not in covered_years]
print(f"Années manquantes: {', '.join(missing_years)}")<jupyter_output>Années manquantes: 1853, 1875, 1916, 1917, 1940, 1941, 1942, 1943, 1944<jupyter_text>Visualisation du nombre de bulletins par décenniesCes visualisations sont obtenus avec la librairie Matplotlib.Pour en savoir plus : https://openclassrooms.com/fr/courses/4452741-decouvrez-les-librairies-python-pour-la-data-science/4740942-maitrisez-les-possibilites-offertes-par-matplotlib.<jupyter_code>index = np.arange(len(count_decade))
plt.bar(index, count_decade.values())
plt.xlabel('Décennie')
plt.ylabel('# bulletins')
plt.xticks(index, count_decade.keys(), fontsize=8, rotation=30)
plt.title('Évolution du nombre de bulletins')
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12208398133748057, 'fraction_numerical': 0.035381026438569205, 'mean_word_length': 5.464824120603015, 'pattern_counts': {'":': 0, '<': 20, '<?xml version=': 0, '>': 20, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '32216', 'license': 'MIT', 'n_tokens_mistral': 1038, 'n_tokens_neox': 959, 'n_words': 208, 'path': 'module2/s2_explore.ipynb', 'repo_name': 'CarolScalioni/tac', 'size': '2572'}