በኮሙዩኒኬሽን ዘርፉ የጽሑፍ እና የምስል እይታን በመደገፍ የድምጽ ጥሪዎች እየተቋረጡ ነው። በፌስቡክ የዳሰሳ ጥናት መሠረት ከግማሽ በላይ የሚሆኑ ገዢዎች ሊያነጋግሩ ከሚችሉት ኩባንያ መግዛት ይመርጣሉ. መወያየት አዲሱ ማህበረሰብ ተቀባይነት ያለው የመገናኛ ዘዴ ሆኗል።
የንግድ ድርጅቶች ከደንበኞቻቸው ጋር በማንኛውም ጊዜ እና በማንኛውም ቦታ እንዲገናኙ ያስችላቸዋል። ቻትቦቶች በአጠቃቀም ቀላልነታቸው እና የጥበቃ ጊዜያቸው በመቀነሱ በኩባንያዎች እና ደንበኞች ዘንድ ተወዳጅነት እያገኙ ነው።
ቻትቦቶች ወይም አውቶሜትድ የውይይት ፕሮግራሞች ለደንበኞች በፅሁፍ ላይ በተመሠረተ በይነገጽ አገልግሎቶችን ለማግኘት የበለጠ ብጁ ዘዴን ይሰጣሉ። አዲሶቹ በ AI የተጎላበቱ ቻትቦቶች በአንድ ሰው (ወይም ሌላ ቦቲ፣ ኢንሴንሽን) በአንድ የተወሰነ አካባቢ የቀረበ ጥያቄ (ጥያቄ፣ ትዕዛዝ፣ ትዕዛዝ፣ ወዘተ) ሊያውቁ እና ተገቢውን ምላሽ መስጠት ይችላሉ (መልስ፣ እርምጃ፣ ወዘተ.)።
በዚህ ልጥፍ ውስጥ፣ ቻትቦቶች ምን እንደሆኑ፣ ጥቅሞቻቸው፣ የአጠቃቀም ጉዳዮች እና የእራስዎን እንዴት እንደሚሠሩ እንመለከታለን ጥልቀት ያለው ትምህርት በ Python ውስጥ chatbot, ከሌሎች ነገሮች መካከል.
እንጀምር.
ታዲያ ቻትቦቶች ምንድን ናቸው?
ቻትቦት ብዙ ጊዜ በጣም የላቁ እና ተስፋ ሰጭ የሰው እና የማሽን መስተጋብር ዓይነቶች አንዱ ነው ተብሏል። እነዚህ ዲጂታል ረዳቶች በሰዎች እና በአገልግሎቶች መካከል ያለውን ግንኙነት በማቀላጠፍ የደንበኞችን ልምድ ያሻሽላሉ።
በተመሳሳይ ጊዜ የደንበኞችን ግንኙነት ሂደት ለቅልጥፍና ለማመቻቸት ንግዶችን አዲስ አማራጮችን ይሰጣሉ ፣ ይህም የተለመዱ የድጋፍ ወጪዎችን ሊቀንስ ይችላል።
በአጭሩ ከሰዎች ጋር በተፈጥሮ ቋንቋዎች ለመግባባት የታሰበው AI ላይ የተመሰረተ ሶፍትዌር ነው። እነዚህ ቻትቦቶች ብዙ ጊዜ የሚገናኙት በድምጽ ወይም በፅሁፍ ቴክኒኮች ሲሆን ከሰው ጋር በሚመሳሰል መልኩ ከሰዎች ጋር ለመገናኘት በቀላሉ የሰውን ቋንቋ መኮረጅ ይችላሉ።
ቻትቦቶች ከጊዜ ወደ ጊዜ የበለጠ ተጨባጭ እና ቀልጣፋ እየሆኑ ከተጠቃሚዎች ጋር ባላቸው ግንኙነት ይማራሉ። እንደ ወጪን መፍቀድ፣ በመስመር ላይ ከተጠቃሚዎች ጋር መሳተፍ እና መሪዎችን ማመንጨት ያሉ ሰፊ የንግድ እንቅስቃሴዎችን ማስተናገድ ይችላሉ።
ከፓይቶን ጋር የራስዎን ጥልቅ ትምህርት ቻትቦት መፍጠር
በመስክ ውስጥ ብዙ የተለያዩ የቻትቦቶች ዓይነቶች አሉ። የማሽን መማር እና AI. አንዳንድ ቻትቦቶች ምናባዊ ረዳቶች ሲሆኑ ሌሎች ደግሞ ለመነጋገር ብቻ ሲሆኑ ሌሎቹ ደግሞ የደንበኞች አገልግሎት ወኪሎች ናቸው።
ምናልባት ጥያቄዎችን ለመመለስ በቢዝነስ የተቀጠሩትን አይተህ ይሆናል። በዚህ መማሪያ ውስጥ በተደጋጋሚ የሚጠየቁ ጥያቄዎችን ለመመለስ ትንሽ ቻትቦት እንሰራለን።
1. ፓኬጆችን መትከል
የእኛ የመጀመሪያ እርምጃ የሚከተሉትን ጥቅሎች መጫን ነው.
2. የስልጠና መረጃ
ለቻትቦታችን ምን አይነት መረጃ መስጠት እንዳለብን ለማወቅ ጊዜው አሁን ነው። ምንም አይነት ትልቅ የውሂብ ስብስቦችን ማውረድ አያስፈልገንም ምክንያቱም ይህ ቀላል ውይይት ነው.
እኛ እራሳችን የፈጠርነውን መረጃ ብቻ ነው የምንጠቀመው። ትምህርቱን በብቃት ለመከታተል፣ ከዚህ በታች ካለው ጋር ተመሳሳይ ቅርጸት ያለው የJSON ፋይል መፍጠር ያስፈልግዎታል። የእኔ ፋይል ስም “intents.json” ነው።
የJSON ፋይሉ ተጠቃሚው ሊያስገባቸው የሚችሉ የመልእክት ስብስቦችን ለመፍጠር እና ተዛማጅ መልሶች ስብስብ ላይ ካርታ ለመፍጠር ይጠቅማል። በፋይሉ ውስጥ ያለው እያንዳንዱ መዝገበ ቃላት እያንዳንዱ መልእክት የየትኛው ቡድን እንደሆነ የሚለይ መለያ አለው።
ይህንን መረጃ ለማሰልጠን እንጠቀማለን ሀ የነርቭ ኔትወርክ የቃላትን ሀረግ በፋይላችን ውስጥ ካሉት መለያዎች እንደ አንዱ ለመከፋፈል።
ከዚያ በኋላ ከእነዚያ ቡድኖች ምላሽ ወስደን ለተጠቃሚው መስጠት እንችላለን። ቻትቦት ከተጨማሪ መለያዎች፣ ምላሾች እና ቅጦች ጋር ብታቀርቡት የተሻለ እና የበለጠ የተወሳሰበ ይሆናል።
3. JSON ውሂብ መጫን
በእኛ .json ዳታ ላይ በመጫን እና አንዳንድ ሞጁሎችን በማስመጣት እንጀምራለን። የእርስዎን.json ፋይል ከእርስዎ ጋር በተመሳሳይ ማውጫ ውስጥ ያሰባስቡ Python ስክሪፕት. የእኛ .json ውሂብ አሁን በመረጃ ተለዋዋጭ ውስጥ ይቀመጣል።
4. የውሂብ ማውጣት
አሁን የምንፈልገውን መረጃ ከJSON ፋይል የምናወጣበት ጊዜ ነው። ሁሉም ቅጦች, እንዲሁም የነሱ ክፍል / መለያ ያስፈልጋል.
በስርዓተ-ጥለት ውስጥ ያሉትን ሁሉንም ልዩ ቃላቶች ዝርዝር እንፈልጋለን (በኋላ ስለምናብራራው) ስለዚህ እነዚህን እሴቶች ለመከታተል አንዳንድ ባዶ ዝርዝሮችን እንፍጠር።
አሁን የኛን JSON መረጃ እናያለን እና የምንፈልገውን መረጃ እናመጣለን። እነሱን እንደ ሕብረቁምፊዎች ከመያዝ ይልቅ እያንዳንዱን ስርዓተ-ጥለት ወደ የቃላት ዝርዝር ለመቀየር nltk.word tokenizer እንጠቀማለን።
ከዚያም፣በእኛ docs_x ዝርዝር ውስጥ፣እያንዳንዱን ስርዓተ-ጥለት፣ከተዛማጅ መለያው ጋር፣ ወደ ሰነዶች_y ዝርዝር እንጨምራለን።
5. የቃል ስቴሚንግ
የቃሉን ሥር መፈለግ ግንድሚንግ በመባል ይታወቃል። ለምሳሌ፣ “ያ” የሚለው ቃል ግንድ “ያ” ሊሆን ይችላል፣ “መከሰት” የሚለው ቃል ግንድ “መከሰት” ሊሆን ይችላል።
የአምሳያችንን መዝገበ-ቃላት ለመቁረጥ እና አረፍተ ነገሮችን በአጠቃላይ ምን እንደሚያመለክት ለማወቅ ይህንን የግንድ ዘዴ እንጠቀማለን። ይህ ኮድ በሚቀጥለው የውሂብ ዝግጅታችን ሂደት ውስጥ ጥቅም ላይ የሚውሉ ልዩ የቃላት ዝርዝር ያመነጫል።
6. የቃላት ቦርሳ
መረጃዎቻችንን ከውጭ አስገብተናል እና የቃላት ቃላቶችን ስለፈጠርን ስለ ቃላት ቦርሳ ለመናገር ጊዜው አሁን ነው። ነርቭ አውታረ መረቦች እና የማሽን መማሪያ ስልተ ቀመሮች፣ ሁላችንም እንደምናውቀው፣ የቁጥር ግብአት ያስፈልጋቸዋል። ስለዚህ የእኛ የሕብረቁምፊ ዝርዝር አይቆርጠውም. በአረፍተ ነገር ውስጥ ቁጥሮችን ለመወከል ዘዴ ያስፈልገናል, ይህም የቃላት ቦርሳ ወደ ውስጥ የሚገባበት ነው.
እያንዳንዱ ሐረግ በእኛ ሞዴል የቃላት ዝርዝር ውስጥ ባለው የቃላት ብዛት ርዝመት ዝርዝር ይወከላል። በቃላችን ውስጥ ያለው እያንዳንዱ ቃል በዝርዝሩ ውስጥ ባለው ቦታ ይወከላል። በዝርዝሩ ውስጥ ያለው ቦታ 1 ከሆነ, ቃሉ በእኛ መግለጫ ውስጥ ይታያል; 0 ከሆነ ቃሉ በእኛ አረፍተ ነገር ውስጥ አይታይም።
የቃላት ቦርሳ ብለን እንጠራዋለን ምክንያቱም ቃላቶቹ በአረፍተ ነገሩ ውስጥ የሚታዩበትን ቅደም ተከተል ስለማናውቅ; እኛ የምናውቀው በአምሳያችን የቃላት ዝርዝር ውስጥ መኖራቸውን ብቻ ነው።
ግብአታችንን ከማዋቀር በተጨማሪ የነርቭ ኔትወርክ እንዲረዳው ውጤታችንን መቅረፅ አለብን። በእኛ የውሂብ ስብስብ ውስጥ ያሉት የመለያዎች/መለያዎች ብዛት ከቃላት ቦርሳ ጋር የሚመሳሰሉ የውጤት ዝርዝሮችን እንገነባለን። በዝርዝሩ ውስጥ ያለው እያንዳንዱ ቦታ ልዩ መለያ/መለያ ይወክላል፣ እና 1 በማንኛውም ቦታ ላይ የትኛው መለያ/መለያ እንደሚወከል ያሳያል።
በመጨረሻም፣ የስልጠና ውሂባችንን እና ውጤቱን ለማከማቸት NumPy ድርድርን እንጠቀማለን።
7. ሞዴል ልማት
ሁሉንም ዳታዎቻችንን ቀድመን ስላዘጋጀን ሞዴል መገንባት እና ማሰልጠን ለመጀመር ተዘጋጅተናል። ለዓላማችን ሁለት የተደበቁ ንጣፎች ያሉት በጣም መሠረታዊ የሆነ መጋቢ ወደፊት ነርቭ ኔትወርክን እንጠቀማለን።
የእኛ የአውታረ መረብ አላማ የቃላቶችን ስብስብ መመልከት እና ለክፍል መመደብ ይሆናል (ከJSON ፋይል መለያችን አንዱ)። የሞዴላችንን አርክቴክቸር በማቋቋም እንጀምራለን። የተሻለ ሞዴል ለማምጣት ከአንዳንድ ቁጥሮች ጋር መጫወት እንደሚችሉ ያስታውሱ! የማሽን መማሪያ በአብዛኛው በሙከራ እና በስህተት ላይ የተመሰረተ ነው.
8. ሞዴል ስልጠና እና ቁጠባ
ሞዴላችንን ስላዘጋጀን በመረጃችን ላይ ለማሰልጠን ጊዜው አሁን ነው! ይህንን የምናሳካው መረጃችንን ከአምሳያው ጋር በማስተካከል ነው። የምናቀርባቸው የዘመናት ብዛት ሞዴሉ በስልጠና ወቅት ለተመሳሳይ መረጃ የሚጋለጥበት ጊዜ ነው.
ማሰልጠን እንደጨረስን ሞዴሉን በፋይል ሞዴል ላይ ማስቀመጥ እንችላለን። tflearn በሌሎች ስክሪፕቶች ውስጥ ጥቅም ላይ ሊውል የሚችል ስክሪፕት ነው።
9. ቻትቦትን መጠቀም
አሁን ከእርስዎ ቦት ጋር ማውራት መጀመር ይችላሉ።
የቻትቦት ጥቅሞች
- ቦቶች በዓመት 365 ቀናት፣ በቀን 24 ሰዓታት፣ ያለ ክፍያ እንዲሠሩ ስለሚጠበቅ፣ ተደራሽነትን እና የአጸፋውን ፍጥነት ይጨምራሉ።
- እነዚህ ቦቶች ትላልቅ ዳታዎችን ሶስት ቁልፍ ቪዎች፡ የድምጽ መጠን፣ ፍጥነት እና ልዩነትን ለመቋቋም ፍጹም መሳሪያዎች ናቸው።
- ቻትቦቶች የኩባንያውን ሸማቾች ለማወቅ እና ለመረዳት የሚያገለግሉ ሶፍትዌሮች ናቸው።
- ከፍተኛ ጥቅም ካገኘ በኋላ ርካሽ የጥገና ወጪ ስላለው የላቀ ኃይል አለው።
- የቻትቦት አፕሊኬሽኖች ተጠብቀው ሊሆኑ የሚችሉ እና ለትንታኔዎች እና ትንበያዎች የሚያገለግሉ መረጃዎችን ይፈጥራሉ።
መገልገያ
- የደንበኛ ጥያቄዎችን መፍታት
- ተደጋጋሚ ጥያቄዎችን በመመለስ ላይ
- ደንበኞችን ለድጋፍ ቡድን መመደብ
- የደንበኛ ግብረመልስ መሰብሰብ
- አዲስ ቅናሾችን የሚመከር
- በንግግር ንግድ ይግዙ
- የአይቲ Helpdesk
- ማረፊያ ቦታ ማስያዝ
- ገንዘብ መላላኪያ
መደምደሚያ
ቻትቦቶች ልክ እንደሌሎች AI ቴክኖሎጂዎች የሰውን ችሎታ ለማሳደግ እና የሰው ልጅ ከታክቲካል ተግባራት ይልቅ በስልታዊ ስራ ላይ ብዙ ጊዜ እንዲያሳልፉ በማድረግ የበለጠ ፈጠራ እና ምናባዊ እንዲሆኑ ለማድረግ ይጠቅማሉ።
ንግዶች፣ ሰራተኞች እና ሸማቾች ከተሻሻሉ የቻትቦት ባህሪያት እንደ ፈጣን ምክሮች እና ትንበያዎች እንዲሁም ከንግግር ውስጥ ከፍተኛ ጥራት ያለው የቪዲዮ ኮንፈረንስ በቀላሉ ማግኘት በቅርብ ጊዜ ውስጥ AI ከልማት ጋር ሲጣመር ተጠቃሚ የመሆን እድላቸው ሰፊ ነው። 5G ቴክኖሎጂ.
እነዚህ እና ሌሎች እድሎች አሁንም እየተመረመሩ ነው፣ ነገር ግን የኢንተርኔት ግንኙነት፣ AI፣ NLP እና የማሽን መማር ሂደት እየጨመሩ ይሄዳሉ።
ቹዎ
ሰላም,
ለዚህ ፕሮግራም እናመሰግናለን።
ጥያቄ አለኝ.
"የቃላት_ቦርሳ" አልተገለጸም። ይህ ስህተት ሊገባኝ አልቻለም።
ይህንን ስህተት እንዴት እንደምፈታው ንገረኝ?
ለዚህ ፕሮግራም እናመሰግናለን!! በሰላም ዋል
ጄይ
እባክዎ የቻትቦት ክፍልን ከመጠቀምዎ በፊት ተግባር ያክሉ፡-
//////////////////// //////////////////
የቃላት ቦርሳ(ቃላት፣ ቃላት)
ቦርሳ = [0 ለ _ በክልል (ሌን(ቃላት)))]
s_words = nltk.word_tokenize(ዎች)
s_words = [stemmer.stem(word.lower ()) ለቃል በs_words]
በ s_ቃላት ውስጥ:
ለ i፣ w በቁጥር(ቃላት)፡-
ወ = እንዲህ ከሆነ:
ቦርሳ [i] = 1
ተመለስ numpy.array(ቦርሳ)
// ችግርዎን በእርግጠኝነት ይፈታል. //
//////////////////// //////////////////
ሙሉውን ኮድ ለእርስዎ እያካፈልኩ ነው, ስለዚህ ግልጽ የሆነ ምስል ያገኛሉ.
///////////////////// ////////
አስመጣ nltk
ከ nltk.stem.lancaster ማስመጣት LancasterStemmer
stemmer = LancasterStemmer ()
አስመጣ ቁጥር
አስመጣ tflearn
የማስመጣት tensorflow
በዘፈቀደ አስመጣ
ማስመጣት json
አስመጪን አስመጣ
በክፍት("intents.json") እንደ ፋይል፡-
ዳታ = json.load(ፋይል)
ሞክር
በክፍት ("ዳታ. pickle", "rb") እንደ f:
ቃላት፣ መለያዎች፣ ስልጠና፣ ውፅዓት = pickle.load(ረ)
በስተቀር
ቃላት = []
መለያዎች = []
docs_x = []
docs_y = []
በውሂብ ውስጥ ላለ ዓላማ[“ዓላማዎች”]፡-
በዓላማ ውስጥ ለሥርዓተ-ጥለት[“ሥርዓቶች”]፡-
wrds = nltk.word_tokenize(ንድፍ)
ቃላት.ማራዘም(wrds)
docs_x.append(wrds)
docs_y.append (ሐሳብ [“መለያ”])
ዓላማ[“መለያ”] በመለያዎች ውስጥ ካልሆነ፡-
labels.append (ዓላማ [“መለያ”])
ቃላት = [stemmer.stem(w.lower()) ለ w በቃላት ከሆነ w!= “?”]
ቃላት = የተደረደሩ (ዝርዝር (ቃላት ስብስብ)))
መለያዎች = የተደረደሩ (መለያዎች)
ስልጠና = []
ውጤት = []
out_empty = [0 ለ _ በክልል(ሌን(ስያሜዎች)))]
ለ x፣ ሰነድ በቁጥር (docs_x):
ቦርሳ = []
wrds = [stemmer.stem(w.lower()) ለ w በዶክ]
ለ w በቃላት፡-
w በ ወርድ ከሆነ፡-
ቦርሳ.አባሪ(1)
ሌላ
ቦርሳ.አባሪ(0)
ውፅዓት_ረድ = ባዶ_ባዶ[:]
የውጤት_ረድፍ[labels.index(docs_y[x])] = 1
ስልጠና.አባሪ(ቦርሳ)
ውፅዓት.append(output_row)
ስልጠና = numpy.array (ስልጠና)
ውፅዓት = numpy.array(ውፅዓት)
በክፍት ("ዳታ. pickle", "wb") እንደ f:
pickle.dump ((ቃላቶች፣ መለያዎች፣ ስልጠና፣ ውጤት)፣ ረ)
tensorflow.reset_default_graph()
net = tflearn.input_data(ቅርጽ=[ምንም፣ ሌንስ(ስልጠና[0]))])
net = tflearn.ሙሉ_የተገናኘ(የተጣራ፣ 8)
net = tflearn.ሙሉ_የተገናኘ(የተጣራ፣ 8)
net = tflearn.fully_connected(net፣ len(output[0])፣አግብር=”softmax”)
net = tflearn.regression(የተጣራ)
ሞዴል = tflearn.DNN(የተጣራ)
ሞክር
model.load("model.tflearn")
በስተቀር
model.fit (ስልጠና፣ ውፅዓት፣ n_epoch=1500፣ batch_size=8፣ show_metric=እውነት)
model.save("model.tflearn")
የቃላት ቦርሳ(ቃላት፣ ቃላት)
ቦርሳ = [0 ለ _ በክልል (ሌን(ቃላት)))]
s_words = nltk.word_tokenize(ዎች)
s_words = [stemmer.stem(word.lower ()) ለቃል በs_words]
በ s_ቃላት ውስጥ:
ለ i፣ w በቁጥር(ቃላት)፡-
ወ = እንዲህ ከሆነ:
ቦርሳ [i] = 1
ተመለስ numpy.array(ቦርሳ)
ዴፍ ውይይት()
ማተም ("ከቦት ጋር ማውራት ጀምር (ለመቆም ተወው ይተይቡ)!")
እውነት ነው
inp = ግቤት ("አንተ:")
ከሆነ inp.lower() == “ተወው”፡
ቆረጣ
ውጤቶች = ሞዴል.መተንበይ([የቃላት_ቦርሳ(inp፣ቃላት)])
results_index = numpy.argmax(ውጤቶች)
መለያ = መለያዎች[results_index]
ለ tg በውሂብ ውስጥ [“intents”]፡
tg ከሆነ ['tag'] == መለያ:
ምላሾች = tg['ምላሾች']
ማተም(በዘፈቀደ.ምርጫ(ምላሾች))
ውይይት()
/_______________________________ ተሰሚነት // /______________________________ //
አመሰግናለሁ,
መልካም ኮድ መስጠት!
Lu
ሰላም,
በ python ውስጥ ቻትቦት ለመፍጠር በሚፈልጉበት ጊዜ የማደርገውን ሂደት ሀሳብ ሊሰጡኝ ይችላሉ ፣ ግን መረጃው የተገኘው በ Excel ውስጥ ካለው የዳሰሳ ጥናት ነው። አመሰግናለሁ!