Buscar homófonos en archivos usando GroupDocs

Sinónimos son palabras con un significado similar, y Homófonos suenan igual pero tienen significados u ortografía diferentes. Aprendimos a encontrar sinónimos en múltiples documentos usando Java. Hoy, en este artículo, veremos cómo buscar homófonos dentro de múltiples documentos usando Java.

A continuación se tratarán los siguientes temas:

API de Java para buscar homófonos

GroupDocs.Search muestra la API de Java (GroupDocs.Search for Java) que permite encontrar cualquier palabra y sus homófonos dentro de múltiples archivos de cualquier carpeta específica. Puede buscar el contenido de varios formatos diferentes. Además de encontrar los homófonos, la API admite muchas otras técnicas de búsqueda que incluyen:

  • Búsqueda sensible a mayúsculas y minúsculas
  • Búsqueda borrosa
  • Búsqueda de frases
  • Búsqueda de expresiones regulares
  • Búsqueda de sinónimos
  • Búsqueda de comodines

Puede descargar el archivo JAR desde la sección de descargas o usar el último repositorio y dependencia [Maven](https://repository.groupdocs.com/ webapp/#/artifacts/browse/tree/General/repo/com/groupdocs) dentro de sus aplicaciones 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

Encuentra homófonos en múltiples archivos en Java

Los siguientes pasos guían cómo buscar homófonos en varios archivos de una carpeta en Java.

El siguiente código fuente de Java encuentra todos los homófonos dentro de los archivos de la carpeta definida. Además, también puede administrar su diccionario homófono.

// Busque homófonos en múltiples archivos y carpetas usando Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Crear un índice en la carpeta especificada
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Creación de un objeto de opciones de búsqueda
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Busca la palabra 'correcto'
// Además de la palabra 'right', también se buscarán los homófonos '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());

La salida del código anterior es la siguiente:

Query: right
Documents: 2
Occurrences: 17

Puede usar los resultados de la búsqueda de homófonos siguiendo los pasos después de obtener los homófonos y sus ocurrencias de cada documento.

  • Recorrer los resultados de búsqueda.
  • Obtener cada FoundDocument usando [getFoundDocument()](https://apireference.groupdocs.com/search /java/com.groupdocs.search.results/SearchResult#getFoundDocument(int)).
  • Use las propiedades de cada FoundDocument según sea necesario.
  • Ahora, recorra los campos de FoundDocument obteniendo FoundDocumentField.
  • Luego, de cada FoundDocumentField, obtenga todos los términos y sus ocurrencias dentro de cada documento.

El siguiente ejemplo de código Java imprime los resultados de la búsqueda de homófonos junto con el número de ocurrencias de cada término buscado.

// Imprimir los resultados de la búsqueda de homófonos en Java
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

// Atravesar los Documentos
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());
  
  // Recorrer los campos encontrados
  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // Imprimir términos encontrados
        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]);
            }
        }
    }
}

El siguiente es el resultado del ejemplo de código anterior.

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

Búsqueda de homófonos e impresión de resultados usando Java - Código completo

El siguiente código Java combina los pasos anteriores. Inicialmente, encuentra los homófonos según la consulta y luego imprime todas las apariciones de homófonos de cada documento dentro de la carpeta proporcionada.

// Busque homófonos en múltiples archivos y carpetas usando Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Crear un índice en la carpeta especificada
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Creación de un objeto de opciones de búsqueda
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Busca la palabra 'correcto'
// Además de la palabra 'right', también se buscarán los homófonos '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());
  
        // Imprimir términos encontrados
        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]);
            }
        }
    }
}

Conclusión

Para concluir, aprendió cómo encontrar las palabras y sus homófonos de varios documentos dentro de una carpeta específica usando Java. Puede intentar desarrollar su propia aplicación Java para buscar homófonos usando GroupDocs.Search for Java.

Obtenga más información sobre la API de automatización de búsqueda de Java en la documentación. Para experimentar sus funciones, puede echar un vistazo a los ejemplos disponibles en el repositorio GitHub. Comuníquese con nosotros para cualquier consulta a través del foro.

Ver también