Kata-kata yang bunyinya sama tetapi berbeda arti atau ejaannya adalah Homofon. Sedangkan kata-kata yang ejaannya sama, tetapi berbeda makna atau pengucapannya adalah homograf. Homonim bisa berupa homofon atau homograf; atau keduanya. Jangan bingung dan mengotomatiskannya. Pada artikel ini, Anda akan mempelajari cara mencari homofon dalam banyak dokumen menggunakan C#.

Cari Homofon di File menggunakan GroupDocs

Topik-topik berikut akan dibahas di bawah ini:

.NET API untuk Mencari Homofon di Banyak File

GroupDocs.Search menampilkan .NET API (GroupDocs.Search for .NET) yang memungkinkan pencarian kata dan homofonnya dalam banyak file dari folder yang ditentukan. Kami akan menggunakan API ini dalam contoh artikel ini. Itu dapat mencari konten dari berbagai format berbeda. Seiring dengan menemukan homofon, API mendukung banyak cara lain untuk mencari sesuai kebutuhan. Beberapa teknik pencarian yang didukung adalah sebagai berikut:

  • Pencarian Sinonim
  • Pencarian Frasa
  • Pencarian Fuzzy
  • Pencarian Peka Huruf Besar
  • Pencarian Ekspresi Reguler
  • Pencarian Kartu Liar

Anda dapat mendownload penginstal DLL atau MSI dari bagian download atau instal API di aplikasi .NET Anda melalui [NuGet](https://www.nuget.org /packages/groupdocs.search).

PM> Install-Package GroupDocs.Search

Temukan Homofon di Banyak File menggunakan C#

Langkah-langkah berikut memandu bagaimana kita dapat mencari homofon (kata-kata dengan suara/pengucapan yang mirip) dalam file di dalam folder menggunakan C#.

  • Tentukan permintaan pencarian, folder pengindeksan, dan folder yang berisi file Anda.
  • Buat Indeks dengan folder indeks yang ditentukan.
  • Tambahkan folder dokumen ke indeks yang dibuat.
  • Tetapkan SearchOptions dan tetapkan [UseHomophoneSearch](https://apireference.groupdocs.com/search/net/groupdocs .search.options/searchoptions/properties/usehomophonesearch) ke true.
  • Telusuri semua homofon dengan memanggil metode Search dengan kueri dan opsi penelusuran.
  • Gunakan ringkasan menggunakan properti SearchResult yang diambil kembali.

Kode sumber C# berikut menemukan semua homofon di dalam semua file dari folder yang ditentukan. Selain itu, Anda dapat mengelola kamus homofon Anda.

// Cari homofon dalam beberapa file dan folder menggunakan C#
string query = "right";
string indexFolder = @"path\indexFolder";
string documentsFolder = @"path\documentsFolder";

// Membuat indeks di folder yang ditentukan
Index index = new Index(indexFolder);
index.Add(documentsFolder);

// Membuat objek opsi pencarian
SearchOptions options = new SearchOptions()
{
    UseHomophoneSearch = true // Enabling Homophone Search
}; 

// Cari kata 'benar'
// Selain kata 'benar', kata "rite, wright, write,..." juga akan dicari
SearchResult result = index.Search(query, options);
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Occurrences: " + result.OccurrenceCount);

Output dari kode di atas adalah sebagai berikut:

Query: **right**
Documents: 2
Occurrences: 17

Ikuti langkah-langkah yang disebutkan di bawah ini setelah mendapatkan semua homofon dan jumlah kemunculannya di setiap dokumen untuk menyajikan hasil pencarian homofon.

  • Lintasi hasil pencarian homophone yang diambil tadi.
  • Dapatkan setiap dokumen sebagai FoundDocument menggunakan [GetFoundDocument()](https://apireference.groupdocs.com/search/ net/groupdocs.search.results/searchresult/methods/getfounddocument) metode.
  • Gunakan properti dari setiap FoundDocument sesuai kebutuhan.
  • Sekarang, telusuri FoundFields dari FoundDocument untuk mendapatkan [FoundDocumentField](https://apireference.groupdocs. com/search/net/groupdocs.search.results/founddocumentfield).
  • Terakhir, dari setiap FoundDocumentField, dapatkan Terms dan kemunculannya di dalam setiap dokumen.

Kode sumber C# berikut mencetak hasil pencarian homofon bersama dengan jumlah kemunculan setiap istilah yang dicari.

// Mencetak hasil Pencarian Homofon di C#
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount + "\n");
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("Document: " + document.DocumentInfo.FilePath);
    Console.WriteLine("Occurrences: " + document.OccurrenceCount);
    for (int j = 0; j < document.FoundFields.Length; j++)
    {
        FoundDocumentField field = document.FoundFields[j];
        Console.WriteLine("\tField: " + field.FieldName);
        Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
        // Mencetak istilah yang ditemukan
        if (field.Terms != null)
        {
            for (int k = 0; k < field.Terms.Length; k++)
            {
                Console.WriteLine("\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
            }
        }
    }
}

Berikut adalah output dari contoh kode di atas.

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

Cari Homofon dan Hasil Cetak menggunakan C# - Kode Lengkap

Kode C# berikut meringkas langkah-langkah di atas, pertama-tama ia menemukan semua homofon menurut kueri, lalu mencetak semua kemunculan semua homofon di setiap dokumen dalam folder yang disediakan.

// Cari Homofon di beberapa file dan folder lalu Cetak hasilnya menggunakan C#
string query = "right";
string indexFolder = @"path\indexFolder";
string documentsFolder = @"path\documentsFolder";

// Membuat indeks di folder yang ditentukan
Index index = new Index(indexFolder);
// Mengindeks dokumen dari folder yang ditentukan
index.Add(documentsFolder);

// Membuat objek opsi pencarian
SearchOptions options = new SearchOptions()
{
    UseHomophoneSearch = true // Enabling Homophone Search
}; 

// Cari kata 'benar'
// Selain kata 'benar', kata "rite, wright, write,..." juga akan dicari
SearchResult result = index.Search(query, options);

// Mencetak hasilnya
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount + "\n");
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("Document: " + document.DocumentInfo.FilePath);
    Console.WriteLine("Occurrences: " + document.OccurrenceCount);
    for (int j = 0; j < document.FoundFields.Length; j++)
    {
        FoundDocumentField field = document.FoundFields[j];
        Console.WriteLine("\tField: " + field.FieldName);
        Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
        // Mencetak istilah yang ditemukan
        if (field.Terms != null)
        {
            for (int k = 0; k < field.Terms.Length; k++)
            {
                Console.WriteLine("\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
            }
        }
    }
}

Kesimpulan

Singkatnya, Anda telah mempelajari cara menemukan kata dan homofonnya dari beberapa dokumen di folder tertentu menggunakan C#. Anda dapat mencoba membuat aplikasi .NET Anda sendiri untuk mencari homofon dalam banyak file menggunakan GroupDocs.Search for .NET.

Pelajari lebih lanjut tentang .NET Search Automation API dari dokumentasi. Untuk mencoba fitur-fiturnya, Anda dapat melihat contoh yang tersedia di repositori GitHub. Hubungi kami jika ada pertanyaan melalui forum.

Lihat juga