• Aucun résultat trouvé

Chapitre 2 Analyser pour retrouver : le TAL au service de la RI

2.4 Contraintes de l‘exploitation

L‘exploitation des ressources linguistiques dans un cadre industriel impose des contraintes particulières à leur gestion.

Héritage du passé et continuité

Le produit, en l‘occurrence le moteur de recherche, a un cycle de vie qui est propre à la vie d‘un logiciel. Avec l‘évolution du logiciel, de nouvelles versions sortent, et la maintenance est garantie jusqu‘à deux versions d‘écart avec la version actuelle. Nous estimons ce passage à environ 5 ans, ce qui veut dire qu‘il faut pouvoir donner du support sur des versions du logiciel qui sont anciennes de 5 ans. Nous ne pouvons donc pas changer radicalement l‘analyseur linguistique sans casser la rétrocompatibilité. En 2008 l‘architecture du moteur a été totalement réécrite. Cela fait que deux versions de l‘analyseur linguistique et des ressources coexistent. Cela ne facilite évidemment pas la gestion.

Un autre exemple qui illustre que nous devons assumer des choix techniques faits dans le passé et en tenir compte pendant une longue période est celui du passage à l‘UTF-8 des lexiques. Pour homogénéiser l‘encodage des lexiques morphosyntaxiques dans toutes les langues, nous voulions passer tous les lexiques au format l‘UTF-8, qui est l‘encodage choisi pour les dernières langues ajoutées. Or, cette mise à jour a été refusée pour la raison que la version de l‘analyseur linguistique en production chez certains clients n‘était pas compatible avec l‘UTF-8. Cette mise à jour doit donc attendre que la maintenance pour ces versions du moteur soit arrêtée.

46

Robustesse

L‘indexation et l‘analyse linguistique sur laquelle elle repose sont des processus automatiques. Tout type de document doit pouvoir être analysé, quels que soit le format (XML, HTML, Word, Excel, PDF, etc.), le contenu (rapports, tableurs, mails…) et le niveau de langage (soutenu, relâché, etc. ). Un analyseur robuste doit savoir se débrouiller dans les différents cas qui se présentent pour rendre des analyses correctes sans aucune intervention humaine. Cela veut dire que tous les traitements doivent être robustes, même ceux de relativement haut niveau comme l‘extraction d‘entités. Comme les résultats de ce dernier traitement sont directement visibles dans l‘interface, aucune erreur n‘est tolérée. Comme la stratégie ne prévoit qu‘une même grammaire pour tout type de document, le silence est privilégié quand il y a des risques de bruit.

Rapidité de traitement

Si l‘analyse linguistique rend possibles des fonctionnalités exclusives, elle ne doit pas augmenter de façon abusive les temps d‘indexation. Un écart substantiel dans les temps d‘indexation avec les produits concurrents se traduirait immédiatement dans un désavantage concurrentiel irrattrapable, quelles que soient les fonctionnalités supplémentaires. Dans les ressources, certaines règles doivent donc être respectées, telle la limitation de l‘utilisation des expressions régulières dans les grammaires de détection des entités, qui sont particulièrement gourmandes en temps d‘analyse. A la mise en place de l‘analyse morphosyntaxique des nouvelles langues, nous avons veillé au bon équilibre entre données statiques (le lexique) et données dynamiques (résultat d‘une analyse par règle) pour assurer de bonnes performances : seuls les phénomènes linguistiques peu récurrents mais très réguliers sont analysés par règle. Certaines technologies qui pourraient pourtant améliorer la qualité de l‘analyse linguistique comme une analyse syntaxique profonde, ne peuvent être intégrées à l‘état de l‘art actuel pour cette même raison.

Maintenance

Tout problème signalé doit être corrigible. Cela fait partie du contrat avec le client. Pour cette raison, les modèles choisis pour les traitements sont des modèles à base de règles, et non pas des modèles statistiques qui sont difficiles à corriger. Cette contrainte façonne la conception des traitements mêmes et donc des ressources.

Reproductibilité

Tout comportement du moteur doit être reproductible. Il est tout à fait possible d‘introduire des comportements aléatoires ou imprévus dans le système à travers les ressources. Il est par exemple possible que les résultats de la détection des entités varient selon la version de l‘interpréteur si l‘automate appliqué n‘est pas déterministe. On veille donc spécialement à trouver toutes sources d‘erreurs possibles et de mettre en place les procédures nécessaires pour les éviter.

Non régression

D‘une version à une autre des ressources, mais aussi de l‘analyseur, les résultats doivent être constants. Ils peuvent s‘améliorer mais ne doivent surtout pas régresser. Pour chaque traitement nous avons mis en place un ensemble des tests de non régression qui est exécuté avant chaque livraison des ressources et avant l‘intégration dans le produit. Ces procédures ont profondément modifié les méthodes de travail de l‘équipe linguistique.

47

Coût

Le grand nombre de ressources est géré – pour des raisons économiques – par une équipe restreinte. La situation idéale serait que chaque langue soit gérée par une personne dont c‘est sa langue maternelle, mais plusieurs problèmes s‘y opposent. Le premier est d‘ordre économique. Pour 19 langues, il faudrait autant de personnes, ce qui n‘est économiquement pas viable17, au moins dans le système économique actuel. Une aussi grande équipe demanderait par ailleurs des ressources supplémentaires en encadrement. Il existe heureusement des personnes plurilingues, ce qui peut réduire d‘autant la taille de l‘équipe. Le second problème est la pénurie sur le marché du travail : il n‘est pas évident de trouver sur Paris les personnes qui ont exactement le profil cherché.

Les langues ne sont pas toutes égales devant le développement commercial. Selon la stratégie adoptée et les ventes, les langues au centre de l‘attention peuvent varier. Celles qui ne sont pas au cœur de la stratégie ne sont pas délaissées, mais plutôt développées ou mises à jour ponctuellement, de façon opportuniste, quand l‘occasion se présente.

Nombre de langues

Face à la concurrence, plus le nombre de langues traitées est grand, mieux c‘est. Les autres moteurs n‘hésitent pas à mettre en avant le nombre de langues qu‘ils savent indexer. Or, il ne faut pas confondre analyse linguistique et indexation. Même le pire moteur de recherche peut indexer la quasi-totalité des langues du monde en tenant compte seulement des séparateurs comme l‘espace et la ponctuation. Sans analyse linguistique spécifique, cela est bien inutile, comme le prouve l‘exemple que nous avons mis en Annexe B, p. 253 : la requête loutre sur un moteur de recherche bien connu renvoie un site du gouvernement français en première réponse qui s‘intitule « L’outre-mer ». L‘apostrophe est le caractère par excellence qui s‘interprète différemment dans les différentes langues. Ajouter une langue au catalogue de Sinequa ne se limite donc pas à une séparation des mots ou une reconnaissance de la langue, il s‘agit de développer une analyse linguistique avancée, comme décrite dans le chapitre suivant.

Gestion unique

L‘architecture de l‘analyseur et le format des ressources sont les mêmes pour toutes les langues. Comme les langues ont des particularités linguistiques, cela veut dire que tous les mécanismes d‘analyse sont disponibles dans toutes les langues, mêmes s‘ils ne sont pas utilisés. Cette architecture est motivée par un souci de gestion industrielle. Avoir des briques logicielles spécifiques pour chaque langue compliquerait énormément l‘intégration des ressources et leur gestion.

Généricité de l’analyse

Le modèle économique actuel de Sinequa est celui d‘un éditeur de logiciel, et non celui d‘une société de services. Le moteur doit pouvoir s‘intégrer sans réglage linguistique spécifique au cœur du moteur. Contrairement à d‘autres acteurs du TAL, nous ne créons pas de ressources par secteur ou par thématique abordée. Cela veut dire que la vision lexicale est celle de l‘agrégation : dans les lexiques de Sinequa on trouve donc la langue générale et les langues de spécialité. Cela ne veut pas dire que dans l‘avenir des modèles différents peuvent coexister et

17

Quand nous avons développé le gros des langues, Sinequa comptait une douzaine de salariés. Milieu 2009, il en compte 35. L‘équipe des linguistes en CDI a varié d‘un (moi-même) à cinq.

48 s‘appliquer selon le type de document analysé. Notre analyse en ce matière est fourni en Annexe J, p. 285.

Plusieurs distributions

Une distribution est un ensemble complet de ressources nécessaires au module d‘analyse linguistique. Dans cet ensemble, des ressources peuvent être ajoutées, retirées, ou remplacées. Il peut s‘agir de lexiques, mais aussi de grammaires de désambiguïsation morphosyntaxique, de détection d‘entités, etc. Deux types de distributions existent : celles qui ont été adaptées aux besoins spécifiques de certains clients (mais c‘est très rare et les adaptations sont minimales, ce qui prouve la généricité du moteur), ou bien des distributions relatives aux projets de recherche. Ces dernières distributions peuvent donner naissance à des déclinaisons futures du produit, comme par exemple une version du moteur spécifique pour analyser et indexer les appels dans les centres d‘appel, suite du projet Infom@gic ST2.31.

2.5 Conclusion

Comme nous avons vu dans ce chapitre, la langue pose de nombreux défis à la recherche d‘information, et l‘intégration de techniques de TAL est une façon d‘y répondre. C‘est notamment le cas pour le moteur de recherche que nous avons étudié. Ces traitements permettent d‘augmenter le nombre de fonctionnalités lors de la recherche, voire d‘ajouter un brin d‘intelligence. En contrepartie, à cause de leur richesse un nombre important de ressources linguistiques est nécessaire, et elles représentent une grande masse de données à gérer. La recherche d'information est donc le cadre applicatif des traitements et des ressources linguistiques sur lesquelles nous avons travaillé.

49