Course material for "Traitement automatique de corpus" (STIC-B545) taught at ULB
Caution: Python 3.6 or higher required to handle f-strings (3.7 or 3.8 is better)
It is recommended to run this code in a virtual environment:
git clone [email protected]:madewild/tac.git
cd tac
pip install virtualenv
virtualenv venv --python=python3
source venv/bin/activate
which pip
Then install Python dependencies with pip install -r requirements.txt
You can use either the scripts (*.py) or the Jypyter Notebooks (*.ipynb)
selec.py
: sélectionne tous les fichiers dans lesquels se trouve une occurence de la chaine de caractères passée en paramètre
et génère un fichier _files.sh
Saint-Verhaegen_files.sh
: copie tous les fichiers sélectionnés par le script selec.py dans un nouveau dossier
et concatène leur contenu dans un nouveau fichier texte
explore.py
: générè un graphique de la dispersion des bulletins en fonction de l'année, basé sur le nom des fichiers
catch_sentence.py
: Capture les phrases mentionnant la Saint-Verhaegen et y effectue une analyse des sentiment avec TextBlob
sentiment.py
: Effectue une analyse des sentiments avec TextBlob sur une serie de phrases prédéfinies
catch_block.py
: Capture toutes les occurences de l'expression "Saint-Verhaegen" ainsi que les n caractères les précédant
et les suivant. Concatène l'ensemble dans un nouveau fichier texte. "n" est défini par défaut comme 250, mais
peut être changé en passant un nombre entier en paramètre
kw.py
: Effectue une extraction des mots-clés avec la librairie Yake sur un fichier texte.
narapi.py
: Extrait les 10 entités les plus présentes dans un corpus et recherche les pages wikipedia des ces dernières grâce à l'API mediawiki.
Nécessite l'instalation de la librairie avec pip install pymediawiki
s1_sql.py
: querying a simple relational database
s2_sparql.py
: querying the Wikidata SPARQL endpoint
s3_api.py
: playing with OpenStreetMap and EUcountries APIs
s4_scrape.py
: scraping the AVB to retrieve 2833 PDF bulletins
s1_convert.sh
: bash script to convert PDFs to TXTs, move them to dedicated folder and aggregate them in single big text file
s2_explore.py
: playing with various categories (city, year, decade, type...)
s3_freq.py
: basic frenquency analysis, hapaxes, long words...
s1_keyword.py
: using YAKE to extract French keywords in each text file
s2_wordcloud.sh
: generating a wordcloud for a given year (calling filtering.py
in the background)
Install SpaCy from requirements then run this command to download French model: python -m spacy download fr_core_news_sm
s3_ner.py
: perform NER with SpaCy FR model
s4_sentiment.py
: analyse positive/negative sentences with textblob
classification.py
: supervised classification of 20 newsgroups
clustering.py
: unsupervised clustering with k-means
sentence_tokenizer.py
: split big text into sentences
model_builder.py
: train word2vec model on corpus
model_explorer.py
: explore similarity between vectors
language_detection
: language identification with langid
anonymization.py
: de-identification of data with Faker
extraction.py
: extract text from various file types
htr.sh
: script for handwritten text recognition