Code Monkey home page Code Monkey logo

pseudo_app's Introduction

Pseudo App

This demo app is part of the document's pseudonymization effort lead at Etalab's Lab IA. Other Lab IA projects can be found at the Lab IA.

Project Status: [Active]

Intro/Objectives

The purpose of this repo is to provide a quick demo to the pseudonymization tool we developped. The larger goal of the pseudonymization project is to help France's Conseil d'État open their Justice decisions to the general public, as required by the law. More info about pseudonymization and this project can be found in our French pseudonymization guide here. Behind this web site, there is an API that does the job of text tagging and pseudonymization.

Methods Used

  • Natural Language Processing: Information Extraction : Named Entity Recognition
  • Natural Language Processing: Language Modelling / Feature Learning: Word embeddings
  • Machine Learning: Deep Learning: Recurrent Networks: BiLSTM+CRF

Technologies

  • Python
  • Flair, sacremoses
  • Dash
  • SQLite
  • Pandas

Demo Description

The demo consists in four tabs:

  1. Introduction of the project: a brief insight into our pseudonymisation project,
  2. Upload of a document to be pseudonymized: allows for an imageless .doc, .docx, or .txt file to be uploaded (up to 100 kB)
  3. Comparison of volume of training data vs annotation performance: we try to answer the question how much data do I need to get decent results?
  4. API Stats: the use stats of the API that actually does the work.

This demo depends by default on the pseudo API. The API is automatically pulled from its repo in the docker-compose file.

You do need to train a NER model with the Flair library. Unfortunately, we cannot share nor the model nor the data it was trained on as it contains non-public information.

Getting Started

The easiest way to run this application is by using Docker and Docker Compose.

  1. Clone this repo (for help see this tutorial).
  2. Create a .env file in the repo folder and indicates there the path of the local model to the .env file (variable : PSEUDO_MODEL_PATH) + the path of the API database (variable : PSEUDO_API_DB_PATH) + the url of the API (variable : PSEUDO_REST_API_URL). Note that you could also pass this env var to the app directly and you would not need run the API.
  3. Launch the wrapper bash file run_docker.sh. This file will clean and rebuild the required Docker containers by calling docker-compose.yml.
  4. Go to localhost/pseudo/

Project Deliverables

Contact

  • Feel free to contact @pedevineau or @psorianom or other Lab IA team members with any questions or if you are interested in contributing!

pseudo_app's People

Contributors

pedevineau avatar roseporeaux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pseudo_app's Issues

Remarque sur "Pseudonymisez un document"

  • Il n'y a pas de message d'erreur quand tu load un doc de plus de 100Ko. Peut-être en ajouter un, sinon on ne comprend pas pourquoi il ne se passe rien.

  • Éventuellement mettre un lien sur "lancez le texte exemple en cliquant ici", sinon on ne comprend pas que c'est cliquable (la souris ne passe pas en doigt cliquable)

  • Le doc taggé et pseudonymisé ensuite c'est super bien fait !!

Support du format .odt?

En lisant ce commentaire je comprends entre les lignes que le format .odt est partiellement supporté.

Si c'est bien le cas, peut-on le documenter dans le README ou ailleurs?

Que faudrait-il pour le supporter complètement?

Message erreur

Il n'y a pas de message d'erreur quand tu load un doc de plus de 100Ko. Peut-être en ajouter un, sinon on ne comprend pas pourquoi il ne se passe rien.

Remarques sur l'onget "A propos"

Remarque sur la forme : tu as pas moyen de mettre le texte sur toute la largeur de la fenêtre, et pas juste dans la colonne de gauche ?

La pseudonymisation en quelque mots

Peut-être remplacer par "Qu'est-ce-que la pseudonymisation ?", pour que tous les titres soient des questions.

est une obligation légale qui s’impose aux administrations

Mathilde m'a fait corriger ce passage dans le guide parce qu'il y a quelques exceptions : j'ai remplacé par "est généralement une obligation qui s’impose..."

Afin de faciliter l'ouverture au grand public

Remplacer par "Afin de faciliter l'ouverture au grand public des documents administratifs sous forme de texte libre et contenant des données personnelles" (tu ne dis jamais avant de quel type de documents on parle)

Cette démo, l'API, et la guide pseudonymisation (où ous pouvez trouver beaucoup plus d'informations) font partie des outils mutuaisables du Lab IA d'Etalab.

Je propose : "Cette démo, l'API sur laquelle elle s'appuie, et le guide dans lequel vous trouverez plus d'informations sur la démarche font partie des outils mutualisés développés par le Lab IA d'Etalab.

La pseudonymisation peut être vu

"peut être vue"

Cette démo utilise une approche de ce type, c'est-à-dire, nous avons entraîné un modèle en utilisant des décisions de justice annotées

"Cette démo utilise une approche de ce type : nous avons entraîné un modèle de REN en utilisant des décisions de justice annotées"

annotées indirectement

C'est pas clair très ce que tu veux dire par "indirectement" ?

Utiliser cette démo

Peut-être remplacer par "Que contient cette démo ?", ça correspond mieux à ce que tu dis ensuite

La quantité des documents annotés à la main a une certaine relation avec la qualité de l'annotation automatique

Peut-être le formuler dans l'autre sens : "La qualité de la reconnaissance automatique d'entités est directement liée à la quantité de documents annotés à la main"

Remarques sur "API Stats"

Derrière cette dèmo il tourne une API qui fait le travail.

"Derrière cette démo, une API réalise la pseudonymisation des exemples que vous lui soumettez."

Requêtes conll
Requêtes pseudonymized
Requêtes tagged

Je sais pas si c'est vraiment important, c'est surtout pour nous j'imagine mais on ne comprend pas vraiment ce que c'est ces trois catégories !

Remarques sur "Volume des données annotées"

Sur le titre : "Volume de données annotées" c'est plus clean mais franchement c'est pas important

est un premier pas lors du lancement

Je pense que tu veux dire : "est une première étape indispensable lors..."

un aperçu sur l'impact du volume

un aperçu de l'impact

les annotations faites par huit modèles différents sur la même décision de justice

au lieu de "annotations faites" j'utiliserais peut-être "les résultats obtenus", pour mieux distinguer l'annotation humaine et le résultat de l'algo

Ces modèles varient par rapport à la taille du corpus d'entraînement utilisé

"La différence entre ces modèles est la taille du corpus utilisé pour les entraîner"

c'est mieux d'avoir autant de données annotées que possible

"il est préférable de disposer d'autant de données annotées que possible"

Je trouve que cet onglet est vraiment hyper intéressant et super bien présenté, bravo !

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.