Rechercher des homophones dans des fichiers à l'aide de GroupDocs

Les synonymes sont des mots ayant une signification similaire, et les homophones sonnent de la même manière mais ont des significations ou des orthographes différentes. Nous avons appris à trouver des synonymes dans plusieurs documents en utilisant Java. Aujourd’hui, dans cet article, nous verrons comment rechercher des homophones dans plusieurs documents à l’aide de Java.

Les sujets suivants seront abordés ci-dessous :

API Java pour la recherche d’homophones

GroupDocs.Search présente l’API Java GroupDocs.Search for Java qui permet de trouver n’importe quel mot et ses homophones dans plusieurs fichiers d’un dossier spécifique. Il peut rechercher le contenu de différents formats. En plus de trouver les homophones, l’API prend en charge de nombreuses autres techniques de recherche, notamment :

  • Recherche sensible à la casse
  • Recherche floue
  • Recherche d’expressions
  • Recherche d’expressions régulières
  • Recherche de synonymes
  • Recherche de caractères génériques

Vous pouvez télécharger le fichier JAR à partir de la section des téléchargements ou utiliser les dernières configurations de référentiel et de dépendance Maven dans vos applications Java.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>21.8</version> 
</dependency>
PM> Install-Package GroupDocs.Search

Trouver des homophones dans plusieurs fichiers en Java

Les étapes suivantes expliquent comment rechercher des homophones dans plusieurs fichiers d’un dossier en Java.

  • Définissez la requête de mot de recherche, le dossier d’indexation et le dossier conteneur de vos fichiers.
  • Créez Index avec le dossier d’index défini.
  • Ajoutez le dossier du document à l’index.
  • Définissez les SearchOptions et activez l’homophoneSearch à l’aide de la méthode setUseHomophoneSearch.
  • Effectuez la recherche d’homophones à l’aide de la méthode de recherche.
  • Utilisez les propriétés du SearchResult récupéré selon vos besoins.

Le code source Java suivant trouve tous les homophones dans les fichiers du dossier défini. De plus, vous pouvez également gérer votre dictionnaire d’homophones.

// Rechercher des homophones dans plusieurs fichiers et dossiers à l'aide de Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Création d'un index dans le dossier spécifié
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Création d'un objet d'options de recherche
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Rechercher le mot "droit"
// En plus du mot 'right', les homophones 'rite, write, wright, ...' seront également recherchés
SearchResult result = index.search(query, options);

System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

La sortie du code ci-dessus est la suivante :

Query: right
Documents: 2
Occurrences: 17

Vous pouvez utiliser les résultats de la recherche d’homophones en suivant les étapes après avoir obtenu les homophones et leurs occurrences à partir de chaque document.

  • Parcourez les résultats de la recherche.
  • Obtenez chaque FoundDocument à l’aide de la méthode getFoundDocument.
  • Utilisez les propriétés de chaque FoundDocument selon vos besoins.
  • Maintenant, parcourez les champs de FoundDocument en obtenant FoundDocumentField.
  • Plus tard, à partir de chaque FoundDocumentField, récupérez tous les termes et leurs occurrences dans chaque document.

L’exemple de code Java suivant imprime les résultats de la recherche d’homophones avec le nombre d’occurrences de chaque terme recherché.

// Impression des résultats de la recherche d'homophones en Java
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

// Parcourir les documents
for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("Document: " + document.getDocumentInfo().getFilePath());
    System.out.println("Occurrences: " + document.getOccurrenceCount());
  
  // Parcourir les champs trouvés
  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // Impression des termes trouvés
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t" + field.getTerms()[k] + "\t - \t" + field.getTermsOccurrences()[k]);
            }
        }
    }
}

Voici la sortie de l’exemple de code ci-dessus.

Query: right
Documents: 2
Total occurrences: 17

Document: C:/documents/sample.docx
Occurrences: 11
    Field: content
    Occurrences: 11
        right             3
        rite               4
        wright           1
        write             3
Document: C:/documents/sample.txt
Occurrences: 6
    Field: content
    Occurrences: 6
        right             4
        write             2

Rechercher des homophones et des résultats d’impression à l’aide de Java - Code complet

Le code Java suivant combine les étapes ci-dessus. Initialement, il trouve les homophones selon la requête, puis imprime toutes les occurrences d’homophones de chaque document dans le dossier fourni.

// Rechercher des homophones dans plusieurs fichiers et dossiers à l'aide de Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Création d'un index dans le dossier spécifié
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Création d'un objet d'options de recherche
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Rechercher le mot "droit"
// En plus du mot 'right', les homophones 'rite, write, wright, ...' seront également recherchés
SearchResult result = index.search(query, options);

System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("Document: " + document.getDocumentInfo().getFilePath());
    System.out.println("Occurrences: " + document.getOccurrenceCount());

  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // Impression des termes trouvés
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t" + field.getTerms()[k] + "\t - \t" + field.getTermsOccurrences()[k]);
            }
        }
    }
}

Conclusion

Pour conclure, vous avez appris à trouver les mots et leurs homophones à partir de plusieurs documents dans un dossier spécifié à l’aide de Java. Vous pouvez essayer de développer votre propre application Java pour rechercher des homophones en utilisant GroupDocs.Search for Java.

En savoir plus sur l’API Java Search Automation dans la documentation. Pour découvrir ses fonctionnalités, vous pouvez consulter les exemples disponibles sur le référentiel GitHub. Contactez-nous pour toute question via le forum.

Voir également