|
|
4 months ago | |
|---|---|---|
| .. | ||
| README.md | 4 months ago | |
| assignment.md | 4 months ago | |
README.md
సహజ భాషా ప్రాసెసింగ్ పరిచయం
ఈ పాఠం సహజ భాషా ప్రాసెసింగ్ యొక్క సంక్షిప్త చరిత్ర మరియు ముఖ్యమైన భావనలను కవర్ చేస్తుంది, ఇది కంప్యూటేషనల్ లింగ్విస్టిక్స్ యొక్క ఉపశాఖ.
పూర్వ-లెక్చర్ క్విజ్
పరిచయం
NLP, సాధారణంగా పిలవబడేది, యంత్ర అభ్యాసం అన్వయించబడిన మరియు ఉత్పత్తి సాఫ్ట్వేర్లో ఉపయోగించిన అత్యంత ప్రసిద్ధ ప్రాంతాలలో ఒకటి.
✅ మీరు ప్రతిరోజూ ఉపయోగించే సాఫ్ట్వేర్లో ఏదైనా NLP ఎంబెడ్డెడ్ ఉన్నదని మీరు అనుకుంటున్నారా? మీ వర్డ్ ప్రాసెసింగ్ ప్రోగ్రాములు లేదా మీరు తరచుగా ఉపయోగించే మొబైల్ యాప్స్ గురించి ఏమిటి?
మీరు నేర్చుకునే విషయాలు:
- భాషల ఆలోచన. భాషలు ఎలా అభివృద్ధి చెందాయో మరియు ప్రధాన అధ్యయన ప్రాంతాలు ఏమిటో.
- నిర్వచన మరియు భావనలు. కంప్యూటర్లు టెక్స్ట్ను ఎలా ప్రాసెస్ చేస్తాయో, పార్సింగ్, వ్యాకరణం, నామవాచకాలు మరియు క్రియలను గుర్తించడం వంటి నిర్వచనాలు మరియు భావనలు మీరు నేర్చుకుంటారు. ఈ పాఠంలో కొన్ని కోడింగ్ పనులు ఉన్నాయి, మరియు మీరు తర్వాతి పాఠాలలో కోడ్ చేయడం నేర్చుకునే కొన్ని ముఖ్యమైన భావనలు పరిచయం చేయబడ్డాయి.
కంప్యూటేషనల్ లింగ్విస్టిక్స్
కంప్యూటేషనల్ లింగ్విస్టిక్స్ అనేది అనేక దశాబ్దాలుగా పరిశోధన మరియు అభివృద్ధి చేసే ఒక విభాగం, ఇది కంప్యూటర్లు భాషలతో ఎలా పని చేయగలవో, అర్థం చేసుకోగలవో, అనువదించగలవో మరియు సంభాషించగలవో అధ్యయనం చేస్తుంది. సహజ భాషా ప్రాసెసింగ్ (NLP) అనేది సంబంధిత రంగం, ఇది కంప్యూటర్లు 'సహజ' లేదా మానవ భాషలను ఎలా ప్రాసెస్ చేయగలవో పై దృష్టి సారిస్తుంది.
ఉదాహరణ - ఫోన్ డిక్టేషన్
మీరు ఎప్పుడైనా టైప్ చేయకుండా మీ ఫోన్కు డిక్టేట్ చేసినట్లయితే లేదా వర్చువల్ అసిస్టెంట్కు ప్రశ్న అడిగితే, మీ మాటలను టెక్స్ట్ రూపంలోకి మార్చి, మీరు మాట్లాడిన భాష నుండి ప్రాసెస్ లేదా పార్స్ చేయబడింది. గుర్తించిన కీలకపదాలు ఫోన్ లేదా అసిస్టెంట్ అర్థం చేసుకుని చర్య తీసుకునే ఫార్మాట్లో ప్రాసెస్ చేయబడ్డాయి.
నిజమైన భాషా అవగాహన కష్టం! చిత్రం జెన్ లూపర్ ద్వారా
ఈ సాంకేతికత ఎలా సాధ్యమైంది?
ఇది సాధ్యమైంది ఎందుకంటే ఎవరో ఒకరు ఈ పని చేయడానికి కంప్యూటర్ ప్రోగ్రామ్ రాశారు. కొన్ని దశాబ్దాల క్రితం, కొన్ని సైన్స్ ఫిక్షన్ రచయితలు ప్రజలు ఎక్కువగా తమ కంప్యూటర్లతో మాట్లాడతారని, మరియు కంప్యూటర్లు ఎప్పుడూ వారు అర్థం చేసుకున్నారని ఊహించారు. దురదృష్టవశాత్తు, ఇది అనుకున్నదానికంటే కష్టం అని తేలింది, మరియు ఇది ఈ రోజు చాలా బాగా అర్థం చేసుకున్న సమస్య అయినప్పటికీ, వాక్య అర్థం అర్థం చేసుకోవడంలో 'పర్ఫెక్ట్' సహజ భాషా ప్రాసెసింగ్ సాధించడంలో గణనీయమైన సవాళ్లు ఉన్నాయి. ఇది హాస్యం అర్థం చేసుకోవడంలో లేదా వాక్యంలో వ్యంగ్య భావనలను గుర్తించడంలో ప్రత్యేకంగా కష్టం.
ఈ సమయంలో, మీరు పాఠశాల తరగతులను గుర్తు చేసుకుంటున్నారా, అక్కడ ఉపాధ్యాయుడు వాక్యంలోని వ్యాకరణ భాగాలను కవర్ చేశారు. కొన్ని దేశాలలో, విద్యార్థులకు వ్యాకరణం మరియు లింగ్విస్టిక్స్ ప్రత్యేక విషయంగా బోధించబడుతుంది, కానీ చాలా చోట్ల ఈ విషయాలు భాష నేర్చుకునే భాగంగా ఉంటాయి: మీ మొదటి భాష ప్రాథమిక పాఠశాలలో (చదవడం మరియు రాయడం నేర్చుకోవడం) మరియు రెండవ భాష పోస్ట్-ప్రాథమిక లేదా హై స్కూల్లో. నామవాచకాలు, క్రియలు లేదా క్రియావిశేషణాలు, విశేషణాలు మధ్య తేడా తెలియకపోయినా ఆందోళన చెందకండి!
సింపుల్ ప్రెజెంట్ మరియు ప్రెజెంట్ ప్రోగ్రెసివ్ మధ్య తేడా మీకు క్లిష్టంగా ఉంటే, మీరు ఒంటరిగా లేరు. ఇది చాలా మందికి, భాష స్థానిక వక్తలకు కూడా కష్టం. మంచి విషయం ఏమిటంటే, కంప్యూటర్లు ఫార్మల్ నియమాలను అమలు చేయడంలో చాలా మంచి, మరియు మీరు ఒక వాక్యాన్ని మానవుడిలా పార్స్ చేయగల కోడ్ రాయడం నేర్చుకుంటారు. మీరు తర్వాత పరిశీలించే పెద్ద సవాలు వాక్య అర్థం మరియు భావం అర్థం చేసుకోవడమే.
ముందస్తు అవసరాలు
ఈ పాఠం కోసం, ప్రధాన ముందస్తు అవసరం ఈ పాఠం భాషను చదవడం మరియు అర్థం చేసుకోవడం. ఎటువంటి గణిత సమస్యలు లేదా సమీకరణాలు పరిష్కరించాల్సిన అవసరం లేదు. అసలు రచయిత ఈ పాఠాన్ని ఇంగ్లీష్లో రాశారు, కానీ ఇది ఇతర భాషలలో కూడా అనువదించబడింది, కాబట్టి మీరు అనువాదం చదువుతున్నట్లయితే కూడా సరే. వివిధ భాషల వ్యాకరణ నియమాలను పోల్చడానికి కొన్ని ఉదాహరణలు ఉన్నాయి. అవి అనువదించబడవు, కానీ వివరణాత్మక వచనం అనువదించబడింది, కాబట్టి అర్థం స్పష్టంగా ఉంటుంది.
కోడింగ్ పనుల కోసం, మీరు Python ఉపయోగిస్తారు మరియు ఉదాహరణలు Python 3.8 ఉపయోగిస్తున్నాయి.
ఈ విభాగంలో, మీరు అవసరం మరియు ఉపయోగిస్తారు:
-
Python 3 అవగాహన. Python 3లో ప్రోగ్రామింగ్ భాష అవగాహన, ఈ పాఠం ఇన్పుట్, లూప్స్, ఫైల్ రీడింగ్, అర్రేస్ ఉపయోగిస్తుంది.
-
Visual Studio Code + ఎక్స్టెన్షన్. మేము Visual Studio Code మరియు దాని Python ఎక్స్టెన్షన్ ఉపయోగిస్తాము. మీరు మీ ఇష్టమైన Python IDE కూడా ఉపయోగించవచ్చు.
-
TextBlob. TextBlob అనేది Python కోసం సరళీకృత టెక్స్ట్ ప్రాసెసింగ్ లైబ్రరీ. TextBlob సైట్లో సూచనలను అనుసరించి మీ సిస్టమ్లో ఇన్స్టాల్ చేయండి (కోర్పోరా కూడా ఇన్స్టాల్ చేయండి, క్రింద చూపినట్లుగా):
pip install -U textblob python -m textblob.download_corpora
💡 సూచన: మీరు VS Code వాతావరణాల్లో నేరుగా Python నడపవచ్చు. మరిన్ని సమాచారం కోసం డాక్స్ చూడండి.
యంత్రాలతో మాట్లాడటం
కంప్యూటర్లు మానవ భాషను అర్థం చేసుకోవడానికి ప్రయత్నించిన చరిత్ర అనేక దశాబ్దాలుగా ఉంది, మరియు సహజ భాషా ప్రాసెసింగ్ను పరిశీలించిన మొదటి శాస్త్రవేత్తలలో ఒకరు అలన్ ట్యూరింగ్.
'ట్యూరింగ్ టెస్ట్'
1950లలో ట్యూరింగ్ కృత్రిమ మేధస్సు పరిశోధన చేస్తున్నప్పుడు, ఒక సంభాషణ పరీక్షను మానవుడు మరియు కంప్యూటర్ (టైప్ చేసిన లేఖల ద్వారా) మధ్య ఇవ్వవచ్చా అని పరిశీలించాడు, అందులో సంభాషణలో ఉన్న మానవుడు మరొక మానవుడితోనా లేక కంప్యూటర్తోనా మాట్లాడుతున్నాడో తెలియకపోవచ్చు.
ఒక నిర్దిష్ట సంభాషణ తర్వాత, మానవుడు సమాధానాలు కంప్యూటర్ నుండి వచ్చాయో లేదో నిర్ణయించలేకపోతే, ఆ కంప్యూటర్ ఆలోచిస్తున్నదని చెప్పవచ్చా?
ప్రేరణ - 'నకిలీ ఆట'
ఈ ఆలోచన ఒక పార్టీ ఆట నుండి వచ్చింది, దీనిని ది ఇమిటేషన్ గేమ్ అంటారు, ఇందులో ఒక విచారణకర్త ఒక గదిలో ఒంటరిగా ఉంటాడు మరియు మరో గదిలో ఉన్న ఇద్దరు వ్యక్తులలో ఎవరు పురుషుడు మరియు ఎవరు మహిళ అని నిర్ణయించాలి. విచారణకర్త గమనికలు పంపవచ్చు, మరియు రహస్య వ్యక్తి లింగాన్ని వెల్లడించే విధంగా రాసిన సమాధానాలను తెలుసుకునే ప్రశ్నలు ఆలోచించాలి. ఖచ్చితంగా, మరొక గదిలో ఉన్న ఆటగాళ్లు విచారణకర్తను మోసం చేయడానికి లేదా గందరగోళం చేయడానికి ప్రయత్నిస్తారు, కానీ నిజాయితీగా సమాధానం ఇస్తున్నట్లు కనిపించాలి.
ఎలిజా అభివృద్ధి
1960లలో MIT శాస్త్రవేత్త జోసెఫ్ వైజెన్బౌమ్ ఎలిజా అనే కంప్యూటర్ 'థెరపిస్ట్'ను అభివృద్ధి చేశారు, ఇది మానవుడిని ప్రశ్నించి వారి సమాధానాలను అర్థం చేసుకున్నట్లు కనిపించేది. అయితే, ఎలిజా ఒక వాక్యాన్ని పార్స్ చేసి కొన్ని వ్యాకరణ నిర్మాణాలు మరియు కీలకపదాలను గుర్తించి సరైన సమాధానం ఇవ్వగలిగింది, కానీ వాక్యాన్ని అర్థం చేసుకుంది అని చెప్పలేము. ఎలిజాకు "నేను దుఃఖంగా ఉన్నాను" అనే వాక్యం ఇచ్చినప్పుడు, అది వాక్యాన్ని పునఃసంఘటించి "మీరు ఎంతకాలంగా దుఃఖంగా ఉన్నారు" అని ప్రతిస్పందించవచ్చు.
ఇది ఎలిజా ఆ వాక్యాన్ని అర్థం చేసుకుని తదుపరి ప్రశ్న అడుగుతున్నట్లు అనిపించేది, కానీ వాస్తవానికి అది కాలాన్ని మార్చి కొన్ని పదాలు జోడించడం మాత్రమే. ఎలిజా గుర్తించని కీలకపదానికి సమాధానం లేకపోతే, అది అనేక వాక్యాలకు వర్తించే యాదృచ్ఛిక సమాధానం ఇస్తుంది. ఎలిజాను సులభంగా మోసం చేయవచ్చు, ఉదాహరణకు ఒక వినియోగదారు "మీరు ఒక సైకిల్" అని రాసినప్పుడు, అది "నేను ఎంతకాలంగా ఒక సైకిల్ను?" అని ప్రతిస్పందించవచ్చు, బదులుగా తగిన సమాధానం ఇవ్వకుండా.
🎥 పై చిత్రాన్ని క్లిక్ చేసి అసలు ELIZA ప్రోగ్రామ్ గురించి వీడియో చూడండి
గమనిక: మీరు 1966లో ప్రచురించిన ఎలిజా అసలు వివరణను చదవవచ్చు, మీకు ACM ఖాతా ఉంటే. లేకపోతే, ఎలిజా గురించి వికీపీడియాలో చదవండి.
వ్యాయామం - ప్రాథమిక సంభాషణ బాట్ కోడింగ్
ఎలిజా లాంటి సంభాషణ బాట్ అనేది వినియోగదారుల ఇన్పుట్ను పొందే, అర్థం చేసుకున్నట్లు మరియు తెలివిగా స్పందించే ప్రోగ్రామ్. ఎలిజా లాగా, మా బాట్కు తెలివైన సంభాషణ ఉన్నట్లు కనిపించే అనేక నియమాలు ఉండవు. బదులుగా, మా బాట్కు ఒకే సామర్థ్యం ఉంటుంది, అది ఏదైనా సాధారణ సంభాషణలో పనిచేసే యాదృచ్ఛిక సమాధానాలతో సంభాషణ కొనసాగించడం.
ప్రణాళిక
సంభాషణ బాట్ నిర్మాణంలో మీ దశలు:
- వినియోగదారుని బాట్తో ఎలా మాట్లాడాలో సూచనలు ముద్రించండి
- లూప్ ప్రారంభించండి
- వినియోగదారుని ఇన్పుట్ స్వీకరించండి
- వినియోగదారు ఎగ్జిట్ అడిగితే, బయటకు రండి
- వినియోగదారుని ఇన్పుట్ను ప్రాసెస్ చేసి సమాధానం నిర్ణయించండి (ఈ సందర్భంలో, సమాధానం సాధారణ సమాధానాల జాబితా నుండి యాదృచ్ఛిక ఎంపిక)
- సమాధానం ముద్రించండి
- దశ 2కి తిరిగి లూప్ చేయండి
బాట్ నిర్మాణం
ఇప్పుడు బాట్ను సృష్టిద్దాం. కొన్ని వాక్యాలను నిర్వచించడం ప్రారంభిద్దాం.
-
ఈ బాట్ను Pythonలో క్రింది యాదృచ్ఛిక సమాధానాలతో మీరే సృష్టించండి:
random_responses = ["That is quite interesting, please tell me more.", "I see. Do go on.", "Why do you say that?", "Funny weather we've been having, isn't it?", "Let's change the subject.", "Did you catch the game last night?"]మీకు మార్గనిర్దేశం చేయడానికి కొన్ని నమూనా అవుట్పుట్ (వినియోగదారుని ఇన్పుట్
>తో ప్రారంభమయ్యే లైన్లలో ఉంటుంది):Hello, I am Marvin, the simple robot. You can end this conversation at any time by typing 'bye' After typing each answer, press 'enter' How are you today? > I am good thanks That is quite interesting, please tell me more. > today I went for a walk Did you catch the game last night? > I did, but my team lost Funny weather we've been having, isn't it? > yes but I hope next week is better Let's change the subject. > ok, lets talk about music Why do you say that? > because I like music! Why do you say that? > bye It was nice talking to you, goodbye!ఈ పనికి ఒక సాధ్యమైన పరిష్కారం ఇక్కడ
✅ ఆగి ఆలోచించండి
- యాదృచ్ఛిక సమాధానాలు ఎవరికైనా బాట్ నిజంగా అర్థం చేసుకున్నట్లు 'మోసం' చేయగలవని మీరు అనుకుంటున్నారా?
- బాట్ మరింత సమర్థవంతంగా ఉండేందుకు ఏ లక్షణాలు అవసరం?
- ఒక బాట్ వాక్య అర్థం నిజంగా 'అర్థం చేసుకుంటే', అది సంభాషణలో గత వాక్యాల అర్థాన్ని కూడా 'మరచిపోకుండా' ఉంచాల్సి ఉంటుందా?
🚀సవాలు
పై "ఆగి ఆలోచించండి" అంశాలలో ఒకదాన్ని ఎంచుకుని, దాన్ని కోడ్లో అమలు చేయడానికి ప్రయత్నించండి లేదా పేపర్పై ప్సూడోకోడ్ ఉపయోగించి పరిష్కారం రాయండి.
తర్వాతి పాఠంలో, సహజ భాషను పార్స్ చేయడానికి మరియు యంత్ర అభ్యాసానికి అనేక ఇతర విధానాలను మీరు నేర్చుకుంటారు.
పోస్ట్-లెక్చర్ క్విజ్
సమీక్ష & స్వీయ అధ్యయనం
క్రింద ఇచ్చిన సూచనలను మరింత చదవడానికి అవకాశాలుగా చూడండి.
సూచనలు
- షుబెర్ట్, లెన్హార్ట్, "కంప్యూటేషనల్ లింగ్విస్టిక్స్", ది స్టాన్ఫర్డ్ ఎన్సైక్లోపీడియా ఆఫ్ ఫిలాసఫీ (స్ప్రింగ్ 2020 ఎడిషన్), ఎడ్వర్డ్ ఎన్. జాల్టా (ఎడిటర్), URL = https://plato.stanford.edu/archives/spr2020/entries/computational-linguistics/.
- ప్రిన్స్టన్ యూనివర్సిటీ "వర్డ్నెట్ గురించి." WordNet. ప్రిన్స్టన్ యూనివర్సిటీ. 2010.
అసైన్మెంట్
అస్పష్టత:
ఈ పత్రాన్ని AI అనువాద సేవ Co-op Translator ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి ప్రయత్నించినప్పటికీ, ఆటోమేటెడ్ అనువాదాల్లో పొరపాట్లు లేదా తప్పిదాలు ఉండవచ్చు. అసలు పత్రం దాని స్వదేశీ భాషలోనే అధికారిక మూలంగా పరిగణించాలి. ముఖ్యమైన సమాచారానికి, ప్రొఫెషనల్ మానవ అనువాదం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వాడకంలో ఏర్పడిన ఏవైనా అపార్థాలు లేదా తప్పుదారుల కోసం మేము బాధ్యత వహించము.

