Comparaison de 4 API d’extraction de mots-clés appliquées à des textes d’oeuvres littéraires (troisième partie)

Ce texte est le troisième et dernier d’une série décrivant notre démarche portant sur l’extraction de mots-clés depuis des textes de livres. Consultez d’abord le premier texte pour des explications, et le second texte pour une description de notre méthodologie.

Les données obtenues avec les outils que nous avons développés représentent un très grand volume d’information, et leur pertinence varie selon l’angle d’analyse que nous prenons, et les objectifs que nous tentons d’atteindre. Nous ferons donc une analyse de ces données selon trois approches différentes : la quantité, la qualité et la précision.

1. Quantité : est-ce que les API identifient vraiment un volume significatif des mots-clés qui ajoutent à la trouvabilité?

On s’intéresse ici au nombre de mots-clés identifiés par les API et qui enrichissent vraiment la description qui avait préalablement été réalisée par l’éditeur. En effet, une API qui n’identifierait que des mots-clés apparaissant déjà dans les métadonnées du livre ne serait pas très utile.

Dans cette perspective, nous avons établi deux indicateurs quantitatifs pour chacun de nos échantillons :

  • le nombre absolu de mots-clés obtenus des API qui étaient redondants (déjà présents dans le titre, la description ou la liste de mots-clés)
  • le pourcentage correspondant (proportion du résultat d’une API qui est redondant)

Les résultats sont présentés dans le tableau suivant, sous la forme d’une moyenne par titre :

Les données brutes, compilées titre par titre, et les formules utilisées pour obtenir ces résultats sont disponibles dans notre version tabulaire des données. Notons qu’il faut évidemment interpréter ces indicateurs avec réserve. D’une part, ils ne tiennent pas compte de la qualité des mots-clés générés. D’autre part, notre vérification à savoir si un mot est déjà présent dans les métadonnées est très basique (une comparaison des chaînes de caractères, qui ne tient donc pas compte des variations en genre et en nombre, par exemple).

TextRazorIBM Watson (entités)IBM Watson (mots-clés)Google Cloud
Rosette
Nombre de mots-clés identifiés689,246,250,01748,154,0
Redondants avec les métadonnées8,95,51,7230,14,3
Pourcentage de redondance2,4 %12,5 %3,4 %13,2 %12,4 %
Pourcentage d’originalité97,6 %87,5 %96,6 %86,8 %87,6 %

Le tableau permet quand même de constater une grande variabilité sur le nombre de mots-clés obtenus : TextRazor et Google Cloud sont particulièrement « verbeux », mais TextRazor semble identifier plus de termes originaux (~97,6 % de ses résultats le sont) que Google Cloud (à 86,8 %).

Dans le cas d’IBM Watson, il semble important de noter deux choses :

  • L’API retourne au maximum 50 résultats, parce que nous avons laissé la valeur « par défaut » au paramètre du nombre d’entités à retourner (nous avons également utilisé les paramètres « par défaut » pour toutes les autres API). Ça explique les volumes plus faibles, mais il faut retenir que Watson pourrait retourner plus de résultats.
  • Nous avons choisi d’afficher les résultats des entités et des mots-clés (deux types de requêtes différentes à l’API). Aucune des autres API utilisées n’offrait deux catégories de résultats avec des volumes suffisants pour être pertinents dans notre analyse.

Enfin, on observe certains écarts dans les indicateurs d’un éditeur à l’autre. Sans avoir fait une analyse approfondie, il semble que dans certains cas, les chiffres de redondance sont plus élevés chez les éditeurs qui documentent eux-mêmes des mots-clés, que chez ceux qui ne le font pas (ce qui serait donc plutôt un indicateur du « bon travail » de l’éditeur, qu’une qualification du travail des API).

Chose certaine, avec les résultats quantitatifs obtenus, on pourrait dire que les API ajoutent significativement à la trouvabilité, si on ne tenait pas compte de la qualité des résultats.

2. Qualité : est-ce que les mots-clés générés sont pertinents?

Évidemment, dans ce cas, la réponse est plus subjective. Comment déterminer la pertinence d’un mot-clé? Est-ce qu’un mot est pertinent s’il est représentatif du contenu de l’oeuvre? Ou plutôt s’il correspond à un élément anecdotique du point de vue du texte, mais important pour attirer l’attention d’un grand nombre de consommateurs? Est-ce que certains mots-clés, même s’ils permettent d’atteindre l’objectif d’augmenter la trouvabilité du livre, devraient être proscrits, parce qu’ils pourraient révéler une partie de l’intrigue? Est-ce que la réponse à la question précédente est la même selon que les mots soient affichés aux acheteurs, ou simplement indexés, mais pas affichés?

Sans avoir de réponses à toutes ces questions, nous faisons quand même des observations sur les résultats des différentes API analysées.

TextRazor

TextRazor impressionne par le nombre, la diversité et la précision des entités qu’il identifie.

Par exemple, pour le recueil Les nouvelles du père, il identifie 400 entités, dont :

  • des objets du quotidien, comme « photographie », « cigarette » ou « ascenseur »
  • des marques et des produits, comme « YouTube », « Mattel » ou « PowerPoint »
  • des personnes ou des personnages, par exemple « Henri Ford » ou « Dora »
  • des lieux, comme « Vieux-Québec » et « Sainte-Brigitte-de-Laval »
  • des éléments un peu plus abstraits, ou des concepts, comme « sommeil », « sourire », « innovation » ou « divorce »

On peut présumer que certains de ces mots-clés seraient d’intérêt pour différents acheteurs potentiels du livre. Et à première vue, dans aucun cas ces mots-clés ne semblent nuisibles.

TextRazor n’identifie toutefois pas strictement des mots présents dans le texte, il identifie l’entité. Dans Noémie 21 — Papa Dracula !, il a identifié « Lycanthrope », alors que le texte mentionnait « même si, au loin, les sirènes hurlent comme des loups-garous ». C’est peut-être un problème du point de vue de la trouvabilité : l’acheteur type cherchera probablement « loup-garou » et pas « lycanthrope ».

Notons que TextRazor identifie des sujets (Topics), qui pourraient également être une source intéressante de mots-clés.

IBM Watson

Dans nos résultats, Watson identifie un moins grand nombre de mots-clés que les autres API (voir l’explication plus haut, dans l’analyse quantitative), mais présente des résultats sous trois formes différentes, qu’il appelle entités, mots-clés et concepts. Par exemple, pour le livre J’ai confiance — Réflexion (sans cynisme) d’un jeune politicien de Simon Jolin-Barrette, il identifie :

  • des entités, comme « États-Unis », « État québécois » et « Trump »
  • des mots-clés, comme « centralisation du pouvoir », « sens de l’état » et « service public »
  • des concepts, comme « Justice », « Culture », « Démocratie ».

On pourrait questionner qu’est-ce qui correspond à quoi (« centralisation du pouvoir » pourrait être un concept), mais dans notre perspective d’enrichir la trouvabilité des livres sans nécessairement afficher les mots-clés (au sens large, pas le sous-ensemble des résultats de Watson), tout est utile.

Évidemment, les exemples que nous choisissons sont intéressants, mais Watson sait également identifier des banalités : au 3e rang des entités les plus pertinentes, on trouve « un » (le chiffre).

Google Cloud

Dans le cadre de nos tests, les outils de traitement du langage naturel de Google ne produisaient que des entités.

Pour Les Fées-du-phénix T3, l’API a identifié les personnages principaux et différentes entités pertinentes (comme « fées »), mais on note surtout qu’il sait identifier des noms communs pour les lieux et les personnes (alors qu’on remarque surtout des noms propres chez les autres API) :

  • « souterrains », « extérieur » et « montagne » pour les lieux
  • « combattant », « enchanteur », « guerriers » ou « vengeurs » pour les personnes

Autre élément distinctif, l’API sait identifier des événements : « bataille », « victoire », « adieux », « tempête ».

Rosette

Comme Gloud Cloud, dans le cadre de nos tests (lire : avec des textes en français), Rosette ne sait qu’identifier des entités. Un survol des résultats obtenus semble indiquer que cette API donne beaucoup d’importance aux personnes et personnages.

Elle identifie néanmoins également d’autres mots-clés. Par exemple, dans À Juillet, toujours nue dans mes pensées, elle identifie « Chine », « France », « Jujube », « Bingo ».

3. Précision : est-ce que les API identifient bien les concepts?

Dans la perspective de notre projet, il importe peu de savoir si les API ont bien compris le sens des mots-clés qui sont identifiés : on voudra les inclure (ou pas) dans les métadonnées pour que le titre sorte lors d’une requête sur le terme concerné. On ne cherche pas à faire de l’affichage ou à bâtir un graphe de connaissances.

Il nous apparaît néanmoins pertinent de se poser la question de la précision. Les réponses pourraient être importantes si on s’intéresse à d’autres applications potentielles des outils de traitement du langage naturel pour la mise en marché des livres. Il y en a plusieurs, qui sortent du cadre de la présente analyse, mais on peut rapidement évoquer la géolocalisation des oeuvres sur une carte, le référencement et l’optimisation pour les moteurs de recherche, le web sémantique et les données structurées et liées…

Les résultats sont mitigés. Dans certains cas, comme Biographie d’un discours d’André Pratte, TextRazor identifie bien que…

  • « Toronto », « Plaines d’Abraham » et « Le Bourget » correspondent à des lieux
  • « James Wolfe », « Élisabeth II » et « La Fontaine » sont des personnes
  • « Église catholique », « Parti libéral du Canada » et « les républicains » sont des organisations
  • et enfin que « Révolution française » et « Rébellion des Patriotes » sont des événements.

Mais pour le même texte, il identifie également des entités douteuses : « désespérés » comme lieu (le texte disait « Désespérés d’être venus trop tard pour jouer leur tête dans les événements de 37 »), « le nôtre » comme personne, ou « Mgr » comme organisation.

Les résultats varient évidemment d’un texte à l’autre. Anecdotiquement, les API semblent avoir un peu plus de mal avec les expressions typiquement québécoises. Dans Séraphin, « Ti-Mousse » et « Astheure » sont des lieux et « yâble » un événement.

Notons que pour chaque entité, les API donnent généralement un indicateur de confiance sur la pertinence de leur choix. Dans notre analyse, nous avons choisi d’utiliser cet indicateur exclusivement comme moyen de trier les mots-clés des plus intéressants aux moins intéressants. Il aurait également pu être utilisé comme filtre (pour exclure toutes les entités dont l’indicateur de confiance est inférieur à une valeur donnée). Peut-être que certains des cas inappropriés seraient éliminés.

Chose certaine, la conclusion concernant la précision dans le cadre d’applications allant au-delà de la simple indexation de mots-clés, est que malgré une précision étonnante dans certains cas, la présence quasi systématique d’erreurs rend impossible une utilisation directe des résultats associés à des concepts, sans supervision humaine.

Enfin, mention spéciale pour deux API, qui donnent des liens vers des bases de données ou des graphes de connaissances publics. TextRazor inclut presque systématiquement des liens vers Wikipédia, ainsi que les identifiants Wikidata et Freebase des entités. L’API d’IBM Watson met quant à elle parfois des liens vers DBPedia.

Réflexion sur l’expérience utilisateur

Un problème observé, peu importe l’API concernée, est la difficulté probable pour le consommateur d’établir un lien entre le terme qu’il aura vraisemblablement cherché, et le résultat obtenu.

Par exemple, « divorce » est identifié dans le contexte de Parce que c’était toi de Marc Fisher, et ce pourrait être un terme ajouté à ses métadonnées. À lire la description du texte, c’est assez pertinent, et un consommateur qui cherche « divorce » ne devait pas être surpris de trouver ce titre, même si le mot « divorce » n’apparaît pas dans la description.

Mais cette situation est l’exception plutôt que la règle : assez souvent, le lien entre les mots-clés et la description du livre n’est pas évident. Ou même si on peut deviner le lien, il est plus difficile de savoir à quel point le résultat est pertinent. Par exemple, si on ajoutait « Jean Chrétien » dans les mots-clés associés à La Bataille de Londres, le consommateur qui trouve ce titre suite à cette requête pourrait se demander si le rôle de Jean Chrétien est réellement abordé dans le livre, ou s’il est simplement mentionné une ou deux fois dans le texte.

Ceci dit, ces réserves s’appliquent également à des mots-clés qui seraient choisis uniquement par des humains, sans assistance d’intelligence artificielle. À partir du moment où on choisit d’ajouter des mots qui ne font pas partie du titre ou de la description, on s’expose à ce genre de situation.

Conclusions de l’expérience

Les API de traitement du langage naturel sont certainement des outils à considérer pour enrichir les métadonnées de livres, en particulier les mots-clés. Elles sont une solution simple pour générer des idées de termes liés au contenu.

Dans un contexte de pure indexation sans limite sur le nombre de termes indexés, on pourrait même envisager de les utiliser sans trop de supervision humaine. En effet, les mots identifiés, bien qu’imparfaits, ne sont pratiquement jamais nuisibles s’ils ne servent qu’à de la recherche (et pas de l’affichage).

Toutefois, dans le contexte réel, où les libraires en ligne qui indexent les mots-clés (Amazon et peut-être d’autres) limitent probablement le nombre de mots ou la taille totale du texte indexé, il apparaît nécessaire d’ajouter une couche de curation humaine sur les mots-clés générés.

Pour faire un exemple clair : prenons un titre pour lequel une API nous donne 500 mots-clés. Pour une application où il n’y a pas de limites d’indexation (par exemple : le moteur de recherche sur le site web de l’éditeur), on peut probablement utiliser les résultats de l’API sans intervention humaine. Toutefois, lorsqu’il y a des limites (par exemple : les mots-clés transmis à la chaîne de valeur du livre via les métadonnées en ONIX, et dont Amazon, vraisemblablement le seul utilisateur de ces données, ne retiendra qu’un nombre limité), il vaudra mieux effectuer une curation par un humain pour ne conserver que les mots-clés les plus pertinents.

Nous retenons donc que ces API pourraient constituer une très bonne base d’outil d’aide à l’enrichissement de métadonnées.

Laisser un commentaire