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

동의어는 비슷한 의미를 가진 단어이며, 동음이의어는 소리는 같지만 의미나 철자가 다릅니다. 우리는 [Java를 사용하여 여러 문서에서 동의어를 찾는] 방법을 배웠습니다20. 오늘 이 글에서는 Java를 사용하여 여러 문서 내에서 동음이의어를 검색하는 방법을 살펴보겠습니다.

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

동음이의 검색을 위한 Java API

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

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

다운로드 섹션에서 JAR 파일을 다운로드하거나 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>
PM> Install-Package GroupDocs.Search

Java의 여러 파일에서 동음이의어 찾기

다음 단계는 Java 폴더의 여러 파일에서 동음이의어를 검색하는 방법을 안내합니다.

  • 검색어 쿼리, 인덱싱 폴더 및 파일의 컨테이너 폴더를 정의합니다.
  • 정의된 인덱스 폴더로 Index를 생성합니다.
  • 문서의 폴더를 색인에 추가합니다.
  • SearchOptions를 정의하고 setUseHomophoneSearch 메서드를 사용하여 homophoneSearch를 활성화합니다.
  • 검색 방법을 사용하여 동음이의어 검색을 수행합니다.
  • 필요에 따라 검색된 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, 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를 가져옵니다.
  • 필요에 따라 각 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 검색 자동화 API에 대해 자세히 알아보세요. 기능을 경험하려면 GitHub 리포지토리에서 사용 가능한 예제를 살펴볼 수 있습니다. 질문이 있으면 포럼을 통해 문의하십시오.

또한보십시오