విషయ సూచిక[దాచు][చూపండి]
కమ్యూనికేషన్ రంగంలో టెక్స్ట్ మరియు విజువల్స్కు అనుకూలంగా వాయిస్ కాల్లు దశలవారీగా నిలిపివేయబడుతున్నాయి. Facebook పోల్ ప్రకారం, సగం కంటే ఎక్కువ మంది కొనుగోలుదారులు తాము మాట్లాడగలిగే కంపెనీ నుండి కొనుగోలు చేయడానికి ఇష్టపడతారు. చాటింగ్ అనేది కొత్త సామాజిక ఆమోదయోగ్యమైన కమ్యూనికేషన్ మోడ్గా మారింది.
ఇది వ్యాపారాలు తమ క్లయింట్లతో ఎప్పుడైనా మరియు ఏ ప్రదేశం నుండి అయినా కమ్యూనికేట్ చేయడానికి వీలు కల్పిస్తుంది. చాట్బాట్లు వాటి సౌలభ్యం మరియు తగ్గిన నిరీక్షణ సమయాల కారణంగా కంపెనీలు మరియు కస్టమర్ల మధ్య బాగా ప్రాచుర్యం పొందుతున్నాయి.
చాట్బాట్లు లేదా స్వయంచాలక సంభాషణ ప్రోగ్రామ్లు, టెక్స్ట్-ఆధారిత ఇంటర్ఫేస్ ద్వారా సేవలను యాక్సెస్ చేయడానికి క్లయింట్లకు మరింత అనుకూలీకరించిన పద్ధతిని అందిస్తాయి. సరికొత్త AI-ఆధారిత చాట్బాట్లు నిర్దిష్ట వాతావరణంలో ఒక వ్యక్తి (లేదా మరొక బాట్, ప్రారంభం) చేసిన ప్రశ్నను (ప్రశ్న, కమాండ్, ఆర్డర్ మొదలైనవి) గుర్తించగలవు మరియు తగిన విధంగా ప్రతిస్పందిస్తాయి (సమాధానం, చర్య మొదలైనవి).
ఈ పోస్ట్లో, మేము చాట్బాట్లు అంటే ఏమిటి, వాటి ప్రయోజనాలు, వినియోగ సందర్భాలు మరియు మీ స్వంతంగా ఎలా తయారు చేసుకోవాలి లోతైన అభ్యాసం పైథాన్లోని చాట్బాట్, ఇతర విషయాలతోపాటు.
ప్రారంభిద్దాం.
కాబట్టి, చాట్బాట్లు అంటే ఏమిటి?
చాట్బాట్ తరచుగా మానవ-యంత్ర పరస్పర చర్య యొక్క అత్యంత అధునాతనమైన మరియు ఆశాజనకమైన రూపాలలో ఒకటిగా సూచించబడుతుంది. ఈ డిజిటల్ సహాయకులు వ్యక్తులు మరియు సేవల మధ్య పరస్పర చర్యలను క్రమబద్ధీకరించడం ద్వారా కస్టమర్ అనుభవాన్ని మెరుగుపరుస్తారు.
అదే సమయంలో, వారు సమర్థత కోసం కస్టమర్ సంప్రదింపు ప్రక్రియను ఆప్టిమైజ్ చేయడానికి వ్యాపారాలకు కొత్త ఎంపికలను అందిస్తారు, ఇది సంప్రదాయ మద్దతు ఖర్చులను తగ్గించగలదు.
క్లుప్తంగా, ఇది AI- ఆధారిత సాఫ్ట్వేర్, ఇది మానవులతో వారి సహజ భాషలలో కమ్యూనికేట్ చేయడానికి ఉద్దేశించబడింది. ఈ చాట్బాట్లు తరచుగా ఆడియో లేదా వ్రాత పద్ధతుల ద్వారా సంకర్షణ చెందుతాయి మరియు అవి మానవుల వంటి పద్ధతిలో మనుషులతో కనెక్ట్ అవ్వడానికి మానవ భాషలను సులభంగా అనుకరించగలవు.
చాట్బాట్లు వినియోగదారులతో వారి పరస్పర చర్యల నుండి నేర్చుకుంటాయి, కాలక్రమేణా మరింత వాస్తవికంగా మరియు సమర్థవంతంగా మారతాయి. వారు ఖర్చుకు అధికారం ఇవ్వడం, ఆన్లైన్లో వినియోగదారులతో సన్నిహితంగా ఉండటం మరియు లీడ్లను రూపొందించడం వంటి విస్తృత శ్రేణి వ్యాపార కార్యకలాపాలను నిర్వహించగలరు.
పైథాన్తో మీ స్వంత డీప్ లెర్నింగ్ చాట్బాట్ను సృష్టిస్తోంది
ఈ రంగంలో అనేక విభిన్న రకాల చాట్బాట్లు ఉన్నాయి యంత్ర అభ్యాసం మరియు AI. కొన్ని చాట్బాట్లు వర్చువల్ అసిస్టెంట్లు, మరికొన్ని కేవలం వారితో సంభాషించడానికి, మరికొన్ని కస్టమర్ సర్వీస్ ఏజెంట్లు.
మీరు విచారణలకు సమాధానమివ్వడానికి వ్యాపారాల ద్వారా నియమించబడిన వారిలో కొందరిని బహుశా చూసి ఉండవచ్చు. తరచుగా అభ్యర్థించే ప్రశ్నలకు సమాధానమివ్వడానికి మేము ఈ ట్యుటోరియల్లో చిన్న చాట్బాట్ను తయారు చేస్తాము.
1. ప్యాకేజీలను ఇన్స్టాల్ చేస్తోంది
కింది ప్యాకేజీలను ఇన్స్టాల్ చేయడం మా మొదటి దశ.
2. శిక్షణ డేటా
ఇప్పుడు మనం మన చాట్బాట్కి ఏ రకమైన సమాచారాన్ని అందించాలో గుర్తించాల్సిన సమయం ఆసన్నమైంది. ఇది సాధారణ చాట్బాట్ అయినందున మనం పెద్ద డేటాసెట్లను డౌన్లోడ్ చేయాల్సిన అవసరం లేదు.
మేము స్వయంగా సృష్టించిన సమాచారాన్ని మాత్రమే ఉపయోగిస్తాము. పాఠంతో పాటుగా ప్రభావవంతంగా అనుసరించడానికి, మీరు క్రింద చూసిన అదే ఫార్మాట్తో .JSON ఫైల్ను రూపొందించాలి. నా ఫైల్ పేరు "intents.json."
JSON ఫైల్ వినియోగదారుని ఇన్పుట్ చేయడానికి మరియు సంబంధిత సమాధానాల సెట్కు మ్యాప్ చేయడానికి అవకాశం ఉన్న సందేశాల సమితిని సృష్టించడానికి ఉపయోగించబడుతుంది. ఫైల్లోని ప్రతి నిఘంటువు ప్రతి సందేశం ఏ సమూహానికి చెందినదో గుర్తించే ట్యాగ్ని కలిగి ఉంటుంది.
శిక్షణ కోసం మేము ఈ సమాచారాన్ని ఉపయోగిస్తాము నాడీ నెట్వర్క్ పదాల పదబంధాన్ని మా ఫైల్లోని ట్యాగ్లలో ఒకటిగా వర్గీకరించడానికి.
మేము ఆ సమూహాల నుండి ప్రతిస్పందనను తీసుకొని దానిని వినియోగదారుకు అందించగలము. మీరు అదనపు ట్యాగ్లు, ప్రత్యుత్తరాలు మరియు నమూనాలతో దాన్ని అందిస్తే చాట్బాట్ మెరుగ్గా మరియు మరింత క్లిష్టంగా ఉంటుంది.
3. JSON డేటా లోడ్ అవుతోంది
మేము మా .json డేటాలో లోడ్ చేయడం మరియు కొన్ని మాడ్యూల్లను దిగుమతి చేయడం ద్వారా ప్రారంభిస్తాము. మీ అదే డైరెక్టరీలో your.json ఫైల్ను సమీకరించండి పైథాన్ స్క్రిప్ట్. మా .json డేటా ఇప్పుడు డేటా వేరియబుల్లో సేవ్ చేయబడుతుంది.
4. డేటా వెలికితీత
ఇప్పుడు మా JSON ఫైల్ నుండి మనకు అవసరమైన సమాచారాన్ని సంగ్రహించే సమయం వచ్చింది. అన్ని నమూనాలు, అలాగే అవి చెందిన తరగతి/ట్యాగ్ అవసరం.
మా నమూనాలలోని అన్ని ప్రత్యేక నిబంధనల జాబితా కూడా మాకు అవసరం (కారణాల కోసం మేము తరువాత వివరిస్తాము), కాబట్టి ఈ విలువలను ట్రాక్ చేయడానికి కొన్ని ఖాళీ జాబితాలను రూపొందిద్దాం.
ఇప్పుడు మేము మా JSON డేటాను లూప్ చేస్తాము మరియు మనకు అవసరమైన సమాచారాన్ని తిరిగి పొందుతాము. వాటిని స్ట్రింగ్లుగా ఉంచడానికి బదులుగా, మేము ప్రతి నమూనాను పదాల జాబితాగా మార్చడానికి nltk.word టోకెనైజర్ని ఉపయోగిస్తాము.
ఆపై, మా docs_x జాబితాలో, మేము ప్రతి నమూనాను దాని అనుబంధిత ట్యాగ్తో పాటు docs_y జాబితాకు జోడిస్తాము.
5. వర్డ్ స్టెమ్మింగ్
పదం యొక్క మూలాన్ని కనుగొనడాన్ని స్టెమ్మింగ్ అంటారు. ఉదాహరణకు, "దట్స్" కాండం యొక్క కాండం "అది" కావచ్చు, అయితే "జరుగుతున్నది" అనే పదం యొక్క కాండం "జరగడం" కావచ్చు.
మేము మా మోడల్ యొక్క పదజాలాన్ని తగ్గించడానికి ఈ స్టెమ్మింగ్ టెక్నిక్ని ఉపయోగిస్తాము మరియు సాధారణంగా వాక్యాలను ఏమి సూచిస్తుందో గుర్తించడానికి ప్రయత్నిస్తాము. ఈ కోడ్ మా డేటా తయారీ యొక్క తదుపరి దశలో ఉపయోగించబడే స్టెమ్డ్ పదాల యొక్క ప్రత్యేకమైన జాబితాను రూపొందిస్తుంది.
6. పదాల సంచి
మేము మా డేటాను దిగుమతి చేసుకున్నాము మరియు స్టెమ్డ్ పదజాలాన్ని రూపొందించాము కాబట్టి ఇప్పుడు పదాల సంచి గురించి మాట్లాడాల్సిన సమయం వచ్చింది. న్యూరల్ నెట్వర్క్లు మరియు మెషీన్ లెర్నింగ్ అల్గారిథమ్లకు, మనందరికీ తెలిసినట్లుగా, సంఖ్యాపరమైన ఇన్పుట్ అవసరం. కాబట్టి మా స్ట్రింగ్ జాబితా దానిని కత్తిరించడం లేదు. మన వాక్యాలలో సంఖ్యలను సూచించడానికి మనకు ఒక మెకానిజం అవసరం, ఇక్కడ పదాల సంచి వస్తుంది.
ప్రతి పదబంధం మా మోడల్ పదజాలంలోని పదాల సంఖ్య యొక్క పొడవు జాబితా ద్వారా సూచించబడుతుంది. మా పదజాలంలోని ప్రతి పదం జాబితాలోని స్థానం ద్వారా సూచించబడుతుంది. జాబితాలో స్థానం 1 అయితే, ఆ పదం మా ప్రకటనలో కనిపిస్తుంది; అది 0 అయితే, ఆ పదం మన వాక్యంలో కనిపించదు.
పదబంధంలో పదాలు కనిపించే క్రమం మనకు తెలియదు కాబట్టి మేము దానిని పదాల సంచి అని పిలుస్తాము; అవి మా మోడల్ పదజాలంలో ఉన్నాయని మనకు తెలుసు.
మన ఇన్పుట్ను రూపొందించడంతో పాటు, మన అవుట్పుట్ను కూడా నాడీ నెట్వర్క్ అర్థం చేసుకునేలా ఫార్మాట్ చేయాలి. మేము మా డేటాసెట్లోని లేబుల్లు/ట్యాగ్ల సంఖ్య పొడవుతో కూడిన అవుట్పుట్ జాబితాలను రూపొందిస్తాము, పదాల బ్యాగ్ మాదిరిగానే. జాబితాలోని ప్రతి స్థలం ప్రత్యేకమైన లేబుల్/ట్యాగ్ని సూచిస్తుంది మరియు ఆ స్థానాల్లో దేనిలోనైనా 1 ఏ లేబుల్/ట్యాగ్ని సూచిస్తుందో సూచిస్తుంది.
చివరగా, మేము మా శిక్షణ డేటా మరియు అవుట్పుట్ను నిల్వ చేయడానికి NumPy శ్రేణులను ఉపయోగిస్తాము.
7. మోడల్ అభివృద్ధి
మేము మా డేటా మొత్తాన్ని ముందే ప్రాసెస్ చేసినందున ఇప్పుడు మోడల్ను రూపొందించడం మరియు శిక్షణ ఇవ్వడం ప్రారంభించడానికి సిద్ధంగా ఉన్నాము. మేము మా లక్ష్యాల కోసం రెండు దాచిన లేయర్లతో చాలా ప్రాథమిక ఫీడ్-ఫార్వర్డ్ న్యూరల్ నెట్వర్క్ని ఉపయోగిస్తాము.
మా నెట్వర్క్ యొక్క ఉద్దేశ్యం పదాల సేకరణను చూడటం మరియు వాటిని తరగతికి కేటాయించడం (JSON ఫైల్ నుండి మా ట్యాగ్లలో ఒకటి). మేము మా మోడల్ నిర్మాణాన్ని ఏర్పాటు చేయడం ద్వారా ప్రారంభిస్తాము. మెరుగైన మోడల్తో ముందుకు రావడానికి మీరు కొన్ని సంఖ్యలతో ఆడవచ్చని గుర్తుంచుకోండి! యంత్ర అభ్యాస ఎక్కువగా ట్రయల్ మరియు ఎర్రర్ ఆధారంగా ఉంటుంది.
8. మోడల్ శిక్షణ & పొదుపు
మేము దీన్ని సెటప్ చేసిన మా డేటాపై మా మోడల్కు శిక్షణ ఇవ్వడానికి ఇది సమయం! మేము మా డేటాను మోడల్కు అమర్చడం ద్వారా దీన్ని సాధిస్తాము. మేము అందించే యుగాల సంఖ్య శిక్షణ సమయంలో మోడల్ అదే డేటాకు ఎన్నిసార్లు బహిర్గతం చేయబడుతుందో.
మేము శిక్షణ పూర్తి చేసిన తర్వాత మోడల్ను ఫైల్ మోడల్లో సేవ్ చేయవచ్చు. tflearn అనేది ఇతర స్క్రిప్ట్లలో ఉపయోగించగల స్క్రిప్ట్.
9. చాట్బాట్ని ఉపయోగించడం
ఇప్పుడు మీరు మీ బోట్తో చాట్ చేయడం ప్రారంభించవచ్చు.
చాట్బాట్ యొక్క ప్రయోజనాలు
- బాట్లు సంవత్సరానికి 365 రోజులు, రోజుకు 24 గంటలు, జీతం లేకుండా పనిచేస్తాయని అంచనా వేయబడినందున, లభ్యత మరియు ప్రతిచర్య వేగం పెరుగుతుంది.
- ఈ బాట్లు పెద్ద డేటా యొక్క మూడు కీ Vs: వాల్యూమ్, వేగం మరియు వైవిధ్యాన్ని పరిష్కరించడానికి సరైన సాధనాలు.
- చాట్బాట్లు అనేది కంపెనీ వినియోగదారుల గురించి తెలుసుకోవడానికి మరియు అర్థం చేసుకోవడానికి ఉపయోగించే సాఫ్ట్వేర్.
- అత్యుత్తమ ప్రయోజనాలను కలిగి ఉన్న తర్వాత ఇది చౌకైన నిర్వహణ ఖర్చుతో కూడిన ఉన్నతమైన శక్తిని కలిగి ఉంది.
- చాట్బాట్ అప్లికేషన్లు భద్రపరచబడే మరియు విశ్లేషణలు మరియు సూచనల కోసం ఉపయోగించబడే డేటాను సృష్టిస్తాయి.
యూజ్కేస్
- కస్టమర్ ప్రశ్నలను పరిష్కరించడం
- తరచుగా అడిగే ప్రశ్నలకు సమాధానమివ్వడం
- మద్దతు బృందానికి కస్టమర్లను కేటాయించడం
- కస్టమర్ ఫీడ్బ్యాక్ సేకరిస్తోంది
- కొత్త ఆఫర్లను సిఫార్సు చేస్తోంది
- సంభాషణ వాణిజ్యంతో షాపింగ్ చేయండి
- IT హెల్ప్డెస్క్
- బుకింగ్ వసతి
- డబ్బు బదిలీ
ముగింపు
చాట్బాట్లు, ఇతర AI సాంకేతికతల వలె, మానవ నైపుణ్యాలను పెంపొందించడానికి మరియు మానవులను మరింత సృజనాత్మకంగా మరియు ఊహాత్మకంగా ఉండేలా విముక్తి చేయడానికి ఉపయోగించబడతాయి.
వ్యాపారాలు, ఉద్యోగులు మరియు వినియోగదారులు వేగవంతమైన సిఫార్సులు మరియు అంచనాలు వంటి మెరుగుపరచబడిన చాట్బాట్ ఫీచర్ల నుండి ప్రయోజనం పొందే అవకాశం ఉంది, అలాగే సమీప భవిష్యత్తులో, AI అభివృద్ధితో కలిపి ఉన్నప్పుడు సంభాషణ నుండి హై-డెఫినిషన్ వీడియో కాన్ఫరెన్సింగ్కు సులభంగా యాక్సెస్ చేయవచ్చు. 5G టెక్నాలజీ.
ఇవి మరియు ఇతర అవకాశాలు ఇంకా పరిశోధించబడుతున్నాయి, అయితే ఇంటర్నెట్ కనెక్టివిటీ, AI, NLP మరియు మెషిన్ లెర్నింగ్ పురోగతితో, అవి మరింత ప్రబలంగా మారతాయి.
చ్వూ
హలో,
ఈ కార్యక్రమానికి ధన్యవాదాలు.
నాకు ఒక ప్రశ్న ఉంది.
“bag_of_words” నిర్వచించబడలేదు. నేను ఈ లోపాన్ని అర్థం చేసుకోలేకపోతున్నాను.
నేను ఈ లోపాన్ని ఎలా పరిష్కరించాలో మీరు నాకు చెప్పగలరా??
ఈ కార్యక్రమానికి ధన్యవాదాలు!! మంచి రోజు
జే
దయచేసి చాట్బాట్ విభాగాన్ని ఉపయోగించే ముందు ఒక ఫంక్షన్ను జోడించండి:
//////////////////////////////////////////////// //////////////////////////////
డెఫ్ బ్యాగ్_ఆఫ్_వర్డ్స్(లు, పదాలు):
బ్యాగ్ = [0 కోసం _ పరిధిలో (లెన్(పదాలు))]
s_words = nltk.word_tokenize(లు)
s_words = [s_wordsలో పదానికి stemmer.stem(word.lower())
కోసం s_words:
కోసం i, w in enumerate(పదాలు):
w == se అయితే:
బ్యాగ్[i] = 1
తిరిగి numpy.array(బ్యాగ్)
// ఇది ఖచ్చితంగా మీ సమస్యను పరిష్కరిస్తుంది. //
//////////////////////////////////////////////// ////////////////////////////
నేను మీతో పూర్తి కోడ్ను భాగస్వామ్యం చేస్తున్నాను, కాబట్టి మీరు దాని గురించి స్పష్టమైన చిత్రాన్ని పొందుతారు.
////////////////////////////////////////////////// ////////
దిగుమతి nltk
nltk.stem.lancaster దిగుమతి LancasterStemmer నుండి
స్టెమ్మర్ = లాంకాస్టర్ స్టెమ్మర్()
నంపిని దిగుమతి చేయండి
దిగుమతి tflearn
దిగుమతి టెన్సర్ ఫ్లో
యాదృచ్ఛికంగా దిగుమతి
దిగుమతి json
pick రగాయ దిగుమతి
ఫైల్గా ఓపెన్ (“intents.json”)తో:
data = json.load(ఫైల్)
ప్రయత్నించండి:
ఓపెన్ ("data.pickle", "rb")తో f:
పదాలు, లేబుల్లు, శిక్షణ, అవుట్పుట్ = pickle.load(f)
తప్ప:
పదాలు = []
లేబుల్స్ = []
docs_x = []
docs_y = []
డేటాలో ఉద్దేశం కోసం[“ఉద్దేశాలు”]:
ఉద్దేశంలో నమూనా కోసం[“నమూనాలు”]:
wrds = nltk.word_tokenize(నమూనా)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append(ఉద్దేశం[“ట్యాగ్”])
లేబుల్లలో ఉద్దేశం [“ట్యాగ్”] లేకపోతే:
labels.append(ఉద్దేశం[“ట్యాగ్”])
పదాలు = [stemmer.stem(w.lower()) w కోసం w != “?”]
పదాలు = క్రమబద్ధీకరించబడిన (జాబితా (సెట్ (పదాలు)))
లేబుల్స్ = క్రమబద్ధీకరించబడిన (లేబుల్స్)
శిక్షణ = []
అవుట్పుట్ = []
out_empty = [0 for _ in range(len(labels))]
x కోసం, doc in enumerate(docs_x):
సంచి = []
wrds = [stemmer.stem(w.lower()) w కోసం పత్రం]
పదాలలో w కోసం:
wrdsలో ఉంటే:
bag.append(1)
లేకపోతే:
bag.append(0)
output_row = out_empty[:]
output_row[labels.index(docs_y[x])] = 1
training.append(బ్యాగ్)
output.append(output_row)
శిక్షణ = numpy.array(శిక్షణ)
output = numpy.array(అవుట్పుట్)
f వలె ఓపెన్ ("data.pickle", "wb")తో:
pickle.dump((పదాలు, లేబుల్లు, శిక్షణ, అవుట్పుట్), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(ఆకారం=[ఏదీ లేదు, లెన్(శిక్షణ[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len (output[0]), Activation=”softmax”)
net = tflearn.regression(net)
మోడల్ = tflearn.DNN(నెట్)
ప్రయత్నించండి:
model.load(“model.tflearn”)
తప్ప:
model.fit(శిక్షణ, అవుట్పుట్, n_epoch=1500, batch_size=8, show_metric=True)
model.save (“model.tflearn”)
డెఫ్ బ్యాగ్_ఆఫ్_వర్డ్స్(లు, పదాలు):
బ్యాగ్ = [0 కోసం _ పరిధిలో (లెన్(పదాలు))]
s_words = nltk.word_tokenize(లు)
s_words = [s_wordsలో పదానికి stemmer.stem(word.lower())
కోసం s_words:
కోసం i, w in enumerate(పదాలు):
w == se అయితే:
బ్యాగ్[i] = 1
తిరిగి numpy.array(బ్యాగ్)
డెఫ్ చాట్():
ప్రింట్ (“బాట్తో మాట్లాడటం ప్రారంభించండి (ఆపడానికి క్విట్ అని టైప్ చేయండి)!”)
నిజం అయితే:
inp = ఇన్పుట్ ("మీరు:")
inp.lower() == “నిష్క్రమించు” అయితే:
విరామం
ఫలితాలు = model.predict([bag_of_words(inp, words)])
results_index = numpy.argmax(ఫలితాలు)
ట్యాగ్ = లేబుల్స్[results_index]
డేటాలో tg కోసం[“ఉద్దేశాలు”]:
ఒకవేళ tg['tag'] == ట్యాగ్:
ప్రతిస్పందనలు = tg['స్పందనలు']
ప్రింట్ (random.choice(స్పందనలు))
చాట్()
////////////////////////////////////////////////////////////////////////////// // ////////////////
ధన్యవాదాలు,
హ్యాపీ కోడింగ్!
Lu
హలో,
పైథాన్లో చాట్బాట్ను సృష్టించాలనుకునే సందర్భంలో నిర్వహించాల్సిన ప్రక్రియ గురించి మీరు నాకు ఒక ఆలోచన ఇవ్వగలరా, అయితే సమాచారం ఎక్సెల్లోని సర్వే నుండి పొందబడింది. ధన్యవాదాలు!