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

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

Java API - ค้นหาคำพ้องความหมายในหลายๆ ไฟล์

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

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

ดาวน์โหลดหรือกำหนดค่า

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

<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>

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

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

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

ซอร์สโค้ดต่อไปนี้แสดงวิธีค้นหาคำพ้องความหมายทั้งหมดภายในไฟล์โดยใช้ Java:

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

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

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

// ค้นหาคำว่า 'แต่งหน้า'
// นอกจากคำว่า 'make' แล้ว คำพ้องความหมาย 'do, get, have, ...' จะถูกค้นหาด้วย
SearchResult result = index.search(query, options);

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

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

Query: **make**
Documents: 3
Word & Synonym Occurrences: 44 

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

  • ประการแรก ทำการค้นหาเพื่อรับ SearchResult
  • ข้ามผลการค้นหาเพื่อทำงานกับแต่ละ FoundDocument
  • พิมพ์คุณสมบัติตามลำดับของแต่ละ FoundDocument
  • ตอนนี้ แยกและสำรวจ FoundDocumentField ภายใน FoundDocument แต่ละรายการ
  • FoundDocumentField แต่ละรายการมีข้อกำหนด การเกิดขึ้น และคุณสมบัติอื่นๆ อยู่ในนั้น ใช้ getter ตามลำดับ

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

// การพิมพ์ผลการค้นหาคำพ้องใน Java
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Synonym 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: **make**
Documents: 2
Total occurrences: 22

Document: C:/documents/sample.docx
Occurrences: 13
    Field: content
    Occurrences: 13
        **make**  -  2
        **have**  -  1
        **get**  -  2
        **do**  -  8
- - - - - - - - - - - - - - - - 
Document: C:/documents/sample.txt
Occurrences: 11
    Field: content
    Occurrences: 11
        **make**  -  1
        **have**  -  2
        **get**  -  1
        **do**  -  7
- - - - - - - - - - - - - - - - 
Document: C:/documents/sample.pdf
Occurrences: 20
    Field: content
    Occurrences: 20
        **make**  -  2
        **have**  -  2
        **get**  -  2
        **do**  -  14 

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

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

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

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

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

// ค้นหาคำว่า 'แต่งหน้า'
// นอกจากคำว่า 'make' แล้ว คำพ้องความหมาย 'do, get, have, ...' จะถูกค้นหาด้วย
SearchResult result = index.search(query, options);

System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Synonym 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]);
            }
        }
    }
}

รับใบอนุญาต API ฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อใช้ API โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

โดยสรุป เราได้พูดถึงวิธีการค้นหาคำใดๆ พร้อมกับคำพ้องความหมายในเอกสารหลายฉบับโดยใช้ Java สิ่งสำคัญที่สุดคือ ตอนนี้คุณสามารถลองพัฒนา Java App ของคุณเองสำหรับการค้นหาเช่นเดียวกับ GroupDocs.Search App

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

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