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