Pesquisar homófonos em arquivos usando GroupDocs

Sinônimos são palavras com significado semelhante, e Homófones soam iguais, mas têm significados ou grafias diferentes. Aprendemos a encontrar sinônimos em vários documentos usando Java. Hoje, neste artigo, veremos como pesquisar homófonos em vários documentos usando Java.

Os seguintes tópicos serão abordados a seguir:

API Java para pesquisar homófonos

GroupDocs.Search mostra a API Java (GroupDocs.Search for Java) que permite encontrar qualquer palavra e seus homófonos em vários arquivos de qualquer pasta específica. Ele pode pesquisar o conteúdo de vários formatos diferentes. Além de encontrar os homófonos, a API suporta muitas outras técnicas de busca que incluem:

  • Pesquisa sensível a maiúsculas e minúsculas
  • Pesquisa difusa
  • Pesquisa de frase
  • Pesquisa de expressões regulares
  • Pesquisa de sinônimos
  • Pesquisa de curingas

Você pode baixar o arquivo JAR da seção de downloads ou usar o repositório e a dependência mais recente [Maven](https://repository.groupdocs.com/ webapp/#/artifacts/browse/tree/General/repo/com/groupdocs) em seus aplicativos 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

Encontre homófonos em vários arquivos em Java

As etapas a seguir orientam como pesquisar homófonos em vários arquivos de uma pasta em Java.

O código-fonte Java a seguir encontra todos os homófonos nos arquivos da pasta definida. Além disso, você também pode gerenciar seu dicionário homófono.

// Pesquise homófonos em vários arquivos e pastas usando Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Criando um índice na pasta especificada
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Criando um objeto de opções de pesquisa
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Procure a palavra 'certo'
// Além da palavra 'right', também serão pesquisados os 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());

A saída do código acima é a seguinte:

Query: right
Documents: 2
Occurrences: 17

Você pode usar os resultados da pesquisa de homófonos seguindo as etapas após obter os homófonos e suas ocorrências de cada documento.

  • Percorra os resultados da pesquisa.
  • Obtenha cada FoundDocument usando o [getFoundDocument()](https://apireference.groupdocs.com/search /java/com.groupdocs.search.results/SearchResult#getFoundDocument(int)).
  • Use as propriedades de cada FoundDocument conforme necessário.
  • Agora, percorra os campos do FoundDocument obtendo FoundDocumentField.
  • Posteriormente, de cada FoundDocumentField, obtenha todos os termos e suas ocorrências dentro de cada documento.

O exemplo de código Java a seguir imprime os resultados da pesquisa homófona junto com o número de ocorrências de cada termo pesquisado.

// Imprimindo os resultados da pesquisa homófona em Java
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

// Percorra os 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());
  
  // Percorra os campos encontrados
  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // Imprimindo termos 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]);
            }
        }
    }
}

A seguir está a saída do exemplo de código acima.

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

Pesquisar homófonos e resultados de impressão usando Java - Código Completo

O código Java a seguir combina as etapas acima. Inicialmente, ele encontra os homófonos conforme consulta e, em seguida, imprime todas as ocorrências de homófonos de cada documento dentro da pasta fornecida.

// Pesquise homófonos em vários arquivos e pastas usando Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Criando um índice na pasta especificada
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Criando um objeto de opções de pesquisa
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// Procure a palavra 'certo'
// Além da palavra 'right', também serão pesquisados os 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());
  
        // Imprimindo termos 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]);
            }
        }
    }
}

Conclusão

Para concluir, você aprendeu a encontrar as palavras e seus homófonos em vários documentos dentro de uma pasta específica usando Java. Você pode tentar desenvolver seu próprio aplicativo Java para pesquisar homófonos usando GroupDocs.Search for Java.

Saiba mais sobre a API Java Search Automation na documentação. Para experimentar seus recursos, você pode dar uma olhada nos exemplos disponíveis no repositório GitHub. Entre em contato conosco para qualquer consulta por meio do fórum.

Veja também