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

คำพ้องความหมายคือคำที่มีความหมายคล้ายกัน และคำพ้องเสียงจะออกเสียงเหมือนกันแต่ต่างกันที่ความหมายหรือการสะกดคำ เราเรียนรู้ที่จะ ค้นหาคำพ้องความหมายในเอกสารหลายฉบับโดยใช้ Java วันนี้ ในบทความนี้ เราจะมาดูวิธีการค้นหาคำพ้องเสียงภายในเอกสารหลายฉบับโดยใช้ Java

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

Java API สำหรับการค้นหาคำพ้องเสียง

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

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

คุณสามารถดาวน์โหลดไฟล์ JAR ได้จาก ส่วนการดาวน์โหลด หรือใช้พื้นที่เก็บข้อมูลล่าสุดและการกำหนดค่าการพึ่งพา Maven ภายในแอปพลิเคชัน Java ของคุณ

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>21.8</version> 
</dependency>
PM> Install-Package GroupDocs.Search

ค้นหาคำพ้องเสียงในหลายๆ ไฟล์ในภาษาจาวา

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

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

ซอร์สโค้ด Java ต่อไปนี้ค้นหาโฮโมโฟนทั้งหมดภายในไฟล์ของโฟลเดอร์ที่กำหนด นอกจากนี้ คุณยังสามารถ จัดการพจนานุกรมคำพ้องเสียงของคุณ

// ค้นหาคำพ้องเสียงในไฟล์และโฟลเดอร์หลายไฟล์โดยใช้ Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

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

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

// ค้นหาคำว่า 'ถูกต้อง'
// นอกจากคำว่า 'right' แล้ว คำพ้องเสียง 'rite,rite,write, ...' จะถูกค้นหาด้วย
SearchResult result = index.search(query, options);

System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

ผลลัพธ์ของโค้ดด้านบนเป็นดังนี้:

Query: right
Documents: 2
Occurrences: 17

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

  • สำรวจผลการค้นหา
  • รับแต่ละ FoundDocument โดยใช้วิธี getFoundDocument
  • ใช้คุณสมบัติของ FoundDocument แต่ละรายการตามต้องการ
  • ตอนนี้สำรวจฟิลด์ของ FoundDocument โดยรับ FoundDocumentField
  • หลังจากนั้น จาก FoundDocumentField แต่ละรายการ รับเงื่อนไขทั้งหมดและเหตุการณ์ที่เกิดขึ้นในแต่ละเอกสาร

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

// การพิมพ์ผลการค้นหาคำพ้องเสียงในภาษาจาวา
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

// สำรวจเอกสาร
for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("Document: " + document.getDocumentInfo().getFilePath());
    System.out.println("Occurrences: " + document.getOccurrenceCount());
  
  // สำรวจทุ่งที่พบ
  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // เงื่อนไขการพิมพ์ที่พบ
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t" + field.getTerms()[k] + "\t - \t" + field.getTermsOccurrences()[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

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

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

// ค้นหาคำพ้องเสียงในไฟล์และโฟลเดอร์หลายไฟล์โดยใช้ Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

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

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

// ค้นหาคำว่า 'ถูกต้อง'
// นอกจากคำว่า 'right' แล้ว คำพ้องเสียง 'rite,rite,write, ...' จะถูกค้นหาด้วย
SearchResult result = index.search(query, options);

System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("Document: " + document.getDocumentInfo().getFilePath());
    System.out.println("Occurrences: " + document.getOccurrenceCount());

  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // เงื่อนไขการพิมพ์ที่พบ
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t" + field.getTerms()[k] + "\t - \t" + field.getTermsOccurrences()[k]);
            }
        }
    }
}

บทสรุป

โดยสรุป คุณได้เรียนรู้วิธีค้นหาคำและคำพ้องเสียงจากเอกสารหลายฉบับภายในโฟลเดอร์ที่ระบุโดยใช้ Java คุณสามารถลองพัฒนาแอปพลิเคชัน Java ของคุณเองเพื่อค้นหาคำพ้องเสียงโดยใช้ GroupDocs.Search for Java

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

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