ในบทความอื่น เราได้เห็นแล้วว่าคำพ้องความหมายคืออะไร และ วิธีรับคำพ้องความหมายทั้งหมดของคำใดๆ แล้วการค้นหาคำพ้องความหมายเหล่านี้ในเอกสารต่างๆ ล่ะ บทความนี้จะแนะนำคุณเกี่ยวกับวิธีค้นหาคำพ้องความหมายของข้อความค้นหา (คำ) ใด ๆ ในหลาย ๆ ไฟล์โดยใช้ C#

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

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

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

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

คุณสามารถดาวน์โหลดโปรแกรมติดตั้ง DLLs หรือ MSI ได้จาก ส่วนการดาวน์โหลด หรือติดตั้ง API ในแอปพลิเคชัน .NET ของคุณผ่านทาง NuGet

PM> Install-Package GroupDocs.Search

ค้นหาคำพ้องความหมายในหลายไฟล์โดยใช้ C#

ขั้นตอนแสดงวิธีการค้นหาคำพ้องความหมาย (คำที่มีความหมายคล้ายกัน) ในไฟล์ภายในโฟลเดอร์โดยใช้ C#

  • กำหนดคำค้นหา โฟลเดอร์ดัชนี และโฟลเดอร์ของเอกสาร
  • สร้างดัชนีด้วยโฟลเดอร์ดัชนีที่กำหนดโดยใช้คลาส ดัชนี
  • เพิ่มโฟลเดอร์ของเอกสารลงในดัชนี
  • สร้าง SearchOptions และตั้งค่า UseSynonymSearch เป็นจริง
  • เรียกเมธอด Search ของคลาส Index แล้วส่งคำค้นหาและตัวเลือกการค้นหา
  • หากต้องการพิมพ์ข้อมูลสรุป ให้ใช้คุณสมบัติของ SearchResult ที่ดึงมา

ซอร์สโค้ดแสดงวิธีค้นหาคำพ้องความหมายทั้งหมดภายในไฟล์ทั้งหมดของโฟลเดอร์โดยใช้ C#

// ค้นหาคำพ้องความหมายในไฟล์และโฟลเดอร์หลายไฟล์โดยใช้ C#
string query = "make";
string indexFolder = @"path\indexFolder";
string documentsFolder = @"path\documentsFolder";

// สร้างดัชนีในโฟลเดอร์ที่ระบุ
Index index = new Index(indexFolder);
index.Add(documentsFolder);

// การสร้างวัตถุตัวเลือกการค้นหา
SearchOptions options = new SearchOptions();
options.UseSynonymSearch = true; // Enabling Synonym Search

// ค้นหาคำว่า 'แต่งหน้า'
// นอกจากคำว่า 'make' แล้ว คำพ้องความหมาย "do, makes, get, ..." ก็จะถูกค้นหาด้วย
SearchResult result = index.Search(query, options);
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Occurrences: " + result.OccurrenceCount);
Query: **make**
Documents: 2
Occurrences: 22

ขั้นตอนต่อไปนี้จะพิมพ์ผลลัพธ์โดยละเอียดหลังจากได้รับคำพ้องความหมายทั้งหมดและจำนวนครั้งที่เกิดขึ้นในแต่ละเอกสาร

  • สำรวจผลการค้นหาที่ได้รับโดยใช้โค้ดด้านบน
  • รับ FoundDocument แต่ละรายการโดยใช้เมธอด GetFoundDocument
  • พิมพ์คุณสมบัติตามลำดับของแต่ละ FoundDocument
  • สำรวจ FoundFields ภายใน FoundDocument แต่ละรายการเพื่อรับ Found Document Field
  • จาก 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: **make**
Documents: 2
Total occurrences: 22

Document: C:/documents/sample.docx
Occurrences: 6
    Field: content
    Occurrences: 6
        make             1
        get                 2
        cause            1
        do                  2
Document: C:/documents/sample.txt
Occurrences: 16
    Field: content
    Occurrences: 16
        get                  4
        cause             1
        do                  11

ค้นหาคำพ้องความหมายและผลลัพธ์การพิมพ์โดยใช้ C# - รหัสที่สมบูรณ์

นี่คือซอร์สโค้ดแบบสมบูรณ์ที่จะค้นหาคำพ้องความหมายทั้งหมดตามแบบสอบถามที่ให้มา แล้วจึงพิมพ์คำพ้องความหมายที่เกิดขึ้นทั้งหมดในแต่ละเอกสารภายในโฟลเดอร์นั้นโดยใช้ C#

// ค้นหาคำพ้องความหมายในไฟล์และโฟลเดอร์หลายไฟล์และพิมพ์ผลลัพธ์โดยใช้ C#
string query = "make";
string indexFolder = @"path\indexFolder";
string documentsFolder = @"path\documentsFolder";

// สร้างดัชนีในโฟลเดอร์ที่ระบุ
Index index = new Index(indexFolder);
// การจัดทำดัชนีเอกสารจากโฟลเดอร์ที่ระบุ
index.Add(documentsFolder);

// การสร้างวัตถุตัวเลือกการค้นหา
SearchOptions options = new SearchOptions();
options.UseSynonymSearch = true; // Enabling synonym 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 ของคุณเองเพื่อค้นหาคำและคำพ้องความหมายภายในไฟล์หลายๆ ไฟล์

เรียนรู้เพิ่มเติม เกี่ยวกับ .NET Search Automation API จากเอกสารประกอบ หากต้องการสัมผัสคุณสมบัติต่างๆ คุณสามารถดูตัวอย่างได้ที่ที่เก็บ GitHub ติดต่อเราสำหรับคำถามใดๆ ผ่าน ฟอรัม

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