<jupyter_start><jupyter_text>Extraction de Keywords  Imports<jupyter_code>import os
import yake<jupyter_output><empty_output><jupyter_text>Extraire les mots clés d'un document avec Yake https://github.com/LIAAD/yake<jupyter_code># Création d'une liste de mots à ignorer
ignored = set(["conseil communal", "conseil général"])
ignored
# Instantier l'extracteur de mots clés
kw_extractor = yake.KeywordExtractor(lan="fr", top=50)
kw_extractor
# Lister les Fichiers
data_path = "../data/txt/"
files = os.listdir(data_path)
# Imprimer le nombre de fichiers identifiés
len(files)
# Les dix premiers fichiers
files[:20]
# Enlever les fichiers qui ne commencent pas par Bxl_
bxl_files = [f for f in files if f.startswith('Bxl_')]
len(bxl_files)
# Choisir un fichier
this_file = bxl_files[0]
this_file
# Récupérer le texte du fichier
text = open(os.path.join(data_path, this_file), 'r').read()
text[:500]
# Extraire les mots clés de ce texte
keywords = kw_extractor.extract_keywords(text)
keywords
# Ne garder que les bigrammes
kept = []
for kw, score in keywords:
    words = kw.split()
    if len(words) == 2 and kw.lower() not in ignored:
        kept.append(kw)
kept<jupyter_output><empty_output><jupyter_text>Faire la même opération sur tous les documents<jupyter_code>for f in sorted(bxl_files)[:10]:
    text = open(os.path.join(data_path, f), 'r').read()
    keywords = kw_extractor.extract_keywords(text)
    kept = []
    for kw, score in keywords:
        words = kw.split()
        if len(words) == 2 and kw.lower() not in ignored:
            kept.append(kw)
    print(f"{f} mentions these keywords: {', '.join(kept)}...")<jupyter_output>Bxl_1847_Tome_I1_Part_1.txt mentions these keywords: marchés couverts, d'un marché, marché couvert, nouveau marché, marché dans, marché Saint-Jean, marché projeté, Conseil central, rue Royale, Société Philanthropique...
Bxl_1847_Tome_I1_Part_2.txt mentions these keywords: Belgique communale, l'administration communale, Conseils communaux...
Bxl_1847_Tome_I1_Part_3.txt mentions these keywords: rue Royale, bons communaux, d'un marché...
Bxl_1847_Tome_I1_Part_4.txt mentions these keywords: rue Royale, Conseil provincial, rue Duquesnoy, quartier Léopold, l'instruction primaire, loi communale, qu'il faut...
Bxl_1847_Tome_I1_Part_5.txt mentions these keywords: parce qu'il, qu'il faut, Bruxelles n'est...
Bxl_1848_Tome_I1_Part_1.txt mentions these keywords: d'un conseil, ouvriers patentés, Conseil serait...
Bxl_1848_Tome_I1_Part_2.txt mentions these keywords: Société civile, qu'il serait, travaux publics, hectolitres d'eau, mètre cube, basse ville...
Bxl_1848_Tome_I1_Part_3.txt mentions these [...]
{'fraction_non_alphanumeric': 0.10426898375519456, 'fraction_numerical': 0.022667170381564034, 'mean_word_length': 5.31980906921241, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 1, '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': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '49863', 'license': 'MIT', 'n_tokens_mistral': 1009, 'n_tokens_neox': 966, 'n_words': 261, 'path': 'module3/s1_keywords.ipynb', 'repo_name': 'id-farid/tac', 'size': '2647'}