Comment générer des formes de mots en Java avec GroupDocs.Search
Dans ce guide, vous apprendrez comment générer des formes en Java en utilisant l’API GroupDocs.Search. En créant un fournisseur de formes de mots personnalisé, vous permettez à votre moteur de recherche ou d’analyse de texte de reconnaître chaque variante d’un terme — qu’il s’agisse de « cat », « cats », « city » ou « citis ». Cela améliore le rappel de façon spectaculaire tout en maintenant une haute précision.
Réponses rapides
- À quoi sert un fournisseur de formes de mots ? Il génère des formes alternatives (singulier, pluriel, etc.) d’un mot donné afin que les recherches puissent correspondre à toutes les variantes.
- Quelle bibliothèque est requise ? GroupDocs.Search for Java (version 25.4 or newer).
- Ai-je besoin d’une licence ? Un essai gratuit suffit pour l’évaluation ; une licence permanente est requise pour la production.
- Quelle version de Java est prise en charge ? JDK 8 ou supérieur.
- Combien de lignes de code sont nécessaires ? Environ 30 lignes pour une implémentation simple du fournisseur.
Qu’est-ce que la fonctionnalité « créer un fournisseur de formes de mots » ?
Un create word forms provider est une classe personnalisée qui implémente IWordFormsProvider. IWordFormsProvider est une interface qui définit comment les fournisseurs fournissent des formes alternatives de mots au moteur de recherche. Elle reçoit un mot et renvoie un tableau de formes possibles — singulier, pluriel ou autres variantes linguistiques — selon les règles que vous définissez. Cela permet à l’index de recherche de traiter « cat » et « cats » comme équivalents, améliorant le rappel sans sacrifier la précision.
Pourquoi utiliser GroupDocs.Search pour la génération de formes de mots ?
GroupDocs.Search offre une extensibilité intégrée, vous permettant d’intégrer votre propre fournisseur directement dans le pipeline d’indexation. Il traite des index contenant jusqu’à 10 million de documents tout en maintenant l’utilisation de la mémoire en dessous de 500 Mo grâce à une architecture de streaming, et vous pouvez mettre en cache les résultats pour obtenir des temps de recherche inférieurs à une milliseconde.
Prérequis
- Maven installé et un JDK 8 ou plus récent configuré sur votre machine.
- Familiarité de base avec le développement Java et la configuration
pom.xmlde Maven. - Accès à la bibliothèque Java GroupDocs.Search (version 25.4 ou ultérieure).
Configuration de GroupDocs.Search pour Java
Configuration Maven
Ajoutez le dépôt et la dépendance à votre fichier pom.xml exactement comme indiqué ci-dessous :
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
Téléchargement direct
Sinon, téléchargez le dernier JAR depuis la page officielle des versions : GroupDocs.Search for Java releases.
Étapes d’obtention de licence
- Essai gratuit : Inscrivez-vous pour un essai afin d’explorer les fonctionnalités principales.
- Licence temporaire : Demandez une clé temporaire pour des tests prolongés.
- Achat : Obtenez une licence commerciale pour une utilisation en production sans restriction.
Initialisation et configuration de base
L’extrait suivant montre comment créer un index — votre point de départ pour ajouter des documents et la logique des formes de mots :
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize an index
Index index = new Index("path/to/index");
System.out.println("GroupDocs.Search initialized successfully.");
}
}
Guide d’implémentation
Ci-dessous, nous parcourons les étapes pour créer un fournisseur de formes de mots qui gère les transformations simples du singulier au pluriel et du pluriel au singulier.
Implémentation de SimpleWordFormsProvider
Vue d’ensemble
La classe SimpleWordFormsProvider implémente IWordFormsProvider. L’ancre de définition clarifie son objectif :
SimpleWordFormsProvider est une implémentation personnalisée de IWordFormsProvider qui fournit des variations singulier‑pluriel pour le moteur d’indexation.
Étape 1 – créer le squelette de la classe
Commencez par définir une classe qui implémente IWordFormsProvider. Conservez les déclarations d’importation telles quelles :
import com.groupdocs.search.dictionaries.IWordFormsProvider;
import java.util.ArrayList;
public class SimpleWordFormsProvider implements IWordFormsProvider {
Étape 2 – implémenter getWordForms
Ajoutez la méthode qui construit la liste des formes possibles. Ce bloc contient la logique principale ; vous pouvez l’étendre plus tard pour couvrir des règles plus complexes.
getWordForms reçoit un terme et renvoie un String[] contenant toutes les variations générées.
@Override
public final String[] getWordForms(String word) {
// Initialize a list to store generated word forms
ArrayList<String> result = new ArrayList<>();
// Singular form for words ending in 'es'
if (word.length() > 2 && word.toLowerCase().endsWith("es")) {
result.add(word.substring(0, word.length() - 2));
}
// Singular form for words ending in 's'
if (word.length() > 1 && word.toLowerCase().endsWith("s")) {
result.add(word.substring(0, word.length() - 1));
}
// Plural form by replacing 'y' with 'is'
if (word.length() > 1 && word.toLowerCase().endsWith("y")) {
result.add(word.substring(0, word.length() - 1).concat("is"));
}
// Basic plural forms
result.add(word.concat("s"));
result.add(word.concat("es"));
// Convert list to array and return
return result.toArray(new String[0]);
}
}
Explication de la logique
- Singularisation : Détecte les suffixes pluriels courants (
es,s) et les supprime pour approximer le mot de base. - Pluralisation : Gère les noms se terminant par
yen le remplaçant paris, une règle simple qui fonctionne pour de nombreux mots anglais. - Ajout de suffixe : Ajoute
setespour couvrir les formes plurielles régulières qui pourraient ne pas être détectées par les vérifications précédentes.
Conseils de dépannage
- Sensibilité à la casse : La méthode utilise
toLowerCase()pour la comparaison, assurant que « Cats » et « cats » se comportent de la même manière. - Cas limites : Les mots plus courts que la longueur du suffixe sont ignorés afin d’éviter de renvoyer des chaînes vides.
- Performance : Pour de grands vocabulaires, envisagez de mettre en cache les résultats dans un
ConcurrentHashMap.
Applications pratiques
Implémenter un create word forms provider peut améliorer plusieurs scénarios réels :
- Moteurs de recherche : Les utilisateurs tapant « mouse » devraient également trouver des documents contenant « mice ». Un fournisseur peut générer de telles formes irrégulières.
- Outils d’analyse de texte : L’analyse de sentiment ou l’extraction d’entités devient plus fiable lorsque toutes les variantes de mots sont reconnues.
- Systèmes de gestion de contenu : La génération automatique de tags peut inclure des synonymes pluriels, améliorant le SEO et le maillage interne.
Considérations de performance
Lorsque vous intégrez le fournisseur dans un système de production, gardez ces conseils à l’esprit :
- Mettre en cache les formes fréquemment utilisées : Stockez les résultats en mémoire pour éviter de recomposer le même mot à plusieurs reprises.
- Surveiller le tas JVM : Les grands index peuvent augmenter la pression mémoire ; ajustez
-Xmxen conséquence. - Utiliser des collections efficaces :
ArrayListconvient aux petits ensembles, mais pour des milliers de formes, envisagezHashSetpour éliminer rapidement les doublons.
Bonnes pratiques
- Maintenez la bibliothèque à jour pour bénéficier des correctifs de performance.
- Profilez le fournisseur avec des charges de requêtes réalistes pour identifier les goulets d’étranglement tôt.
Conclusion
Vous avez maintenant appris comment générer des formes en Java en utilisant un SimpleWordFormsProvider personnalisé avec GroupDocs.Search. Ce composant léger peut améliorer de façon spectaculaire la pertinence des résultats de recherche et la précision de l’analyse linguistique dans de nombreuses applications.
Étapes suivantes
- Expérimentez avec des règles linguistiques plus sophistiquées (pluriels irréguliers, stemming).
- Intégrez le fournisseur dans un pipeline d’indexation et mesurez les améliorations du rappel.
- Explorez d’autres fonctionnalités de GroupDocs.Search telles que les dictionnaires de synonymes et les analyseurs personnalisés.
Appel à l’action : Essayez d’ajouter le SimpleWordFormsProvider à votre propre projet dès aujourd’hui et voyez comment il enrichit votre expérience de recherche !
Section FAQ
Q : Qu’est-ce que GroupDocs.Search pour Java ?
R : C’est une bibliothèque puissante qui offre la recherche en texte intégral, l’indexation et des fonctionnalités linguistiques — y compris la possibilité d’intégrer des fournisseurs de formes de mots personnalisés.
Q : Comment fonctionne le SimpleWordFormsProvider ?
R : Il génère des formes alternatives en appliquant des règles simples basées sur les suffixes (suppression de « s/es », conversion de « y » en « is », et ajout de « s/es »).
Q : Puis-je personnaliser les règles de génération des formes de mots ?
R : Absolument. Modifiez la méthode getWordForms pour inclure des formes irrégulières, des règles spécifiques à une locale ou l’intégration avec des dictionnaires externes.
Q : Quelles sont les applications courantes de cette fonctionnalité ?
R : Les moteurs de recherche, les pipelines d’analyse de texte et les plateformes CMS bénéficient de la reconnaissance des variantes singulier/pluriel.
Q : Ai-je besoin d’une licence commerciale pour une utilisation en production ?
R : Oui — bien qu’un essai vous permette d’explorer l’API, une licence achetée supprime les limites d’utilisation et offre un support.
Dernière mise à jour : 2026-09-02
Testé avec : GroupDocs.Search 25.4 (Java)
Auteur : GroupDocs