Thanks to visit codestin.com
Credit goes to github.com

Skip to content

PSIG-EHESS/CahiersCitoyens

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CahiersCitoyens

Projet CC stage de Marjolaine Ray. pipeline dans l'ordre antéchronologique :

=>"size30_clusters_freq_BERTopic.csv" : les topics obtenus avec une taille minimale de 30 document par cluster (au lieu de 10 par défaut)

=>"BERTopic_visualizations.ipynb" :

  • charge un modèle BERTopic (par exemple, si BERTopic.ipynb a crashé mais sauvegardé le modèle avant)
  • produit des visualisation

=>"BERTopic.ipynb" : input = pickle_sentences_sentences.pkl ou df_CC_cleaned.csv ou df_CC_lemmas_postag.csv

  • implémente BERTopic
  • le fait tourner
  • sauvegarde les topics
  • sauvegarde le modèle obtenu
  • présente des visualisations si le kernel ne crash pas d'un RAM overflow

=>"top2vec.ipunb" : une implémentation de Top2vec

=>"LDA.ipynb" : une imlémentation de LDA

=> "preprocess_and_split.ipynb" : input = df_CC_cleaned_lemmas_postag_stopwords.csv, save = pickle_sentence_df.pkl

  • découpe les phrases de chaque contribution (nlp.sents par Spacy avec "core_news_fr_md")
  • crée un dataframe avec les phrases et les métadonnées associées à leur contributions d'origine et le sauvegarde

=> "preprocess_and_lemmatize.ipynb" : input = df_CC_cleaned.csv, save = dataframe as df_CC_lemmas_postag, df_CC_cleaned_lemmas_postag_stopwords.csv

  • tokenise + lemmatise chaque contribution et sauvegarde les lemmes + leurs postag associés (modèle "core_news_fr_md" de Spacy)
  • tokenise + lemmatise chaque contribtion et ne sauvegarde que les lemmes VERB, ADV, ADJ, NOUN et leurs postags. L'objectif était d'éliminer plus que des stopwords pour faciliter la tâche du LDA
  • supprime les stopwords à partir du lexique de spacy fr

=> "preprocess_and_clean.ipynb" : input = contrib_from_csv.csv, save = dataframe as df_CC_cleaned.csv

  • supprime toutes les notations d'"illisibles", les traces de mises en forme, les mail, les sites, normalise les acronymes (I.S.F. -> ISF), etc

=>"stats.ipynb" : nombres de pages, nombres de contributions, moyennes, ecart types, min max, etc

=> “comparaison.py” : ouvre les dataframes contrib_from_original.csv (df_original) et contrib_from_csv.csv (df_processed)

  • teste des merge pour déterminer les communes manquantes / les départements manquants / les cahiers manquants, entre les deux corpus et entre les stats 2019 de l'insee. 1 : teste les communes / départements / cahiers entre les deux corpus (original vs. processed) 2 : teste les communes / départements entre l'insee et le processed 3 : teste les communes / départements entre l'insee et l'original 4 : affiche des diagram de venn pour représenter ces inclusions / exclusions entre communes ou départements 5 : affiche les nombre de communes ou département pour chacuns

  • affiche et sauvegarde des diagrammes de venn + représentatifs

=>"test_content_from_xml" : input = dossiers du corpus brut des cahier, output = strings contenues dan les balises de ces xml

  • écrit les textes qui ont été océrisés par la BnF (lisibles si imprimés, illisibles si écrit)
  • le fichier "output_xml_content.txt" est stocké aussi pour exemple

=> "parsezip_and_count.sh” : parcourt les .zip des données archives (deux disque durs de la plateforme) et récupère le nom du dossier (tout les cahiers d’une commune) et le nombre de fichiers à l’intérieur.

output : nom du fichier commune + nombre de fichiers à l’intérieur. Stocké dans deux fichiers GDN_part1.txt et GDN_part2.txt

=> “count_original_contrib.py” : calculer le nombre de xml grâce au nombre de fichiers total, dispo dans les .txt créés par la fonction parsezip_and_count.sh, (à chaque xml correspond un .jpg, donc diviser par deux ; puis retirer 1 (le fichier pdf)). Produire un dataframe pour les parties 1 et 2, puis les concaténer.

output 1 : un seul dataframe enregistré sous forme de csv pour toutes les données : contrib_from_original.csv

output 2 : le nombre de dossiers, correspondant au nombre communes = 18 854

output 3 : le nombre de pages traitées (nombre de fichiers dans les dossiers) = 428 832

=> “count_csv_contrib.py” : parcourt tous les csv (35 fichiers) , les transforme en csv et les concatène. puis fait un groupby sur les numéro insee des communes et compte les contributions par communes :

output 1 : un seul dataframe enregistré sous forme de csv pour toutes les données : contrib_from_csv.csv

output 2 : un dataframe avec les communes et les nb de contrib : 16 420 communes

output 3 : un dataframe avec les pages : 196 821 pages

output 4 : un dataframe avec les numéro uniques (id de cahiers) : 19 250

dépendances : voici la liste des packages installés dans mon environment :

asttokens 2.2.1 | backcall 0.2.0 | comm 0.1.2 | contourpy 1.0.7 | cycler 0.11.0 | debugpy 1.6.6 | decorator 5.1.1 | executing 1.2.0 | fonttools 4.39.0 | ipykernel 6.21.2 | ipython 8.11.0 | jedi 0.18.2 | jupyter_client 8.0.3 | jupyter_core 5.2.0 | kiwisolver 1.4.4 | matplotlib 3.7.1 | matplotlib-inline 0.1.6 | matplotlib-venn 0.11.9 | nest-asyncio 1.5.6 | numpy 1.24.2 | packaging 23.0 | pandas 1.5.3 | parso 0.8.3 | pexpect 4.8.0 | pickleshare 0.7.5 | Pillow 9.4.0 | pip 22.0.2 | platformdirs 3.0.0 | prompt-toolkit 3.0.38 | psutil 5.9.4 | ptyprocess 0.7.0 | pure-eval 0.2.2 | Pygments 2.14.0 | pyparsing 3.0.9 | python-dateutil 2.8.2 | pytz 2022.7.1 | pyzmq 25.0.0 | scipy 1.10.1 | setuptools 59.6.0 | six 1.16.0 | stack-data 0.6.2 | tornado 6.2 | traitlets 5.9.0 | wcwidth 0.2.6 |

About

Projet CC

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages