Expérience avec le Langage naturel

Déjà la semaine passée au salon du Big Data j’avais encore entendu parlé de traitement du langage naturel, et là au détour de recherches sur l’analyse syntaxique pour les langages C/C++ et Scala, je suis tout d’abord tombé sur NLTK qui me semblait déjà pas mal. Ensuite, sans trop d’effort, je suis tombé sur spaCy qui m’a tout de suite intrigué et un peu séduit (même si je n’en ai pas vraiment besoin en ce moment). C’est un techno à base de machine learning et, qui plus est, on peut tout à fait testé soit même ! Je n’ai pas attendu mon reste pour tester cela.

spaCy fournit une comparaison (je n’ai pas vérifié les infos) face à la concurrence, ce qui donne en plus un état de l’art.

Pour commencer, je me suis fait une image docker pour ne pas polluer mon environnement et jouer avec rapidement depuis n’importe où.

Il existe aussi d’autres sympathiques images déjà prêtes comme celle de https://github.com/jgontrum/spacy-api-docker qui est interrogeable via une API REST.

spaCy est un produit de ExplosionAI qui offre gentiment ces outils (demos en ligne et code sur GitHub) à côté d’une offre commerciale (je trouve que c’est une des meilleures techniques pour inspirer confiance et démontrer ses capacités).

L’API est complètement documentée ici et en bonus, j’ai trouvé ce mémo. A partid là, pour jouer un peu avec, à partir de l’image docker citée ci-dessus, j’ai créé ce petit script de démonstration (il existe des avec d’autres exemples de code). Si vous avez la flemme vous pouvez visualiser le résultat en ligne.

Le résultat est cette sortie :

Tokens:
	 ADJ Next
	 NOUN friday
	 ADP at
	 NUM 1
	 NOUN PM
	 PUNCT ,
	 PRON I
	 VERB will
	 VERB have
	 NOUN lunch
	 ADP in
	 PROPN Paris
	 ADP with
	 DET my
	 NOUN friend
	 PROPN Chris
	 PUNCT ,
	 DET the
	 NOUN one
	 PRON who
	 VERB has
	 DET a
	 ADJ red
	 NOUN hair
	 NOUN cat
	 PUNCT .
Entities [('Next friday', 'DATE'), ('1 PM', 'TIME'), ('Paris', 'GPE'), ('Chris', 'PERSON')]

Et ces éléments au format SVG et HTML:

Next friday DATE at 1 PM TIME , I will have lunch in Paris GPE with my friend Chris PERSON , the one who has a red hair cat.

Je pense que j’ai désormais suffisamment digressé de mon sujet principal; je retourne à mon analyse statique.

Qu’est-ce que ce blog ?

Avec ce blog, je me lance dans le partage de mes expériences techniques mêlant mes sujets préférés et d’actualité. Cela devrait donc aller du C++ à Scala, en passant par l’architecture et le qualité logicielle mais aussi avec quelques digressions avec des sujets plus théoriques tels que la théorie des catégories.

What is your favorite topic ?