Détection de la langue dans Watson Explorer Engine

La détection de la langue dans Watson Explorer Engine se fait via une classification statistique du convertisseur de normalisation. Le processus de détection de langue compare le modèle de langue d'un élément de contenu spécifié aux modèles de langue qui ont été précalculés à partir d'exemples représentatifs connus de ces langues. Les paramètres de détection de langue du convertisseur de normalisation permettent de changer les éléments de contenu qui sont utilisés pour détecter la langue, le nombre d'octets de chaque élément qui sont utilisés dans le processus de détection, etc. Watson Explorer Engine propose actuellement 14 modèles de langue : anglais, espagnol, français, suédois, italien, néerlandais, japonais, chinois, coréen, thaï, portugais, allemand, russe et catalan.

Les modèles de langue sont partitionnés en chinois-japonais-coréen et thaï (CJK) d'une part, et les langues non CJK d'autre part. Un test initial qui compte le nombre de caractères CJK et non CJK dans le texte détermine quel ensemble de modèles de langue est utilisé. Si davantage de caractères CJK sont trouvés, les modèles de langue CJK sont utilisés ; dans le cas contraire, ce sont les modèles non CJK qui sont utilisés. La raison de cette séparation provient du fait que la taille du modèle de langue est très importante dans les langues CJK par rapport à la taille des modèles de langue telle que l'anglais. Par exemple, dans un texte combinant de l'anglais et du japonais, un sous-ensemble relativement petit de texte anglais peut avoir une correspondance assez importante avec le modèle.

Lorsque l'ensemble de modèles de langue à utiliser est déterminé, Watson Explorer Engine calcule un modèle de langue pour le texte d'entrée en utilisant les 300 séquences les plus courantes (en d'autres termes, les mieux classées) comprenant de 1 à 4 caractères (n-grammes) qui apparaissent dans n'importe quel mot du texte d'entrée. Le degré de correspondance entre deux modèles de langue est calculé en utilisant une mesure "décalée", où chaque n-gramme qui apparaît dans le nouveau modèle de langue est comparé à ceux de chaque modèle de langue existant. Le résultat de cette comparaison contribue au score de comparaison global de la manière suivante :

Après comparaison du modèle de langue du texte d'entrée avec chacun des modèles de langue précalculés, la meilleure correspondance de langue est celle ayant le score le plus bas.

La correspondance de langue est ensuite qualifiée plus en détail (et les liens sont éliminés) en générant une cote de confiance. La cote de confiance est calculée en divisant la différence entre les deux scores les plus bas (en d'autres termes, les deux meilleurs scores) par un diviseur qui consiste en une valeur de confort générale pour la qualité de la correspondance de langue moins la différence entre le meilleur score et le score le moins bon. La valeur de confort est appliquée pour savoir si le modèle de langue de la nouvelle valeur a fourni suffisamment de données pour une analyse de langue significative. Ce facteur est calculé en multipliant le nombre de n-grammes d'un modèle de langue standard (300) par 300 moins le nombre de n-grammes réellement présents dans le modèle de langue que vous tentez d'identifier. Les calculs réalisés pour calculer la cote de confiance de la correspondance de langue sont donc les suivants :

    COMFORT = 300 - (300 - input-n-grams)
    CONFIDENCE = (best2 - best1) / (COMFORT - best + worst)

Si la cote de confiance est inférieure à 0,01, le convertisseur de normalisation suppose qu'aucune langue n'a été détectée avec succès et renvoie "unknown" (ou tout autre libellé défini dans le convertisseur de normalisation pour la langue par défaut).