Wyszukuj homofony w plikach za pomocą GroupDocs

Synonimy to słowa o podobnym znaczeniu, a homofony brzmią tak samo, ale różnią się znaczeniem lub pisownią. Nauczyliśmy się znajdować synonimy w wielu dokumentach za pomocą Javy. Dzisiaj w tym artykule zobaczymy, jak wyszukiwać homofony w wielu dokumentach za pomocą Javy.

Poniżej zostaną omówione następujące tematy:

Java API do wyszukiwania homofonów

GroupDocs.Search przedstawia interfejs Java API GroupDocs.Search for Java, który umożliwia znalezienie dowolnego słowa i jego homofonów w wielu plikach w dowolnym określonym folderze. Może przeszukiwać zawartość różnych formatów. Oprócz wyszukiwania homofonów interfejs API obsługuje wiele innych technik wyszukiwania, w tym:

  • Wyszukiwanie z uwzględnieniem wielkości liter
  • Wyszukiwanie rozmyte
  • Wyszukiwanie fraz
  • Wyszukiwanie wyrażeń regularnych
  • Wyszukiwanie synonimów
  • Wyszukiwanie dzikich kart

Możesz pobrać plik JAR z sekcji pobierania lub użyć najnowszych konfiguracji repozytorium i zależności Maven w swoich aplikacjach 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

Znajdź homofony w wielu plikach w Javie

Poniższe kroki wskazują, jak wyszukiwać homofony w wielu plikach folderu w Javie.

  • Zdefiniuj wyszukiwane słowo, folder indeksowania i folder kontenera plików.
  • Utwórz Indeks ze zdefiniowanym folderem indeksu.
  • Dodaj folder dokumentu do indeksu.
  • Zdefiniuj SearchOptions i włącz homophoneSearch za pomocą metody setUseHomophoneSearch.
  • Wykonaj wyszukiwanie homofonów metodą wyszukiwania.
  • W razie potrzeby użyj właściwości odzyskanego SearchResult.

Poniższy kod źródłowy Java znajduje wszystkie homofony w plikach określonego folderu. Ponadto możesz także zarządzać swoim słownikiem homofonów.

// Wyszukuj homofony w wielu plikach i folderach przy użyciu języka Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Tworzenie indeksu w określonym folderze
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Tworzenie obiektu opcji wyszukiwania
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Wyszukaj słowo „właściwy”
// Oprócz słowa „właściwy” wyszukiwane będą również homofony „rytuować, pisać, pisać,…”
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());

Dane wyjściowe powyższego kodu są następujące:

Query: right
Documents: 2
Occurrences: 17

Możesz użyć wyników wyszukiwania homofonów, wykonując czynności po uzyskaniu homofonów i ich wystąpień z każdego dokumentu.

  • Przejrzyj wyniki wyszukiwania.
  • Pobierz każdy FoundDocument za pomocą metody getFoundDocument.
  • Użyj właściwości każdego FoundDocument zgodnie z wymaganiami.
  • Teraz przejdź przez pola FoundDocument, pobierając FoundDocumentField.
  • Później z każdego pola FoundDocumentField pobierz wszystkie terminy i ich wystąpienia w każdym dokumencie.

Poniższy przykładowy kod Java drukuje wyniki wyszukiwania homofonów wraz z liczbą wystąpień każdego wyszukiwanego terminu.

// Drukowanie wyników wyszukiwania homofonów w Javie
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

// Przejrzyj dokumenty
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());
  
  // Przemierzaj znalezione pola
  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // Drukowanie znalezionych terminów
        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]);
            }
        }
    }
}

Poniżej przedstawiono dane wyjściowe powyższego przykładu kodu.

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

Wyszukiwanie homofonów i drukowanie wyników przy użyciu języka Java — pełny kod

Poniższy kod Java łączy powyższe kroki. Początkowo wyszukuje homofony zgodnie z zapytaniem, a następnie drukuje wszystkie wystąpienia homofonów z każdego dokumentu w podanym folderze.

// Wyszukuj homofony w wielu plikach i folderach przy użyciu języka Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Tworzenie indeksu w określonym folderze
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Tworzenie obiektu opcji wyszukiwania
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Wyszukaj słowo „właściwy”
// Oprócz słowa „właściwy” wyszukiwane będą również homofony „rytuować, pisać, pisać,…”
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());
  
        // Drukowanie znalezionych terminów
        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]);
            }
        }
    }
}

Wniosek

Podsumowując, nauczyłeś się znajdować słowa i ich homofony w wielu dokumentach w określonym folderze przy użyciu języka Java. Możesz spróbować stworzyć własną aplikację Java do wyszukiwania homofonów za pomocą GroupDocs.Search for Java.

Dowiedz się więcej o interfejsie Java Search Automation API z dokumentacji. Aby zapoznać się z jego funkcjami, możesz zapoznać się z dostępnymi przykładami w repozytorium GitHub. Skontaktuj się z nami w każdej sprawie za pośrednictwem forum.

Zobacz też