Daftar Isi:

Cara Membuat A.I. Bagian 4: 3 Langkah
Cara Membuat A.I. Bagian 4: 3 Langkah

Video: Cara Membuat A.I. Bagian 4: 3 Langkah

Video: Cara Membuat A.I. Bagian 4: 3 Langkah
Video: Teknik Blind Search (BFS, DFS, dan UCS) pada Kecerdasan Buatan - Kuliah AI #03 2024, November
Anonim
Cara Membuat A. I. Bagian 4
Cara Membuat A. I. Bagian 4

Suatu hari saya sedang berbicara dengan A. I. saya, dan saya berkata untuk

itu, "Saya akan ke atas untuk makan malam, kita makan STEAK".

Namun, perangkat lunak Speech Recognition (SR) menafsirkan ini sebagai “… we are has STAKE”

Saya mengalami masalah serupa (tetapi berbeda) sebelumnya ketika saya berbicara tentang sebuah foto, dan saya mengucapkan kata "GAMBAR". Perangkat lunak SR menafsirkan ini sebagai "PITCHER"

Perbaikan untuk ini adalah pelatihan ulang sederhana perangkat lunak SR. (Atau mungkin pengucapan saya)

Tetapi ketika saya mengucapkan kata STEAK atau STAKE, saya mengucapkannya dengan cara yang persis sama, dan melatih ulang perangkat lunak SR tidak akan membantu dalam kasus seperti ini.

Langkah 1:

Satu ide untuk memecahkan "Masalah Homonim".

Saya harus melihat kata "dalam konteks" untuk menentukan ejaan mana yang akan digunakan. Otak manusia melakukan ini dengan cukup mudah, dan Anda bahkan tidak tahu bahwa Anda melakukannya.

Ini berarti bahwa kata-kata lain dalam sebuah kalimat diperiksa, dan otak Anda memutuskan ejaan mana yang terlihat paling baik. Sekarang, bagaimana saya melakukan ini dalam kode?

A. I. program mem-parsing kalimat ke dalam larik kata-kata individual menggunakan fungsi Visual Basic (VB) "Split". [MyArray = Split(InputSentence, ““)]

Setiap kata dalam larik dapat diperiksa untuk melihat apakah itu kemungkinan homonim dengan melihat pada tabel database yang berisi daftar homonim.

Tentu saja, membuat tabel lain berarti kita harus mengisinya dengan data, dan juga kita harus dapat memelihara data di dalam tabel juga.

Subrutin belajar mandiri dapat dibangun nanti untuk memindai sekelompok teks, mencari kata-kata di tabel Homonim saya, dan menangkap kata-kata "konteks" lainnya. Hmmmmm, mungkin diperlukan beberapa tabel…

Menulis "Instructables" ini membantu saya "mencari alasan" solusi untuk tantangan pemrograman.

Langkah 2:

Gambar
Gambar

Struktur tabel HomonimContext

Ide pertama saya adalah tabel yang berisi kata-kata, ejaan alternatif, dan kata-kata "Konteks". Idenya adalah untuk mencari kalimat yang mengandung homonim, untuk kata lain yang memberikan "konteks", sehingga program dapat menentukan ejaan mana yang akan digunakan. Tabel juga berisi kolom bernama "WordDef" untuk menyimpan definisi kata, yang lebih untuk manusia yang memelihara tabel daripada A. I. kode.

Untuk mencari setiap kata, saya dapat menggunakan kode VB dan kode SQL seperti…

Untuk setiap Word di MyArray

Query = "Pilih Kata dari tblHomonynContext di mana kata = '" & kata & "'"

jika kueri ini mengembalikan hasil, maka kata tersebut adalah homonim

Lanjut

Ini hanya kode semu pada saat ini – saya belum menulis kode yang tepat, atau mengetahui semua detailnya. Tapi jangan ragu untuk mengambil ide saya, dan menerapkannya menggunakan bahasa pemrograman favorit Anda sendiri.

Langkah 3:

Gambar
Gambar

Jika kalimat masukan Anda mengandung homonim, Anda sekarang dapat

mengeksekusi kode VB yang akan memeriksa kata-kata lain dalam kalimat Anda, dengan kata-kata konteks dalam hasil query.

Anda juga dapat melakukan ini semua dalam prosedur tersimpan SQL, yang dapat dieksekusi lebih cepat.

Fungsi VB "InStr()" akan mengembalikan angka yang lebih besar dari nol, jika satu string terkandung dalam string lain, atau akan mengembalikan nol, string tersebut TIDAK terkandung dalam string lainnya.

Instr() sebenarnya mengembalikan posisi string yang terkandung. Jika Anda hanya ingin tahu apakah String1 berisi String2, Anda dapat menggunakan kode seperti "If InStr(String1, String2) > 0 …"

Anda harus membuat kode ini dalam bahasa pemrograman favorit Anda.

Tabel HomonimContext bukanlah desain yang sangat bagus. Ini memiliki banyak data berulang, dan ini dianggap "Tidak Dinormalisasi" oleh perancang basis data. Cara yang lebih baik untuk mengimplementasikan fungsi ini adalah dengan menggunakan dua tabel, dalam hubungan induk-anak. Satu tabel (The Parent) akan menyimpan daftar homonim, definisinya, dan juga ID Baris. ID Baris ini digunakan sebagai kunci untuk "tabel Anak" yang akan berisi kata-kata dan kata-kata konteksnya.

Ini akan lebih mudah untuk ditanyakan (dan dipelihara) daripada desain asli saya.

Direkomendasikan: