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

Les synonymes sont des mots ayant une signification similaire, et les homophones se prononcent 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 en utilisant 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 trouver n’importe quel mot et ses homophones dans plusieurs fichiers d’un dossier spécifique. Il peut rechercher le contenu de divers formats différents. 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 de phrases
  • Recherche d’expressions régulières
  • Recherche de synonymes
  • Recherche par joker

Vous pouvez télécharger le fichier JAR à partir de la section téléchargements ou utiliser le dernier référentiel et dépendance Maven configurations 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

Find Homophones in Multiple Files in 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.
  • Ajouter le dossier du document à l’index.
  • Définissez les SearchOptions et activez l’homophoneSearch en utilisant setUseHomophoneSearch().
  • Effectuez la recherche d’homophones en utilisant search().
  • 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 en utilisant 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());
  
        // Printing found terms
        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 à l’aide de 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.

See Also