GroupDocs를 사용하여 파일에서 동음이의어 검색

동의어는 의미가 비슷한 단어이고 동음이의어는 소리는 같지만 의미나 철자가 다릅니다. 자바를 사용하여 여러 문서에서 동의어 찾기를 배웠습니다. 오늘 이 기사에서는 자바를 사용하여 여러 문서에서 동음이의어를 검색하는 방법을 살펴보겠습니다.

아래에서 다음 주제를 다룹니다.

동음이의어 검색을 위한 Java API

GroupDocs.Search는 자바 API(GroupDocs.Search for Java)를 보여줍니다. 특정 폴더의 여러 파일에서 단어와 동음이의어를 찾습니다. 다양한 형식의 내용을 검색할 수 있습니다. 동음이의어를 찾는 것 외에도 API는 다음을 포함하는 다른 많은 검색 기술을 지원합니다.

  • 대소문자 구분 검색
  • 퍼지 검색
  • 구문 검색
  • 정규식 검색
  • 동의어 검색
  • 와일드카드 검색

JAR 파일은 다운로드 섹션에서 다운로드하거나 최신 저장소 및 종속성 Maven을 사용할 수 있습니다. webapp/#/artifacts/browse/tree/General/repo/com/groupdocs) 구성은 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의 여러 파일에서 동음이의어 찾기

다음 단계는 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, write, wright, ...'도 검색됩니다.
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

동음이의어 검색결과는 각 문서에서 동음이의어와 동음이의어를 가져온 후의 단계를 따르면 사용할 수 있습니다.

  • 검색 결과를 탐색합니다.
  • getFoundDocument()를 사용하여 각 FoundDocument를 가져옵니다. /java/com.groupdocs.search.results/SearchResult#getFoundDocument(int)) 메서드.
  • 필요에 따라 각 FoundDocument의 속성을 사용합니다.
  • 이제 FoundDocumentField를 가져와 FoundDocument의 필드를 탐색합니다.
  • 나중에 각 FoundDocumentField에서 각 문서 내의 모든 용어와 해당 항목을 가져옵니다.

다음 Java 코드 예제는 동음이의어 검색 결과를 각 검색 용어의 발생 횟수와 함께 인쇄합니다.

// 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, write, wright, ...'도 검색됩니다.
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를 사용하여 지정된 폴더 내의 여러 문서에서 단어와 동음이의어를 찾는 방법을 배웠습니다. GroupDocs.Search for Java를 사용하여 동음이의어 검색을 위한 자체 Java 애플리케이션을 개발할 수 있습니다.

문서에서 Java Search Automation API에 대해 자세히 알아보세요. 기능을 경험하려면 GitHub 저장소에서 사용 가능한 예제를 볼 수 있습니다. 문의 사항은 포럼을 통해 문의하세요.

또한보십시오