Cerca omofoni nei file utilizzando GroupDocs

I sinonimi sono parole con significato simile e gli omofoni hanno lo stesso suono ma sono diversi nei significati o nell’ortografia. Abbiamo imparato a trovare sinonimi in più documenti utilizzando 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 mette in mostra l’API Java GroupDocs.Search for Java che consente di trovare qualsiasi parola e i suoi omofoni all’interno di più file di qualsiasi cartella specifica. Può cercare il contenuto di vari formati diversi. Oltre a trovare gli omofoni, l’API supporta molte altre tecniche di ricerca che includono:

  • Ricerca con distinzione tra maiuscole e minuscole
  • Ricerca sfocata
  • Ricerca di frasi
  • Ricerca di espressioni regolari
  • Ricerca di sinonimi
  • Ricerca con caratteri jolly

Puoi scaricare il file JAR dalla sezione download o utilizzare le ultime configurazioni di repository e dipendenze Maven 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 omofoni in più file di una cartella in Java.

  • Definisci la query della parola di ricerca, la cartella di indicizzazione e la cartella contenitore dei tuoi file.
  • Crea Indice con la cartella indice definita.
  • Aggiungi la cartella del documento all’indice.
  • Definire SearchOptions e abilitare homophoneSearch utilizzando il metodo setUseHomophoneSearch.
  • Eseguire la ricerca degli omofoni utilizzando il metodo di ricerca.
  • Utilizzare le proprietà del SearchResult recuperato secondo necessità.

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 omofoni in più file e cartelle utilizzando 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 opzioni di ricerca
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

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

L’output del codice precedente è il seguente:

Query: right
Documents: 2
Occurrences: 17

È possibile utilizzare i risultati della ricerca sugli omofoni seguendo i passaggi dopo aver ottenuto gli omofoni e le relative occorrenze da ogni documento.

  • Attraversa i risultati della ricerca.
  • Ottenere ogni FoundDocument utilizzando il metodo getFoundDocument.
  • 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 omofoni insieme al numero di occorrenze di ciascun termine cercato.

// Stampa dei risultati della ricerca 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());
  
        // La stampa ha trovato termini
        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 omofoni in più file e cartelle utilizzando 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 opzioni di ricerca
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Cerca la parola "giusto"
// Oltre alla parola 'right', verranno cercati anche gli omofoni '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());
  
        // La stampa ha trovato termini
        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 utilizzando Java. Puoi provare a sviluppare la tua applicazione Java per la ricerca di omofoni utilizzando GroupDocs.Search for Java.

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

Guarda anche