מילים שנשמעות אותו הדבר אך שונות במשמעויות או באיות הן הומופונים. ואילו המילים המאייתות אותו הדבר, אך שונות במשמעותן או בהגייה הן הומוגרפיות. הומוניים יכולים להיות הומופונים או הומוגרפים; או שניהם. בואו לא נבלבל ונעשה את זה לאוטומטי. במאמר זה, תלמד כיצד לחפש הומופונים בתוך מספר מסמכים באמצעות C#.
הנושאים הבאים יכוסו להלן:
NET API לחיפוש הומופונים במספר קבצים
GroupDocs.Search מציג את ה-.NET API (GroupDocs.Search for .NET) המאפשר חיפוש מילים וההומופונים שלהן בתוך מספר קבצים של התיקיה שצוינה. נשתמש ב-API זה בדוגמאות של מאמר זה. זה יכול לחפש בתוכן של פורמטים שונים. יחד עם מציאת ההומפונים, ה-API תומך בדרכים רבות אחרות לחיפוש לפי דרישה. חלק מטכניקות החיפוש הנתמכות הן כדלקמן:
- חיפוש מילים נרדפות
- חיפוש ביטויים
- חיפוש מטושטש
- חיפוש תלוי רישיות
- חיפוש ביטויים רגילים
- חיפוש Wild Card
אתה יכול להוריד את קובצי ה-DLL או ה-MSI מתקין מקטע ההורדות או להתקין את ה-API באפליקציית NET שלך דרך [NuGet](https://www.nuget.org /packages/groupdocs.search).
PM> Install-Package GroupDocs.Search
מצא הומופונים במספר קבצים באמצעות C#
השלבים הבאים מנחים כיצד נוכל לחפש הומופונים (מילים עם צליל/הגייה דומים) בקבצים בתוך תיקיה באמצעות C#.
- הגדר את שאילתת החיפוש, תיקיית אינדקס והתיקיה המכילה את הקבצים שלך.
- צור אינדקס עם תיקיית האינדקס שהוגדרה.
- הוסף את תיקיית המסמך לאינדקס שנוצר.
- הגדר את SearchOptions והגדר את [UseHomophoneSearch](https://apireference.groupdocs.com/search/net/groupdocs .search.options/searchoptions/properties/usehomophonesearch) ל-true.
- חפש בכל ההומפונים על ידי קריאה לשיטת Search עם אפשרויות השאילתה והחיפוש.
- השתמש בסיכום באמצעות המאפיינים של SearchResult.
קוד המקור C# הבא מוצא את כל ההומפונים בתוך כל הקבצים של תיקייה מוגדרת. בנוסף, אתה יכול לנהל את המילון ההומופוני שלך.
// חיפוש הומופונים במספר קבצים ותיקיות באמצעות C#
string query = "right";
string indexFolder = @"path\indexFolder";
string documentsFolder = @"path\documentsFolder";
// יצירת אינדקס בתיקייה שצוינה
Index index = new Index(indexFolder);
index.Add(documentsFolder);
// יצירת אובייקט אפשרויות חיפוש
SearchOptions options = new SearchOptions()
{
UseHomophoneSearch = true // Enabling Homophone Search
};
// חפש את המילה 'נכון'
// בנוסף למילה 'נכון', ייבדקו גם המילים "טקס, רייט, כתוב, ..."
SearchResult result = index.Search(query, options);
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Occurrences: " + result.OccurrenceCount);
הפלט של הקוד לעיל הוא כדלקמן:
Query: **right**
Documents: 2
Occurrences: 17
הדפסת תוצאות חיפוש הומופון באמצעות C#
בצע את השלבים המוזכרים להלן לאחר קבלת כל ההומפונים ומספר המופעים שלהם בכל מסמך כדי להציג את תוצאות החיפוש ההומופונים.
- חצו את תוצאות החיפוש ההומופונים שאוחזרו קודם לכן.
- קבל כל מסמך כ-FoundDocument באמצעות [GetFoundDocument()](https://apireference.groupdocs.com/search/ net/groupdocs.search.results/searchresult/methods/getfounddocument).
- השתמש במאפיינים של כל FoundDocument כנדרש.
- כעת, חצו את FoundFields של FoundDocument כדי לקבל את [FoundDocumentField](https://apireference.groupdocs. com/search/net/groupdocs.search.results/founddocumentfield).
- לבסוף, מכל FoundDocumentField, קבל את התנאים שלו ואת המופעים שלהם בתוך כל מסמך.
קוד המקור הבא של C# מדפיס את תוצאות החיפוש ההומופונים יחד עם מספר המופעים של כל מונח חיפוש.
// הדפסת תוצאות חיפוש הומופון ב-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);
// הדפסת מונחים שנמצאו
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]);
}
}
}
}
להלן הפלט של דוגמת הקוד לעיל.
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
חיפוש הומופונים ותוצאות הדפסה באמצעות C# - קוד מלא
קוד ה-C# הבא מסכם את השלבים שלעיל, הוא מוצא תחילה את כל ההומפונים בהתאם לשאילתה, ולאחר מכן מדפיס את כל המופעים של כל ההומפונים בכל מסמך בתיקייה המסופקת.
// חפש הומופונים במספר קבצים ותיקיות ולאחר מכן הדפס את התוצאות באמצעות C#
string query = "right";
string indexFolder = @"path\indexFolder";
string documentsFolder = @"path\documentsFolder";
// יצירת אינדקס בתיקייה שצוינה
Index index = new Index(indexFolder);
// הוספת מסמכים לאינדקס מהתיקייה שצוינה
index.Add(documentsFolder);
// יצירת אובייקט אפשרויות חיפוש
SearchOptions options = new SearchOptions()
{
UseHomophoneSearch = true // Enabling Homophone Search
};
// חפש את המילה 'נכון'
// בנוסף למילה 'נכון', ייבדקו גם המילים "טקס, רייט, כתוב, ..."
SearchResult result = index.Search(query, options);
// הדפסת התוצאה
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);
// הדפסת מונחים שנמצאו
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]);
}
}
}
}
סיכום
לסיכום, למדת כיצד למצוא את המילים ואת ההומפונים שלהן ממספר המסמכים של התיקיה שצוינה באמצעות C#. אתה יכול לנסות לבנות יישום NET משלך לחיפוש הומופונים בתוך קבצים מרובים באמצעות GroupDocs.Search for .NET.
למידע נוסף על ה-API של .NET Search Automation מהתיעוד. כדי לחוות את התכונות, תוכל לעיין בדוגמאות הזמינות במאגר GitHub.פנה אלינו לכל שאלה דרך הפורום.