동의어는 비슷한 의미를 가진 단어이며, 동음이의어는 소리는 같지만 의미나 철자가 다릅니다. 우리는 [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
Java에서 동음이의어 검색 결과 인쇄
각 문서에서 동음이의어와 동음이의어를 가져온 다음 단계에 따라 동음이의어 검색 결과를 사용할 수 있습니다.
- 검색 결과를 탐색합니다.
- 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 리포지토리에서 사용 가능한 예제를 살펴볼 수 있습니다. 질문이 있으면 포럼을 통해 문의하십시오.