En y réfléchissant un peu, un texte, des phrases, des mots, ne sont que de simples suites de caractères, tout comme une image n'est qu'une simple matrice de pixels. Cependant, notre cerveau est capable d'interpréter cet enchaînement de caractères, et de l'associer à des concepts, en d'autres termes de lui donner du sens. Si on prend un peu de recul là-dessus, on peut se dire que notre cerveau est sur bien des aspects clairement impressionnant.

Un enjeu de ces dernières années, c'est entre autres de permettre aux ordinateurs d'imiter cet aspect notre cerveau, en leur donnant la capacité de trouver le sens de la donnée avec laquelle ils travaillent. C'est par exemple ce que tente de faire l'intelligence artificielle.

Je vous rassure tout de suite, on ne va pas du tout parler d'intelligence artificielle (même si cela serait extrêmement intéressant). On va cependant réduire notre champ de travail et essayer de comprendre comment il est possible d'attribuer un score de corrélation entre un texte donné et une multitude d'autres. Et pour cela, on va se pencher sur la manière dont se prend ElasticSearch (ou plutôt Apache Lucene) pour répondre à cette problématique.

Bienvenue en terminale, vous avez deux heures. Cette équation (simplifiée) représente une manière de calculer ce fameux score de corrélation, et c'est exactement ce que nous allons décortiquer.

Dans un second temps, nous verrons comment nettoyer un texte "humain" afin de faciliter sa compréhension par un ordinateur. Char filters, tokenizers, token filters, tant d'outils qui permettront de réduire un texte à son sens profond, de réduire son "bruit" afin d'optimiser les scores de corrélation.

Et petit bonus, vous pourrez même briller en société en étant en mesure de placer dans vos soirées mondaines des termes comme "Term frequency", "Inverse document frequency", "Coordination factor", "Inverted index"...

Comments

Comments are closed.