Cerca gli omofoni nei file usando GroupDocs

I sinonimi sono parole con significato simile e Omofoni suonano allo stesso modo ma hanno significati o ortografia diversi. Abbiamo imparato a trovare sinonimi in più documenti usando Java. Oggi, in questo articolo, vedremo come cercare omofoni all’interno di più documenti utilizzando Java.

Di seguito verranno trattati i seguenti argomenti:

API Java per la ricerca di omofoni

GroupDocs.Search mostra l’API Java (GroupDocs.Search for Java) che consente trovare qualsiasi parola e i suoi omofoni all’interno di più file di una cartella specifica. Può cercare il contenuto di vari formati differenti. Oltre a trovare gli omofoni, l’API supporta molte altre tecniche di ricerca che includono:

  • Ricerca case-sensitive
  • Ricerca sfocata
  • Ricerca di frasi
  • Cerca espressioni regolari
  • Ricerca sinonimo
  • Ricerca con caratteri jolly

Puoi scaricare il file JAR dalla sezione download o utilizzare il repository e la dipendenza più recenti [Maven](https://repository.groupdocs.com/ webapp/#/artifacts/browse/tree/General/repo/com/groupdocs) all’interno delle tue applicazioni 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

Trova omofoni in più file in Java

I seguenti passaggi guidano come cercare gli omofoni in più file di una cartella in Java.

Il seguente codice sorgente Java trova tutti gli omofoni all’interno dei file della cartella definita. Inoltre, puoi anche gestire il tuo dizionario omofono.

// Cerca gli omofoni in più file e cartelle usando Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Creazione di un indice nella cartella specificata
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Creazione di un oggetto delle opzioni di ricerca
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Cerca la parola "giusto"
// Oltre alla parola 'right', verranno ricercati anche gli omofoni 'rito, 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());

L’output del codice sopra è il seguente:

Query: right
Documents: 2
Occurrences: 17

Puoi utilizzare i risultati della ricerca di omofoni seguendo i passaggi dopo aver ottenuto gli omofoni e le loro occorrenze da ciascun documento.

  • Attraversa i risultati della ricerca.
  • Ottieni ogni FoundDocument usando [getFoundDocument()](https://apiference.groupdocs.com/search /java/com.groupdocs.search.results/SearchResult#getFoundDocument(int)).
  • Utilizzare le proprietà di ogni FoundDocument come richiesto.
  • Ora, attraversa i campi di FoundDocument ottenendo FoundDocumentField.
  • Successivamente, da ogni FoundDocumentField, ottieni tutti i termini e le loro occorrenze all’interno di ogni documento.

Il seguente esempio di codice Java stampa i risultati della ricerca dell’omofono insieme al numero di occorrenze di ciascun termine cercato.

// Stampa dei risultati della ricerca di omofoni in Java
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

// Attraversa i documenti
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());
  
  // Attraversa i campi trovati
  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // Termini trovati in stampa
        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]);
            }
        }
    }
}

Di seguito è riportato l’output dell’esempio di codice precedente.

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

Cerca omofoni e risultati di stampa utilizzando Java - Codice completo

Il seguente codice Java combina i passaggi precedenti. Inizialmente, trova gli omofoni come da query, quindi stampa tutte le occorrenze di omofoni da ciascun documento all’interno della cartella fornita.

// Cerca gli omofoni in più file e cartelle usando Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Creazione di un indice nella cartella specificata
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Creazione di un oggetto delle opzioni di ricerca
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Cerca la parola "giusto"
// Oltre alla parola 'right', verranno ricercati anche gli omofoni 'rito, 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());
  
        // Termini trovati in stampa
        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]);
            }
        }
    }
}

Conclusione

Per concludere, hai imparato come trovare le parole e i loro omofoni da più documenti all’interno di una cartella specifica usando Java. Puoi provare a sviluppare la tua applicazione Java per la ricerca di omofoni utilizzando GroupDocs.Search for Java.

Ulteriori informazioni sull’API Java Search Automation dalla documentazione. Per provare le sue funzionalità, puoi dare un’occhiata agli esempi disponibili sul repository GitHub. Contattaci per qualsiasi domanda tramite il forum.

Guarda anche