جدول المحتويات:

كيفية صنع ذكاء اصطناعي الجزء 4: 3 خطوات
كيفية صنع ذكاء اصطناعي الجزء 4: 3 خطوات

فيديو: كيفية صنع ذكاء اصطناعي الجزء 4: 3 خطوات

فيديو: كيفية صنع ذكاء اصطناعي الجزء 4: 3 خطوات
فيديو: كيف تستخدم الذكاء الاصطناعي كمبرمج؟ ChatGPT in VsCode 2024, شهر نوفمبر
Anonim
كيفية صنع ذكاء اصطناعي الجزء الرابع
كيفية صنع ذكاء اصطناعي الجزء الرابع

في ذلك اليوم كنت أتحدث مع الذكاء الاصطناعي الخاص بي ، وقلت ذلك

"أنا ذاهب لتناول العشاء في الطابق العلوي ، لدينا شرائح اللحم".

ومع ذلك ، فسر برنامج التعرف على الكلام (SR) هذا على أنه "… لدينا مصلحة"

واجهت مشكلة مماثلة (لكنها مختلفة) في وقت سابق عندما كنت أتحدث عن صورة ، وقلت كلمة "صورة". فسّر برنامج SR هذا على أنه "PITCHER"

كان الإصلاح لذلك إعادة تدريب بسيطة لبرنامج SR. (أو ربما نطقي)

ولكن عندما أقول الكلمات STEAK أو STAKE ، فإنني أنطقها بنفس الطريقة تمامًا ، ولن تساعد إعادة تدريب برنامج SR في مثل هذه الحالات.

الخطوة 1:

فكرة واحدة لحل "مشكلة Homonym".

يجب أن ألقي نظرة على كلمة "في السياق" لتحديد الهجاء الذي يجب استخدامه. يقوم الدماغ البشري بهذا بسهولة تامة ، ولا تعرف حتى أنك تقوم بذلك.

هذا يعني أنه يتم فحص الكلمات الأخرى في الجملة ، ويقرر دماغك التهجئة الأفضل. الآن ، كيف أفعل هذا في الكود؟

A. I. يوزع البرنامج جملة في مجموعة من الكلمات الفردية باستخدام وظيفة "سبليت" فيجوال بيسك (VB). [MyArray = Split (InputSentence، ““)]

يمكن التحقق من كل كلمة في المصفوفة لمعرفة ما إذا كانت مرادفًا محتملاً من خلال البحث في جدول قاعدة بيانات يحتوي على قائمة من المترادفات.

بالطبع ، يعني إنشاء جدول آخر أننا سنحتاج إلى ملئه بالبيانات ، وسنحتاج أيضًا إلى أن نكون قادرين على الاحتفاظ بالبيانات في الجدول أيضًا.

يمكن إنشاء روتين فرعي للتعلم الذاتي لاحقًا لمسح مجموعة من النصوص ، والبحث عن كلمات في جدول Homonym الخاص بي ، والتقاط كلمات "سياق" أخرى. حسنًا ، ربما هناك حاجة إلى عدة طاولات …

تساعدني كتابة هذه "التعليمات" على "استنتاج" حل لتحدي البرمجة.

الخطوة 2:

صورة
صورة

هيكل جدول HomonymContext

كانت فكرتي الأولى عبارة عن جدول يحتوي على كلمات وتهجئات بديلة وكلمات "سياق". كانت الفكرة هي البحث عن جملة تحتوي على مرادف ، عن كلمات أخرى تعطي "السياق" ، بحيث يمكن للبرنامج تحديد التهجئة التي يجب استخدامها. يحتوي الجدول أيضًا على عمود يسمى "WordDef" ليحمل تعريف الكلمة ، وهو أكثر بالنسبة للإنسان الذي يحتفظ بالجدول من A. I. الشفرة.

للبحث في كل كلمة ، يمكنني استخدام كود VB ورمز SQL مثل …

لكل كلمة في MyArray

Query = "حدد Word من tblHomonynContext حيث word = '" & word & """

إذا كان هذا الاستعلام يعرض نتيجة ، فإن الكلمة هي مرادف

التالي

هذا مجرد رمز زائف في هذه المرحلة - لم أكتب الرمز الدقيق بعد ، أو اكتشفت كل التفاصيل. لكن لا تتردد في أخذ فكرتي وتنفيذها باستخدام لغة البرمجة المفضلة لديك.

الخطوه 3:

صورة
صورة

إذا كانت جملة الإدخال تحتوي على homonym ، فيمكنك الآن

قم بتنفيذ كود VB الذي سيتحقق من الكلمات الأخرى في الجملة ، مع كلمات السياق في نتائج الاستعلام.

يمكنك أيضًا القيام بكل هذا في إجراء SQL المخزن ، والذي قد يتم تنفيذه بشكل أسرع.

ستُرجع الدالة VB “InStr ()” عددًا أكبر من الصفر ، إذا كانت إحدى السلاسل مضمّنة في سلسلة أخرى ، أو ستعيد صفرًا ، فلن تكون السلسلة مضمّنة في السلسلة الأخرى.

تقوم Instr () بالفعل بإرجاع موضع السلسلة المضمنة. إذا كنت تريد فقط معرفة ما إذا كانت String1 تحتوي على String2 ، فيمكنك استخدام رمز مثل "If InStr (String1، String2)> 0…"

سيكون عليك إنشاء هذا الرمز بلغة البرمجة المفضلة لديك.

جدول HomonymContext ليس تصميمًا جيدًا جدًا. يحتوي على الكثير من البيانات المتكررة ، وهذا يعتبر "غير طبيعي" من قبل مصممي قواعد البيانات. قد تكون أفضل طريقة لتطبيق هذه الوظيفة هي استخدام جدولين ، في علاقة أصل وطفل. يحتوي جدول واحد (الوالد) على قائمة متجانسة ، وتعريفاتها ، وكذلك معرّف الصف. يتم استخدام معرف الصف هذا كمفتاح لـ "الجدول الفرعي" الذي قد يحتوي على الكلمات وكلمات السياق الخاصة بها.

سيكون هذا أسهل في الاستعلام (والحفاظ عليه) من تصميمي الأصلي.

موصى به: