Hledání homofonů v souborech pomocí GroupDocs

Synonyma jsou slova s podobným významem a homofony zní stejně, ale liší se významem nebo pravopisem. Naučili jsme se najít synonyma ve více dokumentech pomocí Javy. Dnes v tomto článku uvidíme, jak pomocí Javy vyhledávat homofony ve více dokumentech.

Níže budou probrána následující témata:

Java API pro vyhledávání homofonů

GroupDocs.Search představuje Java API GroupDocs.Search for Java, které umožňuje vyhledání libovolného slova a jeho homofonů ve více souborech jakékoli konkrétní složky. Může prohledávat obsah různých různých formátů. Kromě hledání homofonů API podporuje mnoho dalších vyhledávacích technik, které zahrnují:

  • Vyhledávání rozlišující malá a velká písmena
  • Fuzzy vyhledávání
  • Hledání frází
  • Hledání regulárních výrazů
  • Synonymum Hledat
  • Vyhledávání divokých karet

Soubor JAR si můžete stáhnout z části ke stažení nebo použít nejnovější konfigurace úložiště a závislostí Maven ve vašich aplikacích 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

Najděte homofony ve více souborech v Java

Následující kroky vedou, jak hledat homofony ve více souborech složky v Java.

  • Definujte dotaz na hledané slovo, složku indexování a složku kontejneru vašich souborů.
  • Vytvořte Index s definovanou složkou indexu.
  • Přidejte složku dokumentu do rejstříku.
  • Definujte SearchOptions a povolte homophoneSearch pomocí metody setUseHomophoneSearch.
  • Proveďte vyhledávání homofonů pomocí vyhledávací metody.
  • Podle potřeby použijte vlastnosti obnoveného SearchResult.

Následující zdrojový kód Java najde všechny homofony v souborech definované složky. Dále můžete také spravovat svůj homofonní slovník.

// Prohledávejte homofony ve více souborech a složkách pomocí Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Vytvoření indexu v zadané složce
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Vytvoření objektu možností hledání
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Hledejte slovo 'správně'
// Kromě slova 'správný' se budou hledat i homofony '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());

Výstup výše uvedeného kódu je následující:

Query: right
Documents: 2
Occurrences: 17

Výsledky hledání homofonií můžete použít podle kroků po získání homofonií a jejich výskytů z každého dokumentu.

  • Procházejte výsledky vyhledávání.
  • Získejte každý FoundDocument pomocí metody getFoundDocument.
  • Používejte vlastnosti každého FoundDocumentu podle potřeby.
  • Nyní procházejte pole FoundDocument získáním FoundDocumentField.
  • Později z každého FoundDocumentField získejte všechny termíny a jejich výskyty v každém dokumentu.

Následující příklad kódu Java vytiskne výsledky vyhledávání homofonů spolu s počtem výskytů každého hledaného výrazu.

// Tisk výsledků hledání homofonů v jazyce Java
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

// Procházet 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());
  
  // Projděte nalezená pole
  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // Tisk nalezených termínů
        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]);
            }
        }
    }
}

Následuje výstup výše uvedeného příkladu kódu.

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

Hledejte homofony a výsledky tisku pomocí Javy – kompletní kód

Následující kód Java kombinuje výše uvedené kroky. Nejprve najde homofony podle dotazu a poté vytiskne všechny výskyty homofonů z každého dokumentu v poskytnuté složce.

// Prohledávejte homofony ve více souborech a složkách pomocí Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Vytvoření indexu v zadané složce
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Vytvoření objektu možností hledání
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Hledejte slovo 'správně'
// Kromě slova 'správný' se budou hledat i homofony '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());
  
        // Tisk nalezených termínů
        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]);
            }
        }
    }
}

Závěr

Na závěr jste se naučili, jak najít slova a jejich homofony z více dokumentů v určené složce pomocí Java. Můžete zkusit vyvinout vlastní Java aplikaci pro vyhledávání homofonů pomocí GroupDocs.Search for Java.

Další informace o rozhraní Java Search Automation API naleznete v dokumentaci. Chcete-li vyzkoušet jeho funkce, můžete se podívat na dostupné příklady v úložišti GitHub. Kontaktujte nás s jakýmkoli dotazem prostřednictvím fóra.

Viz také