4D v16.3

LIRE MOTS CLES TEXTE

Accueil

 
4D v16.3
LIRE MOTS CLES TEXTE

LIRE MOTS CLES TEXTE 


 

LIRE MOTS CLES TEXTE ( texte ; tabMotsClés {; *} ) 
Paramètre Type   Description
texte  Texte in Texte original
tabMotsClés  Tableau texte in Tableau contenant les mots-clés
Opérateur in Si passé = mots uniques

La commande LIRE MOTS CLES TEXTE découpe la totalité du texte en mots et crée, pour chaque mot obtenu, un élément dans le tableau texte tabMotsClés

Le découpage en mots est effectué à l’aide du même algorithme que celui que 4D utilise pour construire les Index de mots-clés. Cet algorithme est basé sur la librairie ICU. Pour plus d’informations sur les séparateurs pris en compte, reportez-vous à l’adresse suivante : http://userguide.icu-project.org/boundaryanalysis

Note : A la demande des utilisateurs, une exception a été introduite pour les langages français et italien : le caractère apostrophe ' suivi d’une voyelle ou de la lettre h est considéré comme séparateur de mot. Par exemple, les chaînes "L'homme" ou "l'arbre" seront bien découpées en "L’"+"homme" et "l'"+"arbre".

L’algorithme utilisé diffère si l’option N’utiliser que les caractères non alphanumériques pour les mots-clés est cochée ou non dans les Propriétés de la base (reportez-vous à la section Page Base de données/Stockage des données dans le manuel Mode Développement).

Passez dans le paramètre texte le texte original à découper. Ce texte peut être stylé, dans ce cas les balises de style sont simplement ignorées. 

Passez dans le paramètre tabMotsClés le tableau texte qui sera rempli par la commande avec les mots extraits du texte. 

Si vous passez le paramètre optionnel *, la commande ne stockera chaque mot-clé qu’une seule fois dans tabMotsClés. Par défaut, si ce paramètre est omis, tous les mots extraits du texte sont stockés dans le tableau, même s’ils apparaissent plusieurs fois.

Cette commande permet d’effectuer de façon simple des recherches parmi des enregistrements contenant des textes de grande taille, en ayant la garantie d’utiliser les mêmes mots-clés que 4D. Par exemple, soit un texte contenant "10.000 Jean-Pierre BC45". Si le découpage en mots-clés donne "10.000" + "Jean" + "Pierre" + "BC45", le tableau contiendra 4 éléments. Par programmation, il est alors facile d’effectuer une boucle dans ce tableau afin de trouver les enregistrements contenant un ou plusieurs de ces mots-clés à l’aide de l’opérateur % (voir exemples).

Dans un formulaire contenant une zone de recherche, l’utilisateur peut saisir un ou plusieurs mot(s). Lorsqu’il valide, on recherche les enregistrements dont le champ MonChamp contient au moins un des mots saisis par l’utilisateur. 

  // vSearch est la variable de la zone de saisie dans le formulaire
 LIRE MOTS CLES TEXTE(vSearch;tSearch;*)
  //* pour le cas où l’utilisateur saisirait le même mot plusieurs fois
 NOMMER ENSEMBLE([MaTable];"Globaltrouve")
 $n:=Taille tableau(tSearch)
 Boucle($i;1;$n)
    CHERCHER([MaTable];[MaTable]MonChamp% tSearch{$i})
    NOMMER ENSEMBLE(([MaTable];"trouve")
    REUNION("Globaltrouve";"trouve";"Globaltrouve")
 Fin de boucle
 UTILISER ENSEMBLE("Globaltrouve")

Dans le même formulaire que précédemment, on recherche les enregistrements dont le champ MonChamp contient tous les mots saisis par l’utilisateur. 

  // vSearch est la variable de la zone de saisie dans le formulaire
 LIRE MOTS CLES TEXTE(vSearch;tSearch;*)
 $n:=Taille tableau(tSearch)
 CHERCHER([MaTable];[MaTable]ID >=0;*)
  // initialiser la recherche = tous les enregistrements
 Boucle($i;1;$n)
    CHERCHER([MaTable];&;[MaTable]MonChamp% tSearch{$i};*)
  // ajouter le critère
 Fin de boucle
 CHERCHER([MaTable]//recherche

Pour compter les mots d’un texte :

 LIRE MOTS CLES TEXTE(vTexte;tMots) // tous les mots
 $n:=Taille tableau(tMots)
 LIRE MOTS CLES TEXTE(vTexte;tMots;*) // mots différents
 $m:=Taille tableau(tMots)
 ALERTE("Ce texte contient "+Chaine($n)+" mots distincts parmi "+Chaine($m))

 
PROPRIÉTÉS 

Produit : 4D
Thème : Chaînes de caractères
Numéro : 1141
Nom intl. : GET TEXT KEYWORDS

 
HISTORIQUE 

Créé : 4D v13

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)