Синонимы — это слова со сходным значением, а омофоны звучат одинаково, но различаются по значению или написанию. Мы научились находить синонимы в нескольких документах с помощью 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.
- Определите поисковое слово, папку индексирования и папку-контейнер ваших файлов.
- Создайте Index с определенной индексной папкой.
- Добавьте папку документа в файл index.
- Определите SearchOptions и включите гомофонный поиск с помощью метода 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. Свяжитесь с нами по любому вопросу через форум.