Мазмуну:

Үн менен иштетилген жардамчы - MAX: 10 кадам
Үн менен иштетилген жардамчы - MAX: 10 кадам

Video: Үн менен иштетилген жардамчы - MAX: 10 кадам

Video: Үн менен иштетилген жардамчы - MAX: 10 кадам
Video: В очко этих Юнитологов ► 2 Прохождение Dead Space Remake 2024, Июль
Anonim
Үн менен иштетилген жардамчы - MAX
Үн менен иштетилген жардамчы - MAX

Эй бул Нускамада мен MAX чат-ботун кантип жасоо жөнүндө сүйлөшөм (өзүмдүн атым !!!)

Кээ бир ишке ашыруу менен сиз бул чатботтун үнүн башкара аласыз же ар кандай программаларды колдонуп, аны үн жардамчысы катары жасай аласыз. Мен бул жерде бул жөнүндө айткым келбейт, анткени ар бир адам бул ишке ашырууну чындап оңой эле жасай алат.

Андыктан баарыңыздар мени колдоп коюңуздар ….

Менин биринчи инструкциям !!!!!!!

Эмне болорун нерв сезип ……………….

1 -кадам: Конкурс жөнүндө билүү

Конкурс жөнүндө билүү
Конкурс жөнүндө билүү
Конкурс жөнүндө билүү
Конкурс жөнүндө билүү

Салам инженерлер жана дизайнерлер ….

Мен өзүм информатика факультетинин студентимин, оюн ойногонду жакшы көрөм жана дайыма компьютерде илхам алам. Кыскача айтканда, мен бул нерселердин кантип иштээрин билгим келет, ошондуктан мен издеп жүрдүм, гуглинг (мен Yahooду дагы колдонгонмун !!! !!!) нерселерди издөө жана үйрөнүү үчүн.

Ошентип, бир күнү мен Instructables экранынын алдына келдим. Бул чынында эле ар кандай аспектилери боюнча ар кандай идеялар менен ар кандай долбоорлор аркылуу мени тамашалады. Ошол күндөн тартып мен аны менен бирге жүрөм. Сынак баракчасы мени сыйлыктар жана долбоорлор менен кызыктырды. дүйнө

VOICE ACTIVATED CHALLENGE - инструктаж жазуу боюнча менин биринчи платформам.

Сыйлыктар мени абдан кызыктырды (Ооба !!! Өтө көп ……..).

Ошондой эле, мен компьютер тармагындагы билимим менен бөлүшкүм келет жана анын технологиясы башкаларга ар кандай нерселердин кантип иштээри жөнүндө айтып бергим келет.

Бул Нускамада мен сизге кантип активдештирилген үнүңүздү кантип курууну көрсөтөм.

Бул менин биринчи көрсөтмөм болгондуктан, көптөгөн каталар болушу мүмкүн (мунун баары оңдолду деп ойлойм да), андыктан кечирим сурайм.

СОНУН …

Сапарды баштайлы ………………

2 -кадам: Мен нерселер жөнүндө кайдан билдим?

Мен нерселер жөнүндө кайдан билдим?
Мен нерселер жөнүндө кайдан билдим?
Мен нерселер жөнүндө кайдан билдим?
Мен нерселер жөнүндө кайдан билдим?
Мен нерселер жөнүндө кайдан билдим?
Мен нерселер жөнүндө кайдан билдим?

Бул чоң суроо болот, менимче, көпчүлүгүңүздүн башыңыздан өтүшү мүмкүн …….

Мен мектепте окуп жүргөнүмдөн бери Жасалма интеллектке абдан кызыгам, ошон үчүн мен өз алдынча моделди иштеп чыгуу үчүн ресурстарды издеп көп издедим.

Башында бул абдан оор (чыныгы шарт) болчу, мен түшүндүм, бул абдан чоң тема, аны чечүү оңой эмес.

Каралган китептер төмөнкүлөрдү камтыйт:

  1. Жасалма интеллект заманбап ыкма
  2. Жасалма. Интеллект 21 -кылымда.2чи. Чыгарылышта
  3. Deep Learning

Бул абдан жакшы китептер (ооба, албетте), бирок бул жөнүндө жазылган нерселерди түшүнүү оңой эмес, андан кийин мен аны бир четинде кармап, эмне жөнүндө кыскача түшүнүк берген ресурстарды издөөнү уланттым. бул чындыгында билдирет жана ага өтүүнүн жолдору.

Мен ошого кызыгуумду таптым. Мектепти бүткөндөн кийин каникулда мен аны тереңирээк биле баштадым.

Ошол учурда мен ар кандай программалоо тилдерин үйрөндүм (C ++, C, Python, Java ….), бул абдан кызыктуу.

Бул темада көбүрөөк окуганда мен бир маанилүү нерсени түшүндүм ………………..

Программалоо тилдери ар бир машинаны үйрөнүү процессинин негизи болуп саналат

Machine Learning - бул AIди колдонуу процесси

Программалоочу тилдер жана ар кандай нерселер боюнча чоң түшүнүк менен, биз үчүн эч нерсе кыла албаган компьютерди жасоо үчүн программистке жараша болот.

Ошондуктан мен жогоруда айткан китепте берилген түшүнүктөрдү түшүнүүгө жардам берген тилдерге жакшы база түзүүнү чечтим

Сиз да муну кыла аласыз …

Интернетте программалоо тилдерин эркин үйрөтүү үчүн көптөгөн веб -сайттар бар

Ошентип, сиз кааласаңыз, бул жөнүндө көбүрөөк түшүнүү үчүн интернетти кыдырсаңыз болот ……

3 -кадам: Келгиле, баштайлы

Instructable жазууну баштоодон мурун мен түшүнүктүү бир нерсе жазууну ойлодум:

  1. Коддоо боюнча тажрыйбасы бар адамдар
  2. Эч кандай коддоо фону жок адамдар

Ошентип, мен эч нерсени катасыз кылдым деп ойлойм (үмүт кылам).

Ошентип, мен колдонуучу менен сүйлөшө ала турган жана биздин сүйлөшүүбүзгө жараша жооп бере ала турган чат -бот курууну чечтим.

Программа (көрсөтмөлөрдүн топтому) өз алдынча ойлоно албайт. Бул колдонуучу менен байланышкан эң жакшы жоопту берүү үчүн сүйлөшүү учурунда изделүүчү фактылар менен эрежелердин маалымат базасы (маалымат сакталган жер) бар.

Бул киргизилген нерселерге жараша процессти дал келтирүү менен иштейт, сейрек учурларда бүтүндөй сүйлөм толук сүйлөмгө дал келет.

4 -кадам: Бул иш жүзүндө кантип иштейт?

1 кадам:

MAX колдонуучу нөлдүк маалымат бергенин аныктайт. Эгерде колдонуучу ушундай жол менен киргизилген болсо, анда жооп берүү үчүн статикалык маалымат базасынан чындыкты алат.

Ой кечиресиз …

Айтканды унуттум,

Статикалык маалымат базасы: Камтылган жооптор сакталган жер. Төмөнкүдөй жооптор:

1. MAX колдонуучу эмне жөнүндө сүйлөп жатканын түшүнбөгөндө.

2. Колдонуучу өзүн кайталаганда.

3. Саламдашуу билдирүүлөрү үчүн.

4. Колдонуучу эч нерсе жазбай, Enter басууну уланта бергенде.

Keyword: өзгөчө мааниге ээ сөздөр.

2-кадам:

MAX оңой жана оңой тааный турган кээ бир жооптор бар. Бул колдонуучулардын киргизгенин аныктагандан кийин мындай сүйлөмдүн бар экенин табат жана байланышкан ачкыч сөздү эстейт.

3 -кадам:

Эгерде берилген сүйлөмдүн фрагментациясынан кийин да курулган сүйлөм табылбаса, анда MAX контекстти аныктоо үчүн конкреттүү ачкыч сөздү издейт. Эгерде эч кандай контекст табылбаса, анда кийинки максат - бул колдонуучуну белгилүү бир жол менен теманы атайылап сүйлөшүүгө мажбурлоо.

4 -кадам:

Биз буга чейин айткан статикалык маалымат базасынан, ал жоопту колдонуучу эмне жөнүндө сүйлөшкөнүнө жараша алат.

5 -кадам:

Мен сөздү өзгөртүүнүн зарылдыгы бар, ал муну өзү жасайт (мисалы, МЕНИН СИЗДИКИГЕ айландырылышы ж.

5 -кадам: Бизге код болсун …………

Мен Turbo C IDE 3.0 колдонуп жатам, анткени бул IDE [Integrated Developmental Environment]

Коддоодон мурун, маалымат файлынын үлгүсүнүн түзүлүшүн карап көрөлү.

MAX кээ бир ачкыч сөздөрдү тааныйт.

Эгерде бул ачкыч сөздөр колдонуучу берген кирүүдө табылса, анда маалымат файлынан тиешелүү жооп тандалып алынып, экранда көрсөтүлөт.

Маалымат файлында @ KWD @ токен аркылуу ачкыч сөз бөлүнөт.

Токен - программалоонун бардык аспектилеринин кичинекей бөлүгү.

Бул токен кийинки сап ачкыч экенин жана жооп эмес экенин билдирет.

@ KWD@ САЛАМ

САЛАМ КАНДАЙСЫҢ

САЛАМ Кымбаттуум!

МЕН ЖАКШЫМЫН

СИЗДИН ИШИҢИЗ КАНДАЙ БОЛДУ?

СИЗ КАНЧА ЖАШТАСЫЗ?

ЖАСАЙМ

СЕН УШУНДАЙ кыласың. МЕН ИШЕНЕМ …

УШУНДАЙ БОЛО АЛАСЫЗБЫ?

СИЗ мага ишенесизби?

ООБА

ИШЕНЕСИҢБИ ?

КАНТИП СЕНИМДҮҮ БОЛО АЛАСЫҢ?

ЖОК

СИЗ ӨТӨ пессимисттик маанайдасыз.

ЭЧ КАЧАН ЖОК ДЕБЕ…

ЭЧ КАЧАН ЭЧ КАЧАН ДЕП АЙТПА

ЭЧ КАЧАН ЭРКЕК БОЛБОГУЛА

ЭЧ КАЧАН ЭРКЕКЧЕ БОЛБОГУЛА !!!!

ЭЧ КАЧАН МУНУ БОЛБОЙМ ДЕЙМ

ЭЧ КАЧАН ОПТИМИСТ БОЛБОҢУЗ

КОМПЬЮТЕР

КОМПЬЮТЕРДЕ КАНТИП ИШТЕЙТ БИЛЕМ.

СИЗ учурда компьютерди колдонуп жатасыз. ТУУРА?

Мисалы, 'Hello', жогорудагы сөздүктөн, MAX төмөнкү жооптордун бирин берет:

САЛАМ, КАНТИПСИЗ УРМАТТУУ!

МЕН ЖАКШЫМЫН

СИЗДИН ИШИҢИЗ КАНДАЙ БОЛДУ?

СИЗ КАНЧА ЖАШТАСЫЗ?

6 -кадам: Класстар

Бул нерсе түшүнүктүү болгондон кийин, келгиле, биз колдоно турган Маалымат структураларын аныктайлы.

Биз эки класс түзөбүз:

progstr - Бул колдонуучунун киришине байланыштуу маалыматты сактоо үчүн колдонулат.

resp - Бул ар кандай жооптор жөнүндө маалыматты сактоо үчүн колдонулат

класс прогстр {

коомдук:

char userip [MAX_USER_INPUT];

char ачкыч сөзү [30];

int keyound;

int keyno;

int nullip;

// конструктор

progstr () {keyno = -1; nullip = 0; ачкыч = 0;

}

} ip;

класс респ

{

int tot_resp;

int last_resp;

char жооптору [MAX_RESP_NO] [MAX_RESP_LEN];

char сөзү [MAX_KWD_LEN];

коомдук:

// конструктор

resp ()

{

tot_resp = 0;

last_resp = -1;

}

int getcount ()

{

return last_resp;

}

жараксыз сөз (char str [MAX_KWD_LEN])

{

strcpy (сөз, str);

}

char * getword ()

{

сөздү кайтаруу;

}

жараксыз addresp (char str [MAX_RESP_LEN])

{

strcpy (жооптор [++ last_resp], str);

}

// кийинчерээк аныкталган

жараксыз display_resp (int num);

жараксыз quit_display_resp (int num);

};

Биринчи класска карап, Тамга массиви userip колдонуучу берген сүйлөмдү сактоо үчүн колдонулат.

Башка массив ачкыч сөзү, эгер бар болсо, ошол кирүүдө табылган ачкыч сөздү сактоо үчүн колдонулат. Эгерде ачкыч сөз табылса, анда биз int ачкычын башка 1ге жасайбыз, ал 0 бойдон калат, анткени ал Конструктордо 0го баштапкы абалга келтирилет.

keyno тиешелүү ачкычтын тиешелүү баскычын сактайт.

nullip колдонуучунун Null киргизгенин көрсөтөт, башкача айтканда, ал эч нерсе кылбай эле enter басат.

Эми экинчи класска келели, респ.

Биринчи маалымат мүчөсү, tot_resp берилген ачкыч үчүн жалпы жооптордун санын көрсөтөт.

Жооптор чындыгында [MAX_RESP_NO] [MAX_RESP_LEN] жоопторунда сакталат жана тиешелүү ачкыч массивдин сөзүндө сакталат.

Конструктор: Бул 0 жооптордун жалпы санын инициализациялоо үчүн колдонулат. Эмне үчүн last_resp -1ге инициализацияланган, add_resp функциясын караганыңызда түшүнүктүү болот.

int getcount ():

Бул функция берилген ачкыч сөзгө канча жооп бар экенин эсептөө үчүн колдонулат.

жараксыз сөз (char str [MAX_KWD_LEN]):

Бул ачкыч сөздү кошуу үчүн колдонулат.

char * getword ():

Класстын белгилүү бир объектинин ачкыч сөзүн кайтаруу үчүн колдонулат.

жараксыз addresp (…):

Бул берилген ачкыч сөзгө жооп берүү үчүн колдонулат.

жараксыз display_resp (int):

Бул жооптор үчүн берилген индекстин номуруна туура келген колдонуучуга жоопту көрсөтүү үчүн колдонулат. (чындыгында ал андан да көптү кылат!).

жараксыз quit_display_resp (int):

Бул функциянын жогорудагы функциядан айырмасы, ал колдонуучу чыгып жатканда акыры колдонулат. Ошентип, ал колдонуучуга чакырууну кайтарбайт.

7 -кадам: Функциялар

void initialize_global ()

{

strcpy (wordin [0], "БАР");

strcpy (wordout [0], "AM");

strcpy (wordin [1], "AM");

strcpy (wordout [1], "ARE");

strcpy (wordin [2], "WERE");

strcpy (wordout [2], "WAS");

strcpy (wordin [3], "WAS");

strcpy (wordout [3], "WERE");

strcpy (wordin [4], "СИЗ");

strcpy (wordout [4], "ME");

strcpy (wordin [5], "мен");

strcpy (wordout [5], "СИЗ");

strcpy (wordin [6], "СИЗДИН");

strcpy (wordout [6], "MY");

strcpy (wordin [7], "MY");

strcpy (сөз [7], "СЕНИН");

strcpy (wordin [8], "IVE");

strcpy (wordout [8], "YOUVVE");

strcpy (wordin [9], "СЕН СЕН");

strcpy (wordout [9], "IVE");

strcpy (wordin [10], "Мен");

strcpy (сөз [10], "СЕН СЕН");

strcpy (wordin [11], "СИЗ");

strcpy (wordout [11], "Мен");

strcpy (wordin [12], "ME");

strcpy (wordout [12], "СИЗ");

strcpy (wordin [13], "СИЗ");

strcpy (wordout [13], "ME");

}

Эми колдонуучуга жоопторду көрсөтүү үчүн функция жазалы. For циклиндеги биринчи if оператору адамдык окшоштуруу үчүн атайылап терүү катасын жасоо үчүн колдонулат;-). Бир тамга туш келди ката жазуу үчүн тандалат. New Line жана Backspace сыяктуу өзгөчө учурлар өзүнчө каралат. (Эмнеге деп ойлойсуз?). Эми мен жаңы нерсе менен тааныштырам. Өзгөчө мүнөз - *. Char * аныкталган ачкыч сөздөн КИЙИН жана кийинки тыныш белгилеринин биринин алдында табылган бардык текстти билдирет.

Мисалы, колдонуучунун киргизүүсүн карап көрөлү

AMIT> ЭРТЕҢ ИНДОРАГА КЕТСЕ БОЛОБУ?

MAX> ЭРТЕҢ КӨҢҮЛ КӨРГҮЗБӨСӨҢҮЗ КАНДАЙ?

Асты сызылган бөлүк сөздүктө сакталбайт, тескерисинче колдонуучунун киришинен алынат. MAX. Dat файлында биз бул маалыматты сактайбыз

МҮМКҮНБҮ

ЭМНЕ кылбасаңар *

Жылдыз (*) программадан колдонуучу киргизген ачкыч сөзүнөн кийин (бул жерде БОЛОТ) басылган нерсени көчүрүүнү суранат. Мен азыр * өзгөчө ачкыч катары функциясы түшүнүктүү деп үмүттөнөм. Андыктан, келгиле, бир кыйла татаал ишти карап көрөлү.

AMIT> СОТТООГО БАРЫШЫМ БОЛОБУ?

MAX> ЭГЕР СИЗ ДҮКӨНГӨ КЕТПЕСЕҢИЗ?

Биз дагы бир аз трансформация кылышыбыз керек. Биз трансформация жөнүндө ойлонгондо, сүйлөм төмөнкү 3 бөлүмгө бөлүнөт:

  • Сөздү которуудан мурун текст. (бул жерде, МЕНЕН Дүкөнгө баруу)
  • Transposed ачкыч сөзү. (бул жерде, СЕНИН, менин ордуна)
  • Ачкычтуу сүйлөмдөн кийин текст. (бул жерде, мен?)

8 -кадам: иштерди чечүүгө болот ………

9 -кадам: Колдонуучунун киришинде ачкыч сөздү издөө

MAX_KEY DAT файлындагы ачкыч сөздөрдүн санын көрсөтөт.

Биз бул жерде ачкыч сөз Колдонуучунун Киргизүүсүндө бар же жок экенин издейбиз.

10 -кадам: Жыйынтык

Баары болду ………

Сиз жасадыңыз !!!!!!!

Менимче, бардыгы түшүнүктүү нерселерди түшүнүштү …

Сунушталууда: