Artikel ini didedikasikan untuk pembuatan sistem pakar. Pada awal artikel adalah diagram blok dari buku dari daftar referensi, kemudian deskripsi dari database dan algoritma. Selanjutnya datang "bantuan tentang cara membuat proyek ini", yang menggambarkan algoritma untuk membuat proyek ini. Di akhir artikel ada daftar referensi. Ini juga memiliki beberapa screenshot.

Diagram alir
Basis data berisi tiga tabel - gambar, pertanyaan dan hasil. Yang pertama adalah yang utama dalam "klasifikasi dan identifikasi", berisi tanda keberhasilan pengakuan (bidang bendera) dan jumlah pasangan "objek, jawaban" dalam "sampel pelatihan" (bidang n). Yang kedua berisi sangat seleksi ini (bidang nilai), serta nama-nama "properti dan atribut" (bidang nama) dan bidang aturan yang digunakan dalam algoritma pengenalan. Akhirnya, tabel ketiga berisi kemungkinan jawaban (hujan / hujan, dll.).
Pertunjukan aksiAlgoritma bekerja sebagai berikut. Pada iterasi saat ini, jumlah nilai aturan * tidak melebihi aturan * n (karena nilai memiliki satu dari dua nilai: 0 atau 1). Pada iterasi berikutnya, nilai tunggal aturan melebihi jumlah ini, yaitu, aturan = aturan * n + 1.
Jumlah inersia dengan unit yang dikurangkan darinya (jawabannya tidak diketahui pada iterasi pertama dengan jumlah nol) adalah jumlah jawabannya (untuk K. Naylor, jumlah positif dari aturan * nilai berarti jawaban pertama, negatif - yang kedua).
Jelas, pada iterasi pertama (nilai nol aturan default), jumlah nilai juga akan menjadi nol. Pada iterasi kedua, itu akan berada dalam kisaran [1, n] (lihat rumus untuk aturan di atas), di ketiga itu akan berada dalam kisaran [n + 1, (n + 1) * n]; pada kisaran keempat akan seperti ini: [(n + 1) * n +1, ((n +1) * n +1) * n] dan seterusnya.
Jadi, batas kanan rentang dihitung dengan rumus jumlah = (jumlah + 1) * n. Ketika semua jawaban yang mungkin diperiksa, kami mereset aturan.
Seperti apa di browser webBantuan tentang cara membuat proyek ini
Hampir semua file proyek dapat dibuat menggunakan perintah
rails generate scaffold Image name:string flag:boolean n:integer rails generate scaffold Question name:string value:integer rule:integer image:references rails generate scaffold Outcome name:string image:references
Dalam file db / migrate / yyyyMMddhhmmss_create_images.rb, alih-alih baris t.boolean: flag, tulis t.boolean: flag, default: false. Kami juga menambahkan nol nilai default untuk bidang images.n, questions.value dan questions.rule. Dan lakukan rake db: bermigrasi.
Selanjutnya, dalam file config / routes.rb, kami membuat sumber daya pertanyaan dan hasil di bawah sumber gambar. Juga di aplikasi file / models / image.rb tambahkan has_many: pertanyaan dan has_many: hasil. Tetap di controller dan tampilan untuk mengubah jalur yang sesuai: ganti question_path dengan image_questions_path (params [: image_id]), dll.
Kami membuat _question.html.erb dan _outcome.html.erb parsial untuk merendernya nanti dalam tampilan gambar / show.html.erb. Anda dapat mempelajari lebih lanjut tentang teknik ini dengan menonton tur video di Rails 5, yang ada di halaman utama situs web resmi kerangka kerja web ini.
Sebagai hasil dari semua tindakan ini, tampilan new.html.erb dan edit.html.erb untuk kedua sumber daya bawahan rusak. Bersama dengan parsial _form.html.erb tunggal, mereka mendapatkan jalur yang sama untuk tindakan formulir ini, yang tidak benar. Kami mengoreksi.
Algoritma dengan perhitungan ulang nilai-nilai bidang aturan (jika perlu) dijelaskan di atas. Itu dimulai ketika halaman web ditampilkan oleh aksi show dari ImageController diperbarui.
Dan akhirnya, pengujian otomatis. Karena perubahan rute, perubahan yang sesuai juga diperlukan dalam pengujian dan perlengkapan.
Sastra
C. Naylor. Cara Membangun Sistem Pakar Anda - Energoatomizdat Publishing House, 1991