GroupDocs kullanarak Dosyalarda Eşsesli Sesleri Arayın

Eşanlamlılar, benzer anlamlara sahip kelimelerdir ve Homofonlar aynı sesleri çıkarır, ancak anlamlar veya hecelemeler bakımından farklıdır. Java kullanarak birden çok belgede eşanlamlı bulmayı öğrendik. Bugün, bu makalede, Java kullanarak birden çok belgede sesteş sözcüklerin nasıl aranacağını göreceğiz.

Aşağıdaki konular aşağıda ele alınacaktır:

Homofonları Aramak için Java API

GroupDocs.Search, herhangi bir belirli klasörün birden çok dosyasında herhangi bir kelimeyi ve onun sesteş seslerini bulmaya izin veren GroupDocs.Search for Java Java API’sini gösterir. çeşitli farklı biçimlerin içeriğini arayabilir. API, sesteş sözcükleri bulmaya ek olarak, aşağıdakileri içeren diğer birçok arama tekniğini destekler:

  • Büyük/Küçük Harfe Duyarlı Arama
  • Bulanık Arama
  • Cümle Arama
  • Normal İfade Araması
  • Eş anlamlı Arama
  • Joker Kartla Arama

JAR dosyasını indirilenler bölümünden indirebilir veya Java uygulamalarınızda en son depo ve bağımlılık Maven yapılandırmalarını kullanabilirsiniz.

<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

Java’da Birden Çok Dosyada Sesteş Sesleri Bulun

Aşağıdaki adımlar, Java’da bir klasörün birden çok dosyasında sesteş seslerin nasıl aranacağına rehberlik eder.

  • Arama sözcüğü sorgusunu, dizin oluşturma klasörünü ve dosyalarınızın kapsayıcı klasörünü tanımlayın.
  • Tanımlanan dizin klasörü ile Dizin oluşturun.
  • Belgenin klasörünü dizine ekleyin.
  • SearchOptions tanımlayın ve setUseHomophoneSearch yöntemini kullanarak homophoneSearch’ü etkinleştirin.
  • Arama yöntemini kullanarak sesteş sözcükler aramasını gerçekleştirin.
  • Alınan SearchResult özelliklerini gerektiği gibi kullanın.

Aşağıdaki Java kaynak kodu, tanımlanan klasörün dosyalarındaki tüm sesteş sözcükleri bulur. Ayrıca, homofon sözlüğünüzü yönetebilirsiniz.

// Java kullanarak birden çok dosya ve klasörde sesteş sözcükleri arayın
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Belirtilen klasörde bir dizin oluşturma
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Arama seçenekleri nesnesi oluşturma
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// 'Doğru' kelimesini arayın
// 'Doğru' kelimesinin yanı sıra 'rite, write, wright, ...' eşsesli sözcükleri de aranacaktır.
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());

Yukarıdaki kodun çıktısı aşağıdaki gibidir:

Query: right
Documents: 2
Occurrences: 17

Her bir belgeden sesteş sözcükleri ve oluşumlarını aldıktan sonra aşağıdaki adımları takip ederek sesteş sözcükler arama sonuçlarını kullanabilirsiniz.

  • Arama sonuçları arasında geçiş yapın.
  • getFoundDocument yöntemini kullanarak her FoundDocument öğesini alın.
  • Her FoundDocument’in özelliklerini gerektiği gibi kullanın.
  • Şimdi, FoundDocumentField‘i alarak FoundDocument alanlarında gezinin.
  • Daha sonra, her FoundDocumentField’dan, her belgedeki tüm terimleri ve bunların geçtiği yerleri alın.

Aşağıdaki Java kodu örneği, aranan her terimin oluşum sayısıyla birlikte sesteş sesli arama sonuçlarını yazdırır.

// Homophone Arama sonuçlarını Java'da yazdırma
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

// Belgeleri Geçiş
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());
  
  // Bulunan alanları dolaş
  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // Bulunan terimleri yazdırma
        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]);
            }
        }
    }
}

Yukarıdaki kod örneğinin çıktısı aşağıdadır.

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

Java Kullanarak Sesteş Sesleri Arama ve Sonuçları Yazdırma - Tam Kod

Aşağıdaki Java kodu, yukarıdaki adımları birleştirir. Başlangıçta, sorguya göre sesteş sözcükleri bulur ve ardından sağlanan klasördeki her bir belgedeki sesteş seslerin tüm oluşumlarını yazdırır.

// Java kullanarak birden çok dosya ve klasörde sesteş sözcükleri arayın
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// Belirtilen klasörde bir dizin oluşturma
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Arama seçenekleri nesnesi oluşturma
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// 'Doğru' kelimesini arayın
// 'Doğru' kelimesinin yanı sıra 'rite, write, wright, ...' eşsesli sözcükleri de aranacaktır.
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());
  
        // Bulunan terimleri yazdırma
        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üm

Sonuç olarak, Java kullanarak belirli bir klasördeki birden çok belgeden sözcükleri ve bunların sesteş seslerini nasıl bulacağınızı öğrendiniz. GroupDocs.Search for Java’yı kullanarak sesteş sözcükleri aramak için kendi Java uygulamanızı geliştirmeyi deneyebilirsiniz.

Belgelerden Java Search Automation API hakkında daha fazla bilgi edinin. Özelliklerini deneyimlemek için GitHub deposundaki mevcut örneklere göz atabilirsiniz. Herhangi bir sorunuz için forum aracılığıyla bize ulaşın.

Ayrıca bakınız