คำที่ออกเสียงเหมือนกันแต่ความหมายหรือตัวสะกดต่างกันคือคำพ้องเสียง โดยที่คำที่สะกดเหมือนกันแต่ความหมายหรือการออกเสียงต่างกันคือคำพ้องเสียง คำพ้องเสียงสามารถเป็นคำพ้องเสียงหรือคำพ้องเสียง; หรือทั้งคู่. อย่าสับสนและทำให้เป็นอัตโนมัติ ในบทความนี้ คุณจะได้เรียนรู้วิธีการค้นหาคำพ้องเสียงภายในเอกสารหลายฉบับโดยใช้ C#
หัวข้อต่อไปนี้จะครอบคลุมด้านล่าง:
.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
การพิมพ์ผลการค้นหาคำพ้องเสียงโดยใช้ 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
};
// ค้นหาคำว่า 'ถูกต้อง'
// นอกจากคำว่า 'ถูกต้อง' แล้ว คำว่า "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 ติดต่อเราสำหรับคำถามใด ๆ ผ่าน ฟอรัม