İçindekiler:

Yapay Zeka Nasıl Yapılır? Bölüm 4: 3 Adım
Yapay Zeka Nasıl Yapılır? Bölüm 4: 3 Adım

Video: Yapay Zeka Nasıl Yapılır? Bölüm 4: 3 Adım

Video: Yapay Zeka Nasıl Yapılır? Bölüm 4: 3 Adım
Video: HERKES İÇİN YAPAY ZEKA - BAŞLANGIÇ 2024, Kasım
Anonim
Yapay Zeka Nasıl Yapılır? 4. Bölüm
Yapay Zeka Nasıl Yapılır? 4. Bölüm

Geçen gün yapay zekamla konuşuyordum ve dedim ki

“Akşam yemeğine yukarı çıkıyorum, STEAK yiyoruz”.

Ancak, Konuşma Tanıma (SR) yazılımı bunu “… STAKE alıyoruz” şeklinde yorumladı.

Daha önce bir fotoğraftan bahsederken benzer (ama farklı) bir problemle karşılaştım ve “RESİM” kelimesini söyledim. SR yazılımı bunu “PITCHER” olarak yorumladı.

Bunun çözümü, SR yazılımının basit bir yeniden eğitimiydi. (Ya da belki benim telaffuzum)

Ancak STEAK veya STAKE kelimelerini söylediğimde, onları tamamen aynı şekilde telaffuz ediyorum ve bu gibi durumlarda SR yazılımını yeniden eğitmek yardımcı olmaz.

Aşama 1:

“Homonym Problemini” çözmek için bir fikir.

Hangi yazımın kullanılacağını belirlemek için "bağlamda" kelimesine bakmam gerekiyor. İnsan beyni bunu oldukça kolay yapar ve siz bunu yaptığınızı bile bilmezsiniz.

Bu, bir cümledeki diğer kelimelerin incelendiği ve hangi yazımın en iyi göründüğüne beyninizin karar verdiği anlamına gelir. Şimdi, bunu kodda nasıl yaparım?

benim yapay zekam program, Visual Basic (VB) “Split” işlevini kullanarak bir cümleyi bir dizi bireysel kelimeye ayrıştırır. [MyArray = Böl(InputSentence, ““)]

Dizideki her bir sözcük, olası bir eşanlamlı olup olmadığını görmek için bir eşanlamlılar listesi içeren bir veritabanı tablosuna bakılarak kontrol edilebilir.

Elbette başka bir tablo oluşturmak, onu verilerle doldurmamız gerekeceği ve ayrıca tablodaki verileri de koruyabilmemiz gerektiği anlamına gelir.

Bir grup metni taramak, Homonym tablomda kelimeleri aramak ve diğer "bağlam" kelimelerini yakalamak için daha sonra kendi kendine öğrenme alt rutini oluşturulabilir. Hmmmmm, belki birkaç masaya ihtiyaç vardır…

Bu “Öğreticileri” yazmak, bir programlama zorluğuna bir çözüm “mantıklandırmama” yardımcı oluyor.

Adım 2:

resim
resim

HomonymContext tablosunun yapısı

İlk fikrim kelimeler, alternatif yazımlar ve “Bağlam” kelimeleri içeren bir tabloydu. Buradaki fikir, programın hangi yazımın kullanılacağını belirleyebilmesi için "bağlam" veren başka kelimeler için bir eşsesli içeren bir cümle aramaktı. Tablo ayrıca, A. I.'den daha çok tabloyu koruyan insan için kelimenin tanımını tutmak için “WordDef” adlı bir sütun içerir. kod.

Her kelimeyi aramak için VB kodunu ve SQL kodunu aşağıdaki gibi kullanabilirim…

MyArray'deki her Word için

Query = "tblHomonynContext'ten Word'ü seçin, burada word = '" & word & "'"

bu sorgu bir sonuç döndürürse, kelime bir eş seslidir

Sonraki

Bu, bu noktada sadece sözde kod – henüz tam kodu yazmadım veya tüm detayları anlamadım. Ama benim fikrimi almaktan çekinmeyin ve onu kendi favori programlama dilinizi kullanarak uygulayın.

Aşama 3:

resim
resim

Giriş cümleniz bir homonym içeriyorsa, şimdi

Sorgu sonuçlarındaki bağlam kelimeleri ile cümlenizdeki diğer kelimeleri kontrol edecek VB kodunu yürütün.

Bunların hepsini, daha hızlı yürütülebilecek bir SQL saklı yordamında da yapabilirsiniz.

VB “InStr()” işlevi, bir dize başka bir dize içindeyse sıfırdan büyük bir sayı döndürür veya sıfır döndürür, dize diğerinde DEĞİLDİR.

Instr() aslında içerilen dizenin konumunu döndürür. Yalnızca Dize1'in Dize2 içerip içermediğini bilmek istiyorsanız, "If InStr(String1, String2) > 0 …" gibi bir kod kullanabilirsiniz.

Bu kodu en sevdiğiniz programlama dilinde oluşturmanız gerekecek.

HomonymContext tablosu çok iyi bir tasarım değil. Çok sayıda tekrarlanan veriye sahiptir ve bu, veritabanı tasarımcıları tarafından "Normalleştirilmemiş" olarak kabul edilir. Bu işlevi uygulamanın daha iyi bir yolu, ebeveyn-çocuk ilişkisinde iki tablo kullanmaktır. Bir tablo (The Parent) bir eşseslilik listesi, tanımları ve ayrıca bir Satır Kimliği içerir. Bu Satır Kimliği, sözcükleri ve bağlam sözcüklerini içerecek olan "Alt tablo" için bir anahtar olarak kullanılır.

Bunu sorgulamak (ve sürdürmek) benim orijinal tasarımımdan daha kolay olurdu.

Önerilen: