Шукайте омофони у файлах за допомогою GroupDocs

Синоніми — це слова зі схожим значенням, а омофони звучать однаково, але відрізняються значенням або написанням. Ми навчилися знаходити синоніми в багатьох документах за допомогою Java. Сьогодні в цій статті ми побачимо, як шукати омофони в кількох документах за допомогою 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

Ви можете використовувати результати пошуку омофонов, виконуючи кроки після отримання омофонов та їх появи з кожного документа.

  • Перегляньте результати пошуку.
  • Отримайте кожен 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. Зв’яжіться з нами за будь-яким запитом через форум.

Дивись також