Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 56998|Jawab: 2

[Sumber] Menerapkan algoritma kesamaan string di C#

[Salin tautan]
Diposting pada 23/04/2019 12.59.18 | | | |
Baru-baru ini, ada masalah yang perlu ditangani, yaitu membandingkan string yang dimasukkan oleh pengguna dan string yang diperoleh sistem, jika kesalahannya tidak terlalu besar, sistem akan menganggapnya memenuhi persyaratan, dan yang terbaik adalah menetapkan ambang batas.
Saat terlibat dalam pengenalan CAPTCHA, Anda perlu membandingkan kesamaan kode karakter dan menggunakan "algoritma jarak edit" untuk membuat catatan prinsip dan implementasi C#.

Menurut Ensiklopedia Baidu:

Jarak suntingan, juga dikenal sebagai jarak Levenshtein (juga dikenal sebagai jarak edit), adalah jumlah minimum pengeditan yang diperlukan untuk beralih dari satu ke yang lain di antara dua string, dan semakin besar jaraknya, semakin berbeda jaraknya. Operasi pengeditan yang diizinkan termasuk mengganti satu karakter dengan karakter lain, menyisipkan karakter, dan menghapus karakter.

Misalnya, ubah kata anak kucing menjadi duduk:

Duduk (K→s)

Sittin (E→i)

duduk (→g)

Ilmuwan Rusia Vladimir Levenshtein mengusulkan konsep ini pada tahun 1965. Oleh karena itu dinamakan Jarak Levenshtein.

Misalnya

Jika str1="ivan", str2="ivan", maka dihitung sama dengan 0. Tidak dikonversi. kesamaan = 1-0 / Matematika.Maks (str1.panjang, str2.panjang) = 1
Jika str1="ivan1", str2="ivan2", maka dihitung sama dengan 1. "1" dari str1 diubah menjadi "2", mengubah karakter, sehingga jaraknya adalah 1, kesamaan = 1-1/Math.Max(str1.length, str2.length) = 0.8

Aplikasi:

  • Analisis DNA
  • Pemeriksaan ejaan
  • Pengenalan ucapan
  • Deteksi plagiarisme



Algoritma diimplementasikan dalam C#:

Kode pengujian:






Dari hasil pengujian disimpulkan bahwaantariksaatauTanda bacaPosisi stringKota yang berbedaHasil yang memengaruhi kesamaanOleh karena itu, saat membandingkan pengenalan string, disarankan untuk menghapus semua spasi dan simbol khusus dalam string sebelum memanggil algoritme

Sumber daya:Login hyperlink terlihat.

Di GitHub, ada juga pustaka untuk perbandingan kesamaan string C#

FuzzyString adalah perpustakaan yang dikembangkan untuk pekerjaan sehari-hari saya untuk mengoordinasikan konvensi penamaan antara model kisi yang berbeda. Saya telah melucuti kode khusus sistem daya dan mengumpulkan apa yang dapat digunakan secara efektif sebagai ekstensi string untuk menentukan perkiraan kesetaraan antara dua string. Semua algoritma yang digunakan di sini telah diekstraksi dari sumber online, dikonversi ke C#, dan dikompilasi ke dalam pustaka ini. Saya menemukan beberapa implementasi open source serupa lainnya yang tidak tersedia untuk . BERSIH / C#。 Menambahkan *.dll ke proyek Anda akan memberi Anda akses ke ekstensi ini dan ekstensi individual di bawah ekstensi ApproximatelyEquals().



Alamat:Login hyperlink terlihat.

Instalasi Nuget:

Algoritma yang termasuk dalam proyek ini:

  • Jarak hamming
  • Jaccard jarak
  • Jaro jarak
  • Jarak Jaro-Winkler
  • Jarak Levenshtein
  • Publik terpanjang
  • Substring umum terpanjang dari suburutan
  • Koefisien tumpang tindih
  • Kesamaan Ratcliff-Obershelp
  • Jarak Sorensen-Dadu
  • Koefisien Tanimoto



Menggunakan:


Hasil:



(Akhir)




Mantan:Seni Pengujian Perangkat Lunak Edisi ke-3 pdf
Depan:"Delapan Kompetensi Analis Data" tidak mengenkripsi kursus lengkap
Diposting pada 06/05/2019 13.11.34 |
Pengetahuan akan datang
Diposting pada 07/09/2021 15.01.05 |
Apakah mungkin untuk melihat kode setelah membalas?
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com