Partager via


Considérations linguistiques et Unicode diverses

Cette rubrique décrit les éléments à prendre en compte pour les langages agglutinatifs et les paires de substitution Unicode, ainsi que pour l’utilisation de paires de substitution pour étendre le jeu de caractères Unicode afin de prendre en charge différents jeux de caractères. Cette rubrique décrit également comment les disjoncteurs identifient les expressions dans le texte et gèrent les espaces non cassants, et comment les disjoncteurs et les séparateurs de mots clés gèrent les nombres et les dates, les mots composés, les expressions composées, les mots et caractères spéciaux, les acronymes et les abréviations, et la majuscule.

Cette rubrique est organisée comme suit :

Identification des expressions

Les expressions sont un mot ou un groupe de mots qui sont modifiés par un ou plusieurs autres. Les expressions sont difficiles à identifier de manière cohérente, car le même modificateur peut être utilisé dans plusieurs expressions portant le même nom. Par exemple, « nouvelle maison », « chambre du Parlement », « nouvelle chambre du Parlement ».

Recherche Windows utilise des expressions le plus souvent au moment de la requête. Les expressions du texte de requête reçoivent un poids plus élevé que les mots individuels. D’après l’exemple précédent, un document contenant « Chambre du Parlement » est classé plus haut que celui contenant « House » et « Parliament » à différents points du document. Nous recommandons que les analyseurs de mots génèrent une expression au moment de la requête si l’expression est susceptible de correspondre à au moins un document.

Langages agglutinatifs

Les langages agglutinatifs forment des mots à travers la combinaison de morphèmes plus petits pour exprimer des idées composées. Chacun de ces morphèmes a généralement une signification ou une fonction et conserve sa forme d’origine et sa signification pendant le processus de combinaison. Pour les langues qui ont une morphologie agglutinative, comme le turc, le finnois, le hongrois ou le coréen, il est possible de produire des milliers de formes pour un mot racine donné.

Le tableau suivant présente une liste de formes inflédées pour le mot finlandais « talo » (« maison »).

Word Traduction
Talo Maison
Taloni Ma maison
Talossa Dans la maison
Talossani Chez moi
Taloja Maisons
Taloissa Dans les maisons

 

Les langues inflexées, telles que l’anglais, l’Français et le latin, ont un très petit nombre de formes de mots possibles pour un mot racine. Dans les langages inflectés, les morphèmes s’influencent les uns les autres lors de la liaison. La plupart des changements d’inflexion sont présents dans la tige ou la fin du mot. Contrairement aux langages agglutinatifs, les langues inflectées ont tendance à avoir des fonctions différentes pour un seul morphème. Par exemple, un morphème peut déterminer à la fois le nombre et la casse.

Les stemmers pour les langages agglutinatifs doivent peser le compromis entre performances et précision pour générer uniquement un sous-ensemble du nombre de formes de mots possibles.

Nombres, heures et dates

Word les disjoncteurs doivent utiliser un format commun pour représenter des nombres, des heures et des dates afin de faciliter l’interrogation cohérente.

Lorsque vous créez un analyseur de mots, nous vous recommandons de normaliser les nombres dans une représentation canonique à l’aide du modèle « NNddDcc », où NN est la séquence littérale « NN », dd est la partie entière du nombre, D est le littéral « D » et cc est la partie fractionnaire du nombre. Word les disjoncteurs ne limitent pas le nombre de chiffres pour l’entier ou la fraction du nombre. Nous recommandons que les disjoncteurs reconnaissent les modèles numériques qui sont délimités à la fois par des points (.) et des virgules (,). Par exemple, Recherche Windows représente « 1 000.2 » et « 1.000,2 » sous la forme « NN1000D2 ».

Choisissez un format pour le disjoncteur et le séparateur de mots. Les chiffres arabes à un octet sont normalisés de telle sorte qu’une requête contenant l’un de ces formulaires corresponde aux documents avec les autres formulaires.

Lorsque vous créez un analyseur de mots, nous recommandons que le disjoncteur présente toutes les heures sous la forme d’une représentation de 24 heures en utilisant le modèle « TThhmmss », où TT est le préfixe littéral « TT », hh est les heures, mm est les minutes et ss est les secondes. Recherche Windows ne correspond pas aux unités de temps supplémentaires, telles que les millisecondes. L’analyse des modèles A.M. et P.M. est facultative.

Lorsque vous créez un analyseur de mots, nous vous recommandons de générer des dates au format canonique « DDaaaammjj », où DD est le littéral « DD », le aaaa est les années, mm les mois et jj les jours. Nous recommandons également que les analyseurs de mots stockent les années à deux chiffres dans les formats du XXe siècle et du XXIe siècle. Par exemple, les disjoncteurs représentent « 2.2.99 » comme « DD19990202 » et « DD20990202 ». Au moment de la requête, Recherche Windows dérive la date à l’aide d’interfaces de programmation d’applications Windows (API) pour déterminer la date de croisement pour que le serveur affiche le format correct, 19XX ou 20XX.

Mots composés

Dans certaines langues, comme l’allemand, les noms sont composés de noms plus simples. Ces noms composés sont trop spécifiques en termes de signification pour un rappel de requête raisonnable. Par exemple, sans décomposition, une requête pour « Versicherung » (« assurance ») ne correspond pas à « Lebensversicherungsciones » (« vendeur d’assurance-vie »). Dans de tels cas, nous recommandons que les disjoncteurs décomposent ces mots composés en composants de base pendant la création d’index et le temps de requête. Le disjoncteur allemand décompose « Lebensversicherungsgesellschaft » en les mots de composant « Leben », « Versicherung » et « Gesellschaft ». Il applique la même décomposition au moment de la requête, ainsi que la mise en chaîne facultative pour chacun des termes résultants.

Expressions composées

Certaines langues, comme le coréen, contiennent des expressions complexes qui peuvent être rompues de différentes manières. Une expression coréenne se compose de mots de contenu, tels que des noms, des pronoms, des verbes et des adjectifs, suivis de mots fonctionnels. Les mots fonctionnels se trouvent dans les post-positions et les fins. Les post-positions indiquent le rôle fonctionnel du nom ou du pronom dans une phrase ; les fins indiquent le rôle fonctionnel du verbe ou de l’adjectif.

Une phrase peut comporter plusieurs analyses, et chaque analyse peut se composer de plusieurs mots de contenu. L’analyseur de mots doit utiliser des heuristiques propres au langage pour déterminer, à partir du contexte, le poids à donner aux différentes analyses. Le disjoncteur peut déterminer la décomposition à utiliser en fonction du nombre de mots de composant résultants. Certains analyseurs de mots peuvent favoriser les courtes séquences de termes plus longs, tandis que d’autres analyseurs de mots peuvent favoriser les séquences longues de mots plus petits.

Une autre considération est qu’en coréen, les noms et les pronoms peuvent être stockés dans l’index sans leurs mots fonctionnels correspondants. Le coréen est une langue agglutinative qui combine de nombreuses fins de mot avec des verbes et des adjectifs pour former d’innombrables formes inflectées. Les verbes et les adjectifs identifiés dans les expressions sont enregistrés avec leurs fins dans l’index, mais le disjoncteur ne génère pas de nouvelles formes.

Caractères spéciaux et mots

Les caractères spéciaux sont des caractères tels que « », « © » et « ™ ». Ces caractères sont rarement utilisés dans les requêtes. Word casseurs doivent supprimer des caractères spéciaux lors de la création de l’index et au moment de la requête.

Nous recommandons aux analyseurs de mots de reconnaître des mots spéciaux, tels que « C++ », « C# », « . NET », des notes et des notations musicales. Word casseurs peuvent utiliser une heuristique de langue pour identifier un modèle de mots spéciaux. Word les disjoncteurs peuvent également utiliser un dictionnaire personnalisé qui contient des mots spéciaux reconnus.

Acronymes et abréviations

Les acronymes et les abréviations doivent être pris en compte lorsque vous implémentez un analyseur de mots. Dans de nombreuses langues, les lettres individuelles d’acronymes sont séparées par des points. Parfois, les mots qui ne sont pas des acronymes ou des abréviations reconnus sont abrégés. Par exemple, « États-Unis of America » peut être abrégé en « USA » ou « U.S.A ». Word les disjoncteurs inclus dans Recherche Windows identifient généralement les mots à lettre unique comme des mots sonores et traitent ces mots comme des espaces réservés pendant l’heure de requête. Au moment de la requête, un analyseur de mots qui ne connaît pas les acronymes courants ou qui ne reconnaît pas les abréviations convertit l’abréviation « U.S.A. » en « U », « S » et « A ». Cette décomposition ne fournit pas suffisamment d’informations pour faire correspondre les mots de l’index de texte intégral, car tous les termes de la requête sont des mots sonores. Lorsque vous créez un analyseur de mots, nous vous recommandons de supprimer les points qui séparent les lettres des acronymes. Dans l’exemple, « U.S.A. » est stocké sous la forme « USA » et un terme de requête qui contient « U.S.A . » interroge en fait « USA ». Si un disjoncteur traite une abréviation, la période de cette abréviation n’est pas traitée comme un saut EOS. Pour cette raison, un analyseur de mots peut ne pas identifier correctement un saut EOS si l’abréviation se trouve à la fin de la phrase.

Mise en majuscules

La recherche Windows ne conserve pas actuellement la mise en majuscules lorsqu’elle enregistre des mots dans l’index de recherche en texte intégral. Word les disjoncteurs et les générateurs de formes dérivées ne doivent pas modifier la casse des mots.

Espaces insécables

Lorsque vous créez un analyseur lexical, nous vous recommandons de vous assurer que l’analyseur lexical traite les espaces non déstructurants comme des séparateurs de mots. Il est également recommandé que l’analyseur lexical génère d’autres formes du mot, avec et sans espaces insécables. Certains caractères, tels que les traits de soulignement, sont des caractères spéciaux qui sont traités comme des caractères insécables en raison des sources du texte dans lequel ils se trouvent. Par exemple, le code source ou les noms de fichiers peuvent inclure des traits de soulignement sous forme de caractères non déstructurants.

Paires de substitution

Les paires de substitution sont des représentations de caractères dans le code source qui représentent un caractère unique constitué d’une séquence de deux valeurs Unicode. Dans une paire codée, la première valeur est un substitut élevé et la seconde est un substitut faible. Un substitut élevé est un caractère de la plage U+D800 à U+DBFF. Un substitut faible est un caractère de la plage U+DC00 à U+DFFF. Les paires de substitution étendent le jeu de caractères au-delà du caractère Unicode. Nous recommandons qu’un analyseur lexicaux utilise les règles suivantes lors de la gestion des paires de substitution :

  • Un substitut élevé doit précéder un substitut faible.
  • Un substitut faible doit suivre un substitut élevé.
  • Un substitut élevé ou faible sans valeur correspondante pour son autre moitié n’a aucune signification.

Word analyseurs doivent prendre en compte les paires et générer les paires en tant que telles dans l’index. Pour plus d’informations, consultez Substitutions et caractères supplémentaires.