คำที่ออกเสียงเหมือนกันแต่ความหมายหรือตัวสะกดต่างกันคือคำพ้องเสียง โดยที่คำที่สะกดเหมือนกันแต่ความหมายหรือการออกเสียงต่างกันคือคำพ้องเสียง คำพ้องเสียงสามารถเป็นคำพ้องเสียงหรือคำพ้องเสียง; หรือทั้งคู่. อย่าสับสนและทำให้เป็นอัตโนมัติ ในบทความนี้ คุณจะได้เรียนรู้วิธีการค้นหาคำพ้องเสียงภายในเอกสารหลายฉบับโดยใช้ C#

ค้นหาคำพ้องเสียงในไฟล์โดยใช้ GroupDocs

หัวข้อต่อไปนี้จะครอบคลุมด้านล่าง:

.NET API สำหรับการค้นหาคำพ้องเสียงในหลายๆ ไฟล์

GroupDocs.Search แสดง .NET API (GroupDocs.Search for .NET) ที่อนุญาตให้ค้นหาคำและคำพ้องเสียงภายในหลายไฟล์ของโฟลเดอร์ที่ระบุ เราจะใช้ API นี้ในตัวอย่างบทความนี้ สามารถค้นหาเนื้อหาในรูปแบบต่างๆ นอกเหนือจากการค้นหาคำพ้องเสียงแล้ว API ยังรองรับวิธีอื่นๆ อีกมากมายในการค้นหาตามความต้องการ เทคนิคการค้นหาที่รองรับบางส่วนมีดังนี้:

  • ค้นหาคำพ้องความหมาย
  • ค้นหาวลี
  • ค้นหาเลือน
  • การค้นหาตามตัวพิมพ์เล็กและใหญ่
  • ค้นหานิพจน์ทั่วไป
  • การค้นหาไวด์การ์ด

คุณสามารถดาวน์โหลดโปรแกรมติดตั้ง DLLs หรือ 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) เป็นจริง
  • ค้นหาคำพ้องเสียงทั้งหมดโดยเรียกใช้เมธอด 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
}; 

// ค้นหาคำว่า 'ถูกต้อง'
// นอกจากคำว่า 'ถูกต้อง' แล้ว คำว่า "rite, wright, write, ..." จะถูกค้นหาด้วย
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()](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
}; 

// ค้นหาคำว่า 'ถูกต้อง'
// นอกจากคำว่า 'ถูกต้อง' แล้ว คำว่า "rite, wright, write, ..." จะถูกค้นหาด้วย
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 ติดต่อเราสำหรับคำถามใด ๆ ผ่าน ฟอรัม

ดูสิ่งนี้ด้วย