Агуулгын хүснэгт:

Дуу идэвхжүүлсэн туслах - MAX: 10 алхам
Дуу идэвхжүүлсэн туслах - MAX: 10 алхам

Видео: Дуу идэвхжүүлсэн туслах - MAX: 10 алхам

Видео: Дуу идэвхжүүлсэн туслах - MAX: 10 алхам
Видео: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Долдугаар сарын
Anonim
Дуу идэвхжүүлсэн туслах - MAX
Дуу идэвхжүүлсэн туслах - MAX

Хөөе энэ зааварчилгаанд би MAX чат-бот хэрхэн хийх талаар ярих болно (өөрийгөө нэрлэв !!!)

Зарим хэрэгжилтийг хийснээр та энэ чатботын дуу хоолойг хянах эсвэл янз бүрийн програм хангамжийг ашиглан дуут туслах болгоно. Хүн бүр энэ хэрэгжилтийг чин сэтгэлээсээ хялбархан хийж чаддаг болохоор би энд энэ тухай ярихгүй.

Тиймээс бүгд намайг дэмжээрэй ….

Миний анхны заавар !!!!!!!

Юу болох гэж байгааг мэдрэх мэдрэмж төрж байна …………….

Алхам 1: Уралдааны талаар мэдэх

Уралдааны талаар мэдэх
Уралдааны талаар мэдэх
Уралдааны талаар мэдэх
Уралдааны талаар мэдэх

Сайн байцгаана уу инженерүүд, дизайнерууд …….

Би өөрөө Компьютерийн шинжлэх ухааны оюутан тоглоом тоглох дуртай бөгөөд компьютер дээр үргэлж урам зориг өгдөг. Товчхондоо ярилцахдаа би эдгээр бүх зүйлс хэрхэн ажилладагийг мэдэхийг хүсч байна. Тиймээс хайж олохын тулд googling хийж байсан (би Yahoo -ийг бас ашигладаг байсан !!! !!!) зүйлийг хайж, сурахад зориулагдсан болно.

Тиймээс нэг өдөр би Instructables дэлгэцийн өмнө ирлээ. Энэ нь намайг янз бүрийн сэдвээр янз бүрийн санаанууд бүхий янз бүрийн төслүүдээр дамжуулан үнэхээр хөгжилтэй болгосон юм. Тэр өдрөөс хойш би энэ уралдааныг үргэлжлүүлэн хийж байна. Уралдааны хуудас нь намайг янз бүрийн хүмүүсийн оруулсан шагнал, төслүүдийн талаар үнэхээр их баярлуулсан. ертөнц

VOICE ACTIVATED CHALLENGE бол зааварчилгаа бичих талаархи миний анхны платформ юм.

Шагналууд намайг маш их баярлуулсан (Тиймээ !!! Хэт их ……..).

Түүнчлэн би янз бүрийн зүйл үнэндээ хэрхэн ажилладаг талаар компьютер, түүний технологийн талаархи мэдлэгээ бусадтай хуваалцахыг хүсч байна.

Энэхүү гарын авлагад би өөрийн дуу хоолойгоор идэвхжүүлсэн туслахыг хэрхэн бий болгохыг танд үзүүлэх болно.

Энэ бол миний анхны зааварчилгаа тул маш олон алдаа гарч магадгүй (энэ бүхнийг зассан гэж бодож байгаа ч гэсэн) үүнийг уучлаарай.

ТИЙМ …

Аялалаа эхлүүлцгээе ………………

Алхам 2: Би юмсын талаар хаанаас мэдсэн бэ?

Би юмсын талаар хаанаас мэдсэн юм бэ?
Би юмсын талаар хаанаас мэдсэн юм бэ?
Би юмсын талаар хаанаас мэдсэн юм бэ?
Би юмсын талаар хаанаас мэдсэн юм бэ?
Би юмсын талаар хаанаас мэдсэн юм бэ?
Би юмсын талаар хаанаас мэдсэн юм бэ?

Энэ бол таны оюун санааны ихэнхийг давсан байж магадгүй гэж бодож байгаа гол асуулт байх болно.

Би сургуульд байхдаа хиймэл оюун ухаан (AI) -г маш их сонирхож байсан бөгөөд үүнийхээ төлөө бие даан загвар сурах, хөгжүүлэх нөөц бололцоог хайж олон хайсан.

Эхэндээ энэ нь маш хэцүү (жинхэнэ нөхцөл) байсан тул ойлгоход амаргүй маш өргөн хүрээтэй сэдэв гэдгийг би ойлгосон.

Дээрх номнуудад дараахь зүйлс багтсан болно.

  1. Хиймэл оюун ухааны орчин үеийн хандлага
  2. Зохиомол. Оюун ухаан.21 -р зуунд.2 -р хувилбарт
  3. Гүн сурах

Эдгээр нь маш сайн номууд (тийм ээ) гэхдээ энэ талаар бичсэн зүйлийг ойлгох нь тийм ч хялбар биш юм. Энэ нь үнэхээр төлөөлж, түүнд хүрэх арга замууд юм.

Сургуулиа төгсөөд амралтаараа энэ талаар илүү гүнзгий мэдэж эхэлсэн.

Тэр үед би програмчлалын янз бүрийн хэлийг (C ++, C, Python, Java …) сурсан бөгөөд энэ нь маш сонирхолтой юм.

Сэдвийн талаар илүү ихийг уншихад би нэг чухал зүйлийг ойлгосон. ………………..

Програмчлалын хэл нь МАШИН БҮРИЙН СУРГАЛТЫН ҮЙЛДВЭРЛЭЛИЙН ҮНДСЭН ЮМ

Машины сургалт бол хиймэл оюун ухааны хэрэглээний процесс юм

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

Тиймээс би дээр дурдсан номон дээрх ойлголтуудыг ойлгуулсан хэлнүүд дээр сайн суурь бий болгохоор шийдсэн юм

Та ч бас үүнийг хийж чадна ……

Вэб дээр програмчлалын хэлийг чөлөөтэй заах олон вэбсайт байдаг

Хэрэв та хүсвэл энэ талаар илүү ихийг мэдэхийн тулд интернетээр аялах боломжтой болно

Алхам 3: Биднийг эхлүүлцгээе

Зааварчилгаа бичиж эхлэхээсээ өмнө би дараахь зүйлийг ойлгохыг хүссэн юм.

  1. Кодлох туршлагатай хүмүүс
  2. Ямар ч кодлох мэдлэггүй хүмүүс

Тиймээс би үүнийг ямар ч алдаа гаргалгүй хийсэн гэж бодож байна (найдаж байна).

Тиймээс би хэрэглэгчтэй ярилцаж, бидний ярианы дагуу хариулах боломжтой чат бот бүтээхээр шийдлээ.

Хөтөлбөр (зааврын багц) дангаараа бодож чадахгүй. Энэ нь хэрэглэгчидтэй холбоотой хамгийн сайн хариулт өгөхийн тулд ярилцах үед хайлт хийдэг баримт, дүрмийн мэдээллийн сантай (өгөгдөл хадгалагдсан газар) байдаг.

Энэ нь оруулсан зүйлээс хамаарч тохирох үйл явцаар ажилладаг, зөвхөн ховор тохиолдолд бүхэл бүтэн өгүүлбэрийг бүтэн өгүүлбэртэй тааруулдаг.

Алхам 4: Энэ нь үнэндээ хэрхэн ажилладаг вэ?

1-р алхам:

Хэрэглэгч ямар ч хоосон оролт өгсөн эсэхийг MAX олж мэднэ. Хэрэв хэрэглэгч ийм байдлаар оролт өгсөн бол хариу өгөхийн тулд статик мэдээллийн сангаас энэ баримтыг авдаг.

Өө уучлаарай ……

Би хэлэхээ мартсан,

Статик мэдээллийн сан: Дотоод хариултуудыг хадгалах газар. Дараах хариултууд:

1. MAX хэрэглэгчийн юу яриад байгааг ойлгохгүй байх үед.

2. Хэрэглэгч өөрийгөө давтах үед.

3. Мэндчилгээний мэдэгдэлд зориулав.

4. Хэрэглэгч юу ч бичээгүй байхад Enter дарсаар л байх болно.

Түлхүүр үг: онцгой утгатай үгс.

Алхам 2:

MAX -ийг хялбархан таньж мэдэх боломжтой зарим хариултууд байдаг. Энэ нь хэрэглэгчийн оруулсан оролтыг тодорхойлсны дараа ийм өгүүлбэр байгаа эсэхийг олж, холбогдох түлхүүр үгийг санаж байна.

Алхам 3:

Хэрэв өгөгдсөн өгүүлбэрийг хэсэгчилсэн ч гэсэн бүтээсэн өгүүлбэр олдохгүй бол тухайн контекстийг тодорхойлохын тулд MAX тусгай түлхүүр үгийг хайдаг. Хэрэв ямар нэгэн контекст олдоогүй бол хэрэглэгчийг тухайн сэдвийг илүү тодорхой, илүү тодорхой байдлаар ярих боломжийг олгох нь дараагийн зорилго юм.

Алхам 4:

Өмнө нь ярьж байсан Статик мэдээллийн баазаас хэрэглэгчийн ярьж байсан зүйлээс хамаарч хариултыг авах болно.

Алхам 5:

Үүнийг өөрөө хийх үгсийг өөрчлөх шаардлагатай байна (MY -ийг ТАНД хөрвүүлэх гэх мэт.).

Алхам 5: Бидэнд код бичээрэй …………

Би Turbo C IDE 3.0 -ийг ашиглаж байна, учир нь энэ бол IDE [Хөгжлийн нэгдсэн орчин]

Кодлохоос өмнө өгөгдлийн файлын бүтцийг авч үзье.

MAX нь зарим түлхүүр үгийг хүлээн зөвшөөрдөг.

Хэрэв эдгээр түлхүүр үгийг хэрэглэгчийн өгсөн оролтоос олсон бол өгөгдлийн файлаас харгалзах хариуг сонгож дэлгэц дээр харуулна.

Өгөгдлийн файлд түлхүүр үгийг хариултуудаас @ KWD @ жетоноор тусгаарласан болно.

Токен бол програмчлалын тал бүрийн хамгийн жижиг хэсэг юм.

Энэ токен нь дараагийн мөр нь хариулт биш түлхүүр үг болохыг илтгэнэ.

@ KWD@ САЙН

Сайн байна уу, та яаж байна

САЙН Хонгор минь!

Би зүгээрээ

ТАНЫ АЖИЛ ЯАЖ БАЙНА ВЭ?

Та хэдэн настай вэ?

БИ ТЭГНЭ

ТА ХИЙХ болно. Би үүнд маш их итгэж байна …

Та үүнийг хийх чадвартай байх болов уу?

Надад ИТГЭХ ҮҮ?

ТИЙМ

ЧИ ИТГЭЛТЭЙ БАЙНА УУ ?

ТА ЯАГААД ИТГЭЛТЭЙ байж чадах вэ?

ҮГҮЙ

Та маш гутранги үзэлтэй байх шиг байна.

ҮГҮЙ гэж хэзээ ч бүү хэл…

Хэзээ ч хэзээ ч бүү хэл

Хэзээ ч бүдүүлэг байж болохгүй

ХЭЗЭЭ ч ихЭРГҮҮЛЭХ БОЛОХГҮЙ !!!!

Би үүнийг хийж чадахгүй гэж хэзээ ч хэлэхгүй

ХЭЗЭЭ ОПТИМИСТ БОЛОХГҮЙ

КОМПЬЮТЕР

Би компьютер дээр хэрхэн ажиллахаа мэддэг.

ТА ОДОО компьютер тооцоолуур ашиглаж байна. ЗӨВ үү?

Жишээлбэл, 'Сайн уу', дээрх толь бичгээс MAX дараах хариултуудын аль нэгийг өгөх болно.

Өө, сайн байна уу, эрхэм ээ!

Би зүгээрээ

ТАНЫ АЖИЛ ЯАЖ БАЙНА ВЭ?

Та хэдэн настай вэ?

Алхам 6: Ангиуд

Энэ зүйл тодорхой болсны дараа одоо ашиглах өгөгдлийн бүтцийг тодорхойлъё.

Бид хоёр анги үүсгэдэг:

progstr - Энэ нь хэрэглэгчийн оролттой холбоотой мэдээллийг хадгалахад хэрэглэгддэг.

resp - Энэ нь янз бүрийн хариултуудын талаархи мэдээллийг хадгалахад ашиглагддаг

ангийн прогстр {

нийтийн:

char хэрэглэгчийн мөр [MAX_USER_INPUT];

char түлхүүр үг [30];

int түлхүүр үг;

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 ()

{

last_resp буцаах;

}

хүчингүй нэмэлт үг (char str [MAX_KWD_LEN])

{

strcpy (үг, str);

}

char * getword ()

{

буцах үг;

}

хүчингүй addresp (char str [MAX_RESP_LEN])

{

strcpy (хариултууд [++ last_resp], str);

}

// дараа тодорхойлсон

void display_resp (int num);

хүчингүй болгох quit_display_resp (int num);

};

Эхний анги руу харвал

Хэрэглэгчийн өгсөн тэмдэгт массивыг хэрэглэгчийн өгсөн өгүүлбэрийг хадгалахад ашигладаг.

Өөр оролтын түлхүүр үгийг түлхүүр үгийг хадгалахад ашигладаг. Хэрэв түлхүүр үг олдвол бид int түлхүүрийг өөр 1 болгоно, энэ нь Constructor дээр 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 (…):

Энэ нь өгөгдсөн түлхүүр үгэнд харгалзах хариултыг нэмэхэд ашиглагддаг.

void display_resp (int):

Энэ нь тухайн хариултын индексийн дугаартай харгалзах хэрэглэгчийн хариуг харуулахад хэрэглэгддэг. (үнэндээ энэ нь үүнээс илүү ихийг хийдэг!).

хүчингүй болгох quit_display_resp (int):

Энэ функц ба дээрх функцын хоорондох ялгаа нь хэрэглэгч ажлаас гарах үед үүнийг эцэст нь ашиглах явдал юм. Тиймээс энэ нь хэрэглэгч рүү хүлээлгэж өгөхгүй.

Алхам 7: Чиг үүрэг

void initialize_global ()

{

strcpy (wordin [0], "ARE");

strcpy (үг [0], "AM");

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

strcpy (үг [1], "ARE");

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

strcpy (үг [2], "WAS");

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

strcpy (үг [3], "WERE");

strcpy (wordin [4], "ТА");

strcpy (үг [4], "ME");

strcpy (wordin [5], "Би");

strcpy (үг [5], "ТА");

strcpy (wordin [6], "ТАНЫ");

strcpy (үг [6], "MY");

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

strcpy (үг [7], "ТАНЫ");

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

strcpy (үг хэллэг [8], "ТАНЫГ ХИЙНЭ");

strcpy (wordin [9], "YOUVVE");

strcpy (үг [9], "Би байна");

strcpy (wordin [10], "Би");

strcpy (үг хэллэг [10], "ТА БИДЭН");

strcpy (wordin [11], "ЧИ" гэсэн үг);

strcpy (үг [11], "Би");

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

strcpy (үг хэлэх [12], "ТА");

strcpy (wordin [13], "ТА");

strcpy (үг хэллэг [13], "ME");

}

Одоо хэрэглэгчдэд хариултыг харуулах функцийг бичье. For цикл дэх анхны if илэрхийлэл нь санаатайгаар бичих алдаа гаргахад ашиглагддаг бөгөөд үүнийг илүү хүн шиг харагдуулдаг;-). Алдааг бичихийн тулд нэг тэмдэгтийг санамсаргүй байдлаар сонгоно. New Line, Backspace гэх мэт онцгой тохиолдлуудыг тусад нь авч үздэг. (Яагаад гэдгийг бодоод үзээрэй?). Одоо би шинэ зүйл танилцуулж байна. Онцгой дүр - *. Char * нь тодорхойлсон түлхүүр үгний дараа болон дараах таслал тэмдгийн аль нэгний өмнө олдсон бүх текстийг илэрхийлнэ.

Жишээлбэл, хэрэглэгчийн оруулсан мэдээллийг анхаарч үзээрэй

AMIT> Би маргааш ИНДОРЕ руу явж болох уу?

MAX> МАРГААШ ИЛҮҮ ОЛОХГҮЙ БОЛ ЯАХ ВЭ?

Доогуур зурсан хэсгийг толь бичигт хадгалдаггүй, харин хэрэглэгчийн оролтоос авсан болно. MAX. Dat файлд бид энэ мэдээллийг дараах байдлаар хадгалдаг

БИ БОЛОХ УУ

Хэрэв та тэгэхгүй бол яах вэ *

Од (*) нь хэрэглэгчийн оролт дахь түлхүүр үгийн (энд CAN I) дараа бичсэн бүх зүйлийг байгаагаар нь хуулахыг програмаас хүсдэг. Тусгай түлхүүр үг болох * функц нь тодорхой болсон гэж найдаж байна. Тиймээс, илүү төвөгтэй хэргийг авч үзье.

AMIT> Би дэлгүүр хэсэх боломжтой юу?

MAX> Хэрэв та дэлгүүр хэсэхгүй бол яах вэ?

Бид бас зарим өөрчлөлтийг хийх ёстой. Өөрчлөлтийн тухай бодоход өгүүлбэрийг дараах 3 хэсэгт хуваадаг.

  • Үгийг шилжүүлэхээс өмнө текст. (энд дэлгүүр хэсэх)
  • Шилжүүлсэн түлхүүр үг. (энд, ТАНЫ МИНИЙ оронд)
  • Шилжүүлгийн дараах түлхүүр үг. (энд, би?)

Алхам 8: Хэргийг шийдвэрлэх боломжтой ………

Алхам 9: Хэрэглэгчийн оролт дээр түлхүүр үг хайх

MAX_KEY нь DAT файл дахь түлхүүр үгсийн тоог заана.

Бид энд түлхүүр үг Хэрэглэгчийн оролтод байгаа эсэхийг л хайж байна.

Алхам 10: Дүгнэлт

Тэгээд л болоо ………

Та үүнийг хийсэн !!!!!!!

Хүн бүр зүйлийг тодорхой ойлгосон гэж би бодож байна …

Зөвлөмж болгож буй: