الكلمات التي تبدو متشابهة ولكنها مختلفة في المعاني أو الهجاء هي متجانسة. في حين أن الكلمات التي تتهجى نفس الشيء ولكنها تختلف في المعنى أو النطق هي حروف متجانسة. يمكن أن تكون المترادفات متجانسة أو متجانسة ؛ او كلاهما. دعونا لا نخلط بينه وبين التشغيل الآلي. في هذه المقالة ، ستتعلم كيفية البحث عن المتجانسات داخل مستندات متعددة باستخدام C #.

ابحث في Homophones في Files باستخدام GroupDocs

سيتم تناول الموضوعات التالية أدناه:

NET API للبحث عن المتجانسات في ملفات متعددة

يعرض GroupDocs.Search واجهة برمجة تطبيقات .NET (GroupDocs.Search for .NET) يسمح بالبحث عن الكلمات ونغماتها المتجانسة داخل ملفات متعددة للمجلد المحدد. سنستخدم واجهة برمجة التطبيقات هذه في أمثلة هذه المقالة. يمكنه البحث في محتوى تنسيقات مختلفة. إلى جانب العثور على المتجانسات ، تدعم واجهة برمجة التطبيقات العديد من الطرق الأخرى للبحث حسب المتطلبات. بعض تقنيات البحث المدعومة هي كما يلي:

  • بحث المرادفات
  • البحث بالعبارة
  • بحث غامض
  • بحث حساس لحالة الأحرف
  • البحث عن التعبيرات العادية
  • بحث وايلد كارد

يمكنك تنزيل DLLs أو مثبّت MSI من قسم التنزيلات أو تثبيت API في تطبيق .NET عبر NuGet.

PM> Install-Package GroupDocs.Search

البحث عن Homophones في ملفات متعددة باستخدام C

توضح الخطوات التالية كيف يمكننا البحث عن المتجانسات (الكلمات ذات الصوت / النطق المتشابه) في الملفات داخل مجلد باستخدام C #.

يعثر الكود المصدري C # التالي على جميع المتجانسات داخل جميع ملفات المجلد المحدد. بالإضافة إلى ذلك ، يمكنك إدارة قاموس homophone الخاص بك.

// البحث في homophones في ملفات ومجلدات متعددة باستخدام 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
}; 

// ابحث عن كلمة "right"
// بالإضافة إلى كلمة "حق" ، سيتم أيضًا البحث عن الكلمات "طقوس ، رايت ، كتابة ، ..."
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

اتبع الخطوات المذكورة أدناه بعد الحصول على جميع المتجانسات وعدد مرات ظهورها في كل مستند لتقديم نتائج البحث المتجانسة.

  • اجتياز نتائج البحث المتجانسة التي تم استردادها مسبقًا.
  • احصل على كل مستند كـ FoundDocument باستخدام GetFoundDocument ().
  • استخدم خصائص كل FoundDocument كما هو مطلوب.
  • الآن ، قم باجتياز FoundFields من FoundDocument للحصول على FoundDocumentField.
  • أخيرًا ، من كل FoundDocumentField ، احصل على شروطه وتكراراتها داخل كل مستند.

يقوم الكود المصدري C # التالي بطباعة نتائج البحث المتجانسة مع عدد مرات حدوث كل مصطلح تم البحث عنه.

// طباعة نتائج البحث Homophone في 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 # التالي الخطوات المذكورة أعلاه ، ويعثر أولاً على جميع المتجانسات وفقًا للاستعلام ، ثم يطبع جميع تكرارات جميع المتجانسات في كل مستند داخل المجلد المتوفر.

// ابحث عن Homophones في ملفات ومجلدات متعددة ثم اطبع النتائج باستخدام 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
}; 

// ابحث عن كلمة "right"
// بالإضافة إلى كلمة "حق" ، سيتم أيضًا البحث عن الكلمات "طقوس ، رايت ، كتابة ، ..."
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.

تعرف على المزيد حول .NET Search Automation API من الوثائق. لتجربة الميزات ، يمكنك إلقاء نظرة على الأمثلة المتاحة على مستودع GitHub. تواصل معنا بخصوص أي استفسار عبر المنتدى.

أنظر أيضا