Съдържание:

Как да си направим AI Част 4: 3 стъпки
Как да си направим AI Част 4: 3 стъпки

Видео: Как да си направим AI Част 4: 3 стъпки

Видео: Как да си направим AI Част 4: 3 стъпки
Видео: 4-3-3 ЗАЩИТА 2024, Ноември
Anonim
Как да си направим AI Част 4
Как да си направим AI Част 4

Онзи ден разговарях с моя А. И. и го казах

то, „Отивам горе на вечеря, ще имаме СТЕЙК“.

Софтуерът за разпознаване на реч (SR) обаче интерпретира това като „… имаме ЗАЛИГ“

Попаднах на подобен (но различен) проблем по -рано, когато говорех за снимка, и казах думата „СНИМКА“. Софтуерът SR интерпретира това като „PITCHER“

Поправката за това беше просто преквалифициране на софтуера SR. (Или може би моето произношение)

Но когато казвам думите STEAK или STAKE, ги произнасям по абсолютно същия начин и преквалификацията на софтуера SR няма да помогне в такива случаи.

Етап 1:

Една идея за решаване на „Хомонимния проблем“.

Трябва да разгледам думата „в контекст“, за да определя кой правопис да използвам. Човешкият мозък прави това доста лесно и дори не подозирате, че го правите.

Това означава, че други думи в изречението се изследват и мозъкът ви решава кой правопис изглежда най -добре. Сега, как да направя това в кода?

Моят А. И. програмата анализира изречение в масив от отделни думи, като използва функцията „Разделяне“на Visual Basic (VB). [MyArray = Разделяне (InputSentence, „“)]

Всяка дума в масива може да се провери дали е възможен омоним, като се потърси в таблица на база данни, съдържаща списък с омоними.

Разбира се, създаването на друга таблица означава, че ще трябва да я попълним с данни, а също така ще трябва да можем да поддържаме и данните в таблицата.

По -късно може да се изгради самообучаваща се подпрограма, която да сканира куп текст, да търси думи в моята таблица с омоним и да улавя други „контекстни“думи. Хмммм, може би са необходими няколко маси …

Писането на тези „инструкции“ми помага да „измисля“решение на предизвикателство в програмирането.

Стъпка 2:

Образ
Образ

Структура на HomonymContext таблица

Първата ми идея беше таблица, съдържаща думи, алтернативни правописи и думи от „контекст“. Идеята беше да се търси изречение, съдържащо омоним, за други думи, които дават „контекста“, така че програмата да може да определи кой правопис да използва. Таблицата съдържа също колона, наречена „WordDef“, за да съдържа дефиницията на думата, която е по -скоро за човека, поддържащ таблицата, отколкото A. I. код.

За да търся всяка дума, мога да използвам VB код и SQL код като …

За всяка дума в MyArray

Query = "Изберете Word от tblHomonynContext, където word = '" & word & "'"

ако тази заявка връща резултат, тогава думата е омоним

Следващия

Това е само псевдо код на този етап - все още не съм написал точния код или разбрах всички подробности. Но не се колебайте да приемете моята идея и да я реализирате, като използвате любимия си език за програмиране.

Стъпка 3:

Образ
Образ

Ако вашето въведено изречение съдържа омоним, сега можете

изпълнете VB код, който ще провери другите думи във вашето изречение, с контекстните думи в резултатите от заявката.

Можете също да направите всичко това в SQL съхранена процедура, която може да се изпълни по -бързо.

Функцията VB “InStr ()” ще върне число, по -голямо от нула, ако един низ се съдържа в друг низ или той ще върне нула, ако низът НЕ се съдържа в другия.

Instr () всъщност връща позицията на съдържащия се низ. Ако просто искате да знаете дали String1 съдържа String2, можете да използвате код като „If InStr (String1, String2)> 0…“

Ще трябва да изградите този код на любимия си език за програмиране.

Таблицата HomonymContext не е много добър дизайн. Той има много повтарящи се данни и това се счита за "ненормализирано" от дизайнерите на бази данни. По-добър начин за прилагане на тази функционалност би бил използването на две таблици в отношения родител-дете. Една таблица (Родителят) ще съдържа списък с омоними, техните определения, а също и идентификатор на ред. Този идентификатор на ред се използва като ключ към "Детска таблица", която ще съдържа думите и техните контекстни думи.

Това би било по -лесно да се запита (и да се поддържа) от оригиналния ми дизайн.

Препоръчано: