Les mots qui se prononcent de la même manière mais dont le sens ou l’orthographe sont différents sont des homophones. Alors que les mots qui s’épellent de la même manière, mais qui diffèrent par leur sens ou leur prononciation sont des ** homographes **. Les homonymes peuvent être homophones ou homographes ; ou les deux. Ne confondons pas et automatisons-le. Dans cet article, vous apprendrez comment rechercher des homophones dans plusieurs documents à l’aide de C#.
Les sujets suivants seront abordés ci-dessous :
- .NET API - Homophone Search
- Rechercher des homophones dans des documents à l’aide de C#
- Jouer avec le résultat de la recherche d’homophones
API .NET pour la recherche d’homophones dans plusieurs fichiers
GroupDocs.Search présente l’API .NET (GroupDocs.Search pour .NET) qui permet de rechercher des mots et leurs homophones dans plusieurs fichiers du dossier spécifié. Nous utiliserons cette API dans les exemples de cet article. Il peut rechercher le contenu de différents formats différents. En plus de trouver les homophones, l’API prend en charge de nombreuses autres façons de rechercher selon les besoins. Certaines des techniques de recherche prises en charge sont les suivantes :
- Recherche de synonymes
- Recherche de phrases
- Recherche floue
- Recherche sensible à la casse
- Recherche d’expressions régulières
- Recherche par joker
Vous pouvez télécharger le programme d’installation DLLs ou MSI à partir de la section téléchargements ou installer l’API dans votre application .NET via NuGet.
PM> Install-Package GroupDocs.Search
Trouver des homophones dans plusieurs fichiers à l’aide de C
Les étapes suivantes expliquent comment nous pouvons rechercher des homophones (mots avec un son/une prononciation similaires) dans les fichiers d’un dossier à l’aide de C#.
- Définissez la requête de recherche, un dossier d’indexation et le dossier contenant vos fichiers.
- Créez Index avec le dossier d’index défini.
- Ajouter le dossier du document à l’index créé.
- Définissez les SearchOptions et définissez le UseHomophoneSearch sur true.
- Recherchez tous les homophones en appelant la méthode Search avec les options de requête et de recherche.
- Utilisez le résumé en utilisant les propriétés du [SearchResult] récupéré (https://apireference.groupdocs.com/search/net/groupdocs.search.results/searchresult).
Le code source C# suivant trouve tous les homophones dans tous les fichiers d’un dossier défini. De plus, vous pouvez gérer votre dictionnaire d’homophones.
// Rechercher des homophones dans plusieurs fichiers et dossiers à l'aide de C#
string query = "right";
string indexFolder = @"path\indexFolder";
string documentsFolder = @"path\documentsFolder";
// 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()
{
UseHomophoneSearch = true // Enabling Homophone Search
};
// Rechercher le mot "droit"
// En plus du mot 'right', les mots "rite, wright, write, ..." seront également recherchés
SearchResult result = index.Search(query, options);
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Occurrences: " + result.OccurrenceCount);
La sortie du code ci-dessus est la suivante :
Query: **right**
Documents: 2
Occurrences: 17
Impression des résultats de recherche d’homophones à l’aide de C
Suivez les étapes ci-dessous après avoir obtenu tous les homophones et leur nombre d’occurrences dans chaque document pour présenter les résultats de la recherche d’homophones.
- Parcourez les résultats de recherche d’homophones qui sont récupérés plus tôt.
- Obtenez chaque document en tant que FoundDocument en utilisant GetFoundDocument().
- Utilisez les propriétés de chaque FoundDocument selon vos besoins.
- Maintenant, parcourez les FoundFields de FoundDocument pour obtenir FoundDocumentField.
- Enfin, à partir de chaque FoundDocumentField, obtenez ses termes et leurs occurrences dans chaque document.
Le code source C# suivant imprime les résultats de la recherche d’homophones avec le nombre d’occurrences de chaque terme recherché.
// Impression des résultats de recherche d'homophones en C#
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount + "\n");
for (int i = 0; i < result.DocumentCount; i++)
{
FoundDocument document = result.GetFoundDocument(i);
Console.WriteLine("Document: " + document.DocumentInfo.FilePath);
Console.WriteLine("Occurrences: " + document.OccurrenceCount);
for (int j = 0; j < document.FoundFields.Length; j++)
{
FoundDocumentField field = document.FoundFields[j];
Console.WriteLine("\tField: " + field.FieldName);
Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
// Impression des termes trouvés
if (field.Terms != null)
{
for (int k = 0; k < field.Terms.Length; k++)
{
Console.WriteLine("\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[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 C# - Code complet
Le code C # suivant résume les étapes ci-dessus, il trouve d’abord tous les homophones en fonction de la requête, puis imprime toutes les occurrences de tous les homophones dans chaque document dans le dossier fourni.
// Recherchez des homophones dans plusieurs fichiers et dossiers, puis imprimez les résultats à l'aide de C#
string query = "right";
string indexFolder = @"path\indexFolder";
string documentsFolder = @"path\documentsFolder";
// Création d'un index dans le dossier spécifié
Index index = new Index(indexFolder);
// Indexation de documents à partir du dossier spécifié
index.Add(documentsFolder);
// Création d'un objet d'options de recherche
SearchOptions options = new SearchOptions()
{
UseHomophoneSearch = true // Enabling Homophone Search
};
// Rechercher le mot "droit"
// En plus du mot 'right', les mots "rite, wright, write, ..." seront également recherchés
SearchResult result = index.Search(query, options);
// Impression du résultat
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount + "\n");
for (int i = 0; i < result.DocumentCount; i++)
{
FoundDocument document = result.GetFoundDocument(i);
Console.WriteLine("Document: " + document.DocumentInfo.FilePath);
Console.WriteLine("Occurrences: " + document.OccurrenceCount);
for (int j = 0; j < document.FoundFields.Length; j++)
{
FoundDocumentField field = document.FoundFields[j];
Console.WriteLine("\tField: " + field.FieldName);
Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
// Impression des termes trouvés
if (field.Terms != null)
{
for (int k = 0; k < field.Terms.Length; k++)
{
Console.WriteLine("\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
}
}
}
}
Conclusion
En résumé, vous avez appris à trouver les mots et leurs homophones à partir des multiples documents du dossier spécifié à l’aide de C#. Vous pouvez essayer de créer votre propre application .NET pour rechercher des homophones dans plusieurs fichiers à l’aide de GroupDocs.Search for .NET.
En savoir plus sur l’API .NET Search Automation dans la documentation. Pour découvrir les fonctionnalités, vous pouvez consulter les exemples disponibles sur le référentiel GitHub. Contactez-nous pour toute question via le forum.