Синоніми — це слова зі схожим значенням, а омофони звучать однаково, але відрізняються значенням або написанням. Ми навчилися знаходити синоніми в багатьох документах за допомогою Java. Сьогодні в цій статті ми побачимо, як шукати омофони в кількох документах за допомогою Java.
Нижче будуть розглянуті такі теми:
- Java API - Омофонний пошук
- Знайдіть омофони в документах за допомогою Java
- Грайте з омофонним результатом пошуку
Java API для пошуку омофонів
GroupDocs.Search демонструє Java API GroupDocs.Search for Java, який дозволяє знаходити будь-яке слово та його омофони в кількох файлах будь-якої конкретної папки. Він може шукати вміст у різноманітних форматах. Окрім пошуку омофонів, API підтримує багато інших методів пошуку, зокрема:
- Пошук з урахуванням регістру
- Нечіткий пошук
- Пошук по фразі
- Пошук за регулярними виразами
- Пошук синонімів
- Пошук по дикій картці
Ви можете завантажити файл JAR із розділу завантажень або скористатися найновішим репозиторієм і конфігураціями залежностей Maven у своїх програмах 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.
- Визначте пошукове слово, папку індексування та папку-контейнер ваших файлів.
- Створіть Індекс із визначеною папкою індексу.
- Додайте папку документа до покажчика.
- Визначте SearchOptions і ввімкніть homophoneSearch за допомогою методу setUseHomophoneSearch.
- Виконайте пошук омофона методом пошуку.
- За потреби використовуйте властивості отриманого 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
// Шукайте слово "право"
// Окрім слова «право», шукатимуть також омофони «обряд, писати, райт, ...».
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
Ви можете використовувати результати пошуку омофонов, виконуючи кроки після отримання омофонов та їх появи з кожного документа.
- Перегляньте результати пошуку.
- Отримайте кожен FoundDocument за допомогою методу getFoundDocument.
- За потреби використовуйте властивості кожного FoundDocument.
- Тепер перегляньте поля FoundDocument, отримавши FoundDocumentField.
- Пізніше з кожного 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
// Шукайте слово "право"
// Окрім слова «право», шукатимуть також омофони «обряд, писати, райт, ...».
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 знаходити слова та їхні омофони в кількох документах у вказаній папці. Ви можете спробувати розробити власний Java-додаток для пошуку омофонів за допомогою GroupDocs.Search for Java.
Дізнайтеся більше про Java Search Automation API з документації. Щоб відчути його функції, ви можете переглянути доступні приклади в репозиторії GitHub. Зв’яжіться з нами за будь-яким запитом через форум.