우리는 최근에 어떤 단어의 모든 동의어를 얻는 방법에 대해 논의했습니다. 다양한 문서에서 이러한 동의어를 찾을 수 있다면 정말 좋을 것입니다. 이 기사에서는 자바를 사용하여 여러 파일에서 단어와 동의어를 검색하는 방법을 볼 것입니다.

다음은 아래에서 다루는 주제입니다.

Java API - 여러 파일에서 동의어 검색

GroupDocs.Search는 Java API([GroupDocs.Search for Java][8])를 보여줍니다. 지정된 폴더의 다양한 여러 파일에서 단어와 동의어를 검색할 수 있습니다. 다양한 파일 형식 및 다양한 검색 기술 이러한 기능 중 일부는 아래에 언급되어 있으며 목표를 달성하기 위해 조합하여 사용할 수 있습니다.

  • 부울 검색
  • 대소문자 구분 검색
  • 검색 결과 강조 표시
  • 동음이의어 검색
  • 구문 검색
  • 정규식 검색
  • 청크로 검색
  • 동의어 검색

다운로드 또는 구성

[다운로드 섹션][9]에서 JAR 파일을 다운로드하거나 maven 기반 Java 애플리케이션의 pox.xml에 대한 최신 저장소 및 종속성 구성을 얻을 수 있습니다.

<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를 사용하여 폴더 내의 파일에서 동의어(유사한 의미를 가진 단어)를 검색하는 방법을 보여줍니다.

  • 인덱스 폴더, 문서의 폴더, 쿼리(검색할 단어)를 정의합니다.
  • [Index][10] 클래스를 이용하여 정의된 인덱스 폴더를 이용하여 인덱스를 생성한다.
  • 문서의 폴더를 색인에 추가합니다.
  • [SearchOptions][11]를 사용하여 동의어 검색을 활성화합니다.
  • Index 클래스의 [search][12] 메서드를 호출하고 검색 옵션을 사용하여 쿼리를 전달합니다.
  • 검색된 [SearchResult][13] 클래스의 속성을 사용하여 요약을 인쇄합니다.

다음 소스 코드는 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][14]를 얻습니다.
  • 각 [FoundDocument][15]와 함께 작동하도록 검색 결과를 가로지릅니다.
  • 각 FoundDocument의 해당 속성을 인쇄합니다.
  • 이제 각 FoundDocument 내에서 [FoundDocumentField][16]를 추출한 다음 트래버스합니다.
  • 각 FoundDocumentField에는 해당 용어, 발생 및 기타 속성이 있습니다. 각각의 getter를 사용하십시오.

다음 소스코드는 자바에서 검색된 각 용어의 출현 횟수와 함께 동의어 검색 결과를 보여준다.

// 동의어 검색 결과를 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를 사용하기 위해 [임시 무료 라이선스 받기][17]를 할 수 있습니다.

결론

요약하자면, 우리는 Java를 사용하여 여러 문서에서 동의어와 함께 단어를 검색하는 방법에 대해 논의했습니다. 가장 중요한 것은 이제 [GroupDocs.Search App][18]처럼 검색을 위한 자체 Java 앱을 개발할 수 있다는 것입니다.

문서에서 [Java Search Automation API][19]에 대해 자세히 알아보세요. 기능을 경험하려면 [GitHub][20] 리포지토리에서 예제를 시도하십시오. [포럼][21]을 통해 문의 사항이 있으시면 언제든지 저희에게 연락하십시오.

또한보십시오

  • [Java를 사용하여 단어의 동의어 찾기][22]
  • [자바에서 전체 텍스트 검색 솔루션 구축][23]
  • [Java를 사용하여 문서에서 단어 찾기 및 바꾸기][24]
  • [Java 문서에서 워터마크 찾기 및 제거][25]

[8]: https://products.groupdocs.com/search/java/) [9]: https://downloads.groupdocs.com/search [10]: https://apireference.groupdocs.com/search/java/com.groupdocs.search/Index [11]: https://apireference.groupdocs.com/search/java/com.groupdocs.search.options/SearchOptions [12]: https://apireference.groupdocs.com/search/java/com.groupdocs.search/Index#search(com.groupdocs.search.SearchQuery,%20com.groupdocs.search.options.SearchOptions) [13]: https://apireference.groupdocs.com/search/java/com.groupdocs.search.results/SearchResult [14]: https://apireference.groupdocs.com/search/java/com.groupdocs.search.results/SearchResult [15]: https://apireference.groupdocs.com/search/java/com.groupdocs.search.results/FoundDocument [16]: https://apireference.groupdocs.com/search/java/com.groupdocs.search.results/FoundDocumentField [17]: https://purchase.groupdocs.com/temporary-license [18]: https://products.groupdocs.app/search/total [19]: https://docs.groupdocs.com/search/java/ [20]: https://github.com/groupdocs-search [21]: https://forum.groupdocs.com/ [22]: https://blog.groupdocs.com/ko/2021/09/30/find-synonyms-of-words-using-java/ [23]: https://blog.groupdocs.com/ko/2021/08/07/build-full-text-search-solution-in-java/ [24]: https://blog.groupdocs.com/ko/2022/02/04/find-and-replace-text-in-word-documents-using-java/ [25]: https://blog.groupdocs.com/ko/2020/11/30/find-and-remove-watermarks-from-documents-in-java/