---
# System prepended metadata

title: Malawi new classification challenge

---

# Malawi new classification challenge

https://u-bordeaux-fr.zoom.us/j/87647904219?pwd=TC96T29zeHZaUkRTQ0NDR29WdVNWZz09

Lab Meeting : https://u-bordeaux-fr.zoom.us/j/87835794293

https://drive.google.com/drive/folders/1RTJDTpG6jn0RkYdQcwfmv8J548Ju4ghs?usp=sharing
- **Google meet**: meet.google.com/jdu-uctn-gxv
- **BitBucket** : https://id.atlassian.com/signup?application=bitbucket&continue=https%3A//bitbucket.org/account/signin/%3Foptintocst%3D1%26next%3D/%3Faidsignup%3D1
- **Ressource git** :https://www.earthdatascience.org/courses/intro-to-earth-data-science/git-github/
- **NLP stanford** : http://web.stanford.edu/class/cs224n/
- tuto word2Vec, doc2vec : https://medium.com/swlh/sentiment-classification-for-reviews-using-doc2vec-660ba594c336#:~:text=This%20method%20can%20be%20used,another%20vector%20for%20document%20id


### RESTART


### To do today

* implement Information Model for the construction of stop word list

* error analysis
    * matrice of confusion 
    * translation of sample wrongly classify
    * show word importance
* implement NBSVM
* try to balanced data
* try to take only the first sentence as sample
* transformer
* word2vec

### VOCAB
* split de token : mot / BPE / ...
* seuil sur la fréquence

### Data augmentation

- Au moment du train:
    - extraire des sous partie des articles : 25%, 50%, 75%

- Au moment de l'inference/prediction:
    - extraire des sous parties et predire chaque partie puis voter.


### Encodage
* presence
* count
* fequence
* tf-idf
* NB SVM
* PCA au dessus.

### Algo
* Log reg
* SVM

### Type de classification
* one vs all / one vs one
* entrainer plusieurs modèle pour différente paire (OvA ou OvO) et garder le meilleur pour chaque paire puis faire le vote




## Ressources
- https://fr.coursera.org/learn/startup-entrepreneurship-discovering-ideas?specialization=startup-entrepreneurship

- https://www.earthdatascience.org/courses/intro-to-earth-data-science/open-reproducible-science/jupyter-python/code-markdown-cells-in-jupyter-notebook/#:~:text=To%20use%20the%20Keyboard%20Shortcuts,by%20hitting%20the%20y%20key.

- https://hackmd.io/@Iu5OjcMKReqBhiNgk801iA/r1ExcgtBd/edit
- **BPE** (https://leimao.github.io/blog/Byte-Pair-Encoding/)
- **regex tuto** : https://www.w3schools.com/python/python_regex.asp

- https://www.ecir2021.eu/tutorials/
- http://d2l.ai/chapter_natural-language-processing-pretraining/word2vec.html

### Idées

- Data augmentation 1 : concat
    - Combinaison de deux(3, 4, ...) articles et moyenne de leur classification (de leur vecteur onehot de classe).
        - On combine des arcticles de classe différentes ? 
        - quelle stratégie de combinaison:
            - simple concaténation
            - 50%, 50%
            - 70%, 30%
            - 100%, 20%
            - ...
    - Pour les modèles rnn, voir si entrainé sur des arcticles long les permets de mieux classifier les articles courts (phénomène observé avec sur les rnn based machine translation) 
    

## Semaine 1

### To do


- [ ] représentation BOW ( Logistic reg, svm, ... )
- [ ] Skip gram, CBOW (continuous BOW)
- [ ] ...

### Jounal de la semaine

Soumission d'une baseline : logistic regression sur tfIDF.

accuracy train : 78%
accuracy val : 67%
accuracy zindi: 57%


---

## Semaine 2
### To do
- [ ] Exploration d'autre algo (SVM, bagging, xgb, ...)
- [ ] Test des paramètres du n-gram
- [ ] representation présence, fréquence, tf IDF à la classification
- [ ] Analyse des erreurs.
- [ ] Augmentation

### Jounal de la semaine

L'augmentation n'a pas améliorer les performances.

## Semaine 3
### To do
- [ ] Byte Pair encoding
- [ ] Premier DL model (RNN)
- [ ] entrainer un Word2Vec