# இயற்கை மொழி செயலாக்கத்தின் அறிமுகம் இந்த பாடத்தில் *கணினி மொழியியல்* என்ற துணைதுறையின் ஒரு பகுதியாக *இயற்கை மொழி செயலாக்கத்தின்* சுருக்கமான வரலாறு மற்றும் முக்கியமான கருத்துகள் பற்றிய விவரங்கள் உள்ளன. ## [பாடத்திற்கு முன் வினாடி வினா](https://ff-quizzes.netlify.app/en/ml/) ## அறிமுகம் NLP (இயற்கை மொழி செயலாக்கம்) என்பது இயந்திரக் கற்றல் பயன்படுத்தப்பட்டு உற்பத்தி மென்பொருளில் பயன்படுத்தப்படும் மிகவும் பிரபலமான துறைகளில் ஒன்றாகும். ✅ நீங்கள் தினசரி பயன்படுத்தும் மென்பொருள் எதுவும் NLP கொண்டிருக்க வாய்ப்பு உள்ளதா? உங்கள் வார்த்தை செயலாக்கப் பயன்பாடுகள் அல்லது நீங்கள் அடிக்கடி பயன்படுத்தும் மொபைல் பயன்பாடுகள் பற்றி என்ன? நீங்கள் கற்றுக்கொள்ளப் போவது: - **மொழிகளின் கருத்து**. மொழிகள் எப்படி உருவாகின, முக்கியமான ஆய்வு பகுதிகள் என்ன என்பதையும். - **வரையறைகள் மற்றும் கருத்துகள்**. கணினிகள் உரையை எப்படி செயலாக்குகின்றன, அதில் பாகுபடுத்துதல், இலக்கணம், பெயர்ச்சொற்கள் மற்றும் வினைச்சொற்களை அடையாளம் காணுதல் போன்றவற்றின் வரையறைகள் மற்றும் கருத்துகளை நீங்கள் கற்றுக்கொள்வீர்கள். இந்த பாடத்தில் சில குறியீட்டு பணிகள் உள்ளன, மேலும் சில முக்கியமான கருத்துகள் அறிமுகப்படுத்தப்படுகின்றன, அவற்றை நீங்கள் அடுத்த பாடங்களில் குறியீட்டுப் படிக்க கற்றுக்கொள்வீர்கள். ## கணினி மொழியியல் கணினி மொழியியல் என்பது பல தசாப்தங்களாக ஆராய்ச்சி மற்றும் மேம்பாட்டு துறையாக இருந்து, கணினிகள் மொழிகளுடன் வேலை செய்ய, புரிந்து கொள்ள, மொழிபெயர்க்க, மற்றும் தொடர்பு கொள்ள எப்படி முடியும் என்பதை ஆய்வு செய்கிறது. இயற்கை மொழி செயலாக்கம் (NLP) என்பது 'இயற்கை', அல்லது மனித, மொழிகளை கணினிகள் செயலாக்குவது எப்படி என்பதை மையமாகக் கொண்ட தொடர்புடைய துறையாகும். ### உதாரணம் - தொலைபேசி дик்டேஷன் நீங்கள் ஒருபோதும் உங்கள் தொலைபேசியில் டைப் செய்வதற்குப் பதிலாக диктировать செய்திருந்தால் அல்லது ஒரு மெய்நிகர் உதவியாளரிடம் கேள்வி கேட்டிருந்தால், உங்கள் பேச்சு உரை வடிவமாக மாற்றப்பட்டு, பின்னர் நீங்கள் பேசிய மொழியில் இருந்து செயலாக்கப்பட்டது அல்லது *பாகுபடுத்தப்பட்டது*. கண்டறியப்பட்ட முக்கிய வார்த்தைகள் பின்னர் தொலைபேசி அல்லது உதவியாளர் புரிந்து கொண்டு செயல்படக்கூடிய வடிவமாக மாற்றப்பட்டன. ![புரிதல்](../../../../translated_images/ta/comprehension.619708fc5959b0f6.webp) > உண்மையான மொழியியல் புரிதல் கடினம்! படம்: [Jen Looper](https://twitter.com/jenlooper) ### இந்த தொழில்நுட்பம் எப்படி சாத்தியமாகிறது? இது சாத்தியமாகிறது, ஏனெனில் யாரோ ஒருவர் இதை செய்ய ஒரு கணினி நிரலாக்கத்தை எழுதியுள்ளார். சில தசாப்தங்களுக்கு முன்பு, சில அறிவியல் கற்பனை எழுத்தாளர்கள், மக்கள் பெரும்பாலும் தங்கள் கணினிகளுடன் பேசுவார்கள், மேலும் கணினிகள் அவர்கள் என்ன அர்த்தம் கொண்டார்கள் என்பதை எப்போதும் சரியாக புரிந்து கொள்வார்கள் என்று கணித்தனர். துரதிர்ஷ்டவசமாக, இது பலர் கற்பனை செய்ததை விட கடினமான பிரச்சினையாக மாறியது, மேலும் இன்று இது மிகவும் நன்றாக புரிந்துகொள்ளப்பட்ட பிரச்சினையாக இருந்தாலும், ஒரு வாக்கியத்தின் அர்த்தத்தை 'சரியான' இயற்கை மொழி செயலாக்கம் மூலம் அடைவது என்பது முக்கிய சவாலாகவே உள்ளது. குறிப்பாக ஒரு வாக்கியத்தில் நகைச்சுவை அல்லது கிண்டல் போன்ற உணர்வுகளை கண்டறிவது மிகவும் கடினமான பிரச்சினையாகும். இந்த நேரத்தில், நீங்கள் பள்ளி வகுப்புகளை நினைவுகூரலாம், அங்கு ஆசிரியர் ஒரு வாக்கியத்தில் இலக்கணத்தின் பகுதிகளை கற்றுக்கொடுத்தார். சில நாடுகளில், மாணவர்கள் இலக்கணம் மற்றும் மொழியியல் ஒரு தனித்துப் பாடமாக கற்றுக்கொள்கிறார்கள், ஆனால் பல நாடுகளில், இந்த தலைப்புகள் ஒரு மொழியை கற்றுக்கொள்வதின் ஒரு பகுதியாக சேர்க்கப்படுகின்றன: உங்கள் முதல் மொழி ஆரம்ப பள்ளியில் (படிக்கவும் எழுதவும் கற்றுக்கொள்வது) மற்றும் ஒருவேளை இரண்டாவது மொழி இடைநிலை அல்லது உயர்நிலை பள்ளியில். பெயர்ச்சொற்களை வினைச்சொற்களிலிருந்து அல்லது வினையடைவைப் பெயரடைவிலிருந்து வேறுபடுத்துவதில் நீங்கள் நிபுணராக இல்லாவிட்டால் கவலைப்பட வேண்டாம்! *எளிய நிகழ்காலம்* மற்றும் *நிகழ்கால முன்னேற்றம்* ஆகியவற்றின் இடையிலான வேறுபாட்டில் நீங்கள் போராடினால், நீங்கள் தனியாக இல்லை. இது பலருக்கு, ஒரு மொழியின் தாய்மொழி பேசுபவர்களுக்கும் கூட சவாலான விஷயமாகும். நல்ல செய்தி என்னவென்றால், கணினிகள் முறையான விதிகளை பயன்படுத்துவதில் மிகவும் திறமையானவை, மேலும் நீங்கள் ஒரு மனிதனின் அளவுக்கு ஒரு வாக்கியத்தை *பாகுபடுத்த* குறியீடு எழுத கற்றுக்கொள்வீர்கள். நீங்கள் பின்னர் ஆய்வு செய்யும் பெரிய சவால், ஒரு வாக்கியத்தின் *அர்த்தம்* மற்றும் *உணர்வு* ஆகியவற்றை புரிந்து கொள்வது. ## முன்னோட்டம் இந்த பாடத்திற்கான முக்கிய முன்னோட்டம், இந்த பாடத்தின் மொழியைப் படிக்கவும் புரிந்து கொள்ளவும் முடியும் என்பதே. கணிதப் பிரச்சினைகள் அல்லது சமன்பாடுகளைத் தீர்க்க வேண்டிய அவசியம் இல்லை. இந்த பாடத்தை எழுதிய மூல ஆசிரியர் ஆங்கிலத்தில் எழுதியிருந்தாலும், இது பிற மொழிகளில் மொழிபெயர்க்கப்பட்டுள்ளது, எனவே நீங்கள் ஒரு மொழிபெயர்ப்பைப் படிக்கக்கூடும். சில இடங்களில் பல்வேறு மொழிகள் பயன்படுத்தப்பட்டுள்ளன (வெவ்வேறு மொழிகளின் இலக்கண விதிகளை ஒப்பிடுவதற்காக). இவை *மொழிபெயர்க்கப்படவில்லை*, ஆனால் விளக்க உரை மொழிபெயர்க்கப்பட்டுள்ளது, எனவே அர்த்தம் தெளிவாக இருக்க வேண்டும். குறியீட்டு பணிகளுக்காக, நீங்கள் Python பயன்படுத்துவீர்கள், மேலும் எடுத்துக்காட்டுகள் Python 3.8 பயன்படுத்துகின்றன. இந்த பகுதியில், நீங்கள் தேவைப்படும் மற்றும் பயன்படுத்தப்படும்: - **Python 3 புரிதல்**. Python 3 இல் நிரலாக்க மொழி புரிதல், இந்த பாடம் உள்ளீடு, மடக்கு, கோப்பு வாசித்தல், வரிசைகள் ஆகியவற்றை பயன்படுத்துகிறது. - **Visual Studio Code + நீட்டிப்பு**. Visual Studio Code மற்றும் அதன் Python நீட்டிப்பைப் பயன்படுத்துவோம். நீங்கள் விரும்பும் Python IDE ஐப் பயன்படுத்தலாம். - **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) என்பது Python க்கான எளிமையான உரை செயலாக்க நூலகம். உங்கள் கணினியில் அதை நிறுவ TextBlob தளத்தில் உள்ள வழிமுறைகளைப் பின்பற்றவும் (கீழே காட்டப்பட்ட Corpora ஐயும் நிறுவவும்): ```bash pip install -U textblob python -m textblob.download_corpora ``` > 💡 குறிப்புகள்: Python ஐ நேரடியாக VS Code சூழல்களில் இயக்கலாம். மேலும் தகவலுக்கு [docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott) ஐச் சரிபார்க்கவும். ## கணினிகளுடன் பேசுதல் மனித மொழியை கணினிகள் புரிந்து கொள்ளச் செய்வதற்கான வரலாறு பல தசாப்தங்களுக்கு முன் தொடங்கியது, மேலும் இயற்கை மொழி செயலாக்கத்தைப் பற்றி முதலில் ஆராய்ந்த விஞ்ஞானிகளில் ஒருவர் *Alan Turing* ஆவார். ### 'Turing சோதனை' Turing 1950-களில் *கிரகித்தல் நுண்ணறிவு* ஆராய்ச்சி செய்தபோது, ​​ஒரு மனிதனுக்கும் கணினிக்கும் (வகுத்தல் மூலம்) உரையாடல் சோதனை வழங்க முடியுமா என்று அவர் கருதினார், அங்கு உரையாடலில் உள்ள மனிதன் மற்றொரு மனிதனுடன் அல்லது கணினியுடன் உரையாடுகிறாரா என்பதை உறுதிப்படுத்த முடியாது. ஒரு குறிப்பிட்ட அளவிலான உரையாடலுக்குப் பிறகு, மனிதன் பதில்கள் கணினியிலிருந்து வந்ததா அல்லது இல்லையா என்பதை தீர்மானிக்க முடியவில்லை என்றால், கணினி *சிந்திக்கிறது* என்று சொல்ல முடியுமா? ### ஊக்கமளித்தது - 'நகலெடுக்கும் விளையாட்டு' இது ஒரு *நகலெடுக்கும் விளையாட்டு* என்ற பார்ட்டி விளையாட்டிலிருந்து வந்தது, அங்கு ஒரு விசாரணையாளர் ஒரு அறையில் தனியாக இருக்கிறார் மற்றும் மற்றொரு அறையில் உள்ள இரண்டு மனிதர்களில் யார் ஆண் மற்றும் பெண் என்பதை தீர்மானிக்க வேண்டும். விசாரணையாளர் குறிப்புகளை அனுப்ப முடியும், மேலும் எழுத்து பதில்கள் மர்மமான நபரின் பாலினத்தை வெளிப்படுத்தும் கேள்விகளை யோசிக்க முயற்சிக்க வேண்டும். நிச்சயமாக, மற்ற அறையில் உள்ள வீரர்கள் விசாரணையாளரை தவறாக வழிநடத்த அல்லது குழப்ப முயற்சிக்கிறார்கள், அதே நேரத்தில் நேர்மையாக பதிலளிக்கிறார்கள் என்று தோன்றும். ### Eliza உருவாக்குதல் 1960-களில் MIT விஞ்ஞானி *Joseph Weizenbaum* [*Eliza*](https://wikipedia.org/wiki/ELIZA) என்ற கணினி 'மருத்துவர்' உருவாக்கினார், இது மனிதர்களிடம் கேள்விகளை கேட்டு, அவர்களின் பதில்களைப் புரிந்துகொள்கிறதா என்று தோன்றும். எனினும், Eliza ஒரு வாக்கியத்தை பாகுபடுத்தி, சில இலக்கண அமைப்புகள் மற்றும் முக்கிய வார்த்தைகளை அடையாளம் காண முடிந்தாலும், அது வாக்கியத்தை *புரிந்து கொள்ள* முடியாது. Eliza க்கு "**I am** sad" என்ற வடிவத்தில் ஒரு வாக்கியம் வழங்கப்பட்டால், அது வாக்கியத்தில் உள்ள வார்த்தைகளை மாற்றி, பதிலாக "**How long have you been** sad" என்று பதிலளிக்கலாம். இது Eliza வாக்கியத்தை புரிந்துகொண்டு, தொடர்ச்சியான கேள்வியை கேட்கிறது என்று தோன்றியது, ஆனால் உண்மையில், அது காலத்தை மாற்றி, சில வார்த்தைகளைச் சேர்த்தது. Eliza ஒரு பதிலுக்கான முக்கிய வார்த்தையை அடையாளம் காண முடியாவிட்டால், அது பல்வேறு வாக்கியங்களுக்கு பொருந்தக்கூடிய ஒரு சீரற்ற பதிலை வழங்கும். Eliza எளிதில் ஏமாற்றப்படலாம், உதாரணமாக "**You are** a bicycle" என்று ஒரு பயனர் எழுதினால், அது "**How long have I been** a bicycle?" என்று பதிலளிக்கலாம், மேலும் ஒரு காரணமுள்ள பதிலாக பதிலளிக்காது. [![Eliza உடன் உரையாடல்](https://img.youtube.com/vi/RMK9AphfLco/0.jpg)](https://youtu.be/RMK9AphfLco "Eliza உடன் உரையாடல்") > 🎥 மேலே உள்ள படத்தை கிளிக் செய்து Eliza பற்றிய வீடியோவைப் பாருங்கள் > குறிப்புகள்: [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) பற்றிய 1966 இல் வெளியிடப்பட்ட மூல விளக்கத்தை நீங்கள் ACM கணக்குடன் படிக்கலாம். மாற்றாக, [wikipedia](https://wikipedia.org/wiki/ELIZA) இல் Eliza பற்றி படிக்கவும். ## பயிற்சி - அடிப்படை உரையாடல் பாட்டை குறியீடு செய்வது Eliza போன்ற ஒரு உரையாடல் பாட்டை, பயனர் உள்ளீட்டைத் திரட்டும் மற்றும் புரிந்துகொண்டு புத்திசாலியாக பதிலளிக்கிறது என்று தோன்றும் ஒரு நிரலாகும். Eliza போல, எங்கள் பாட்டில் பல விதிகள் இல்லை, ஆனால் அது ஒரு திறனைக் கொண்டிருக்கும், அதாவது சீரற்ற பதில்களுடன் உரையாடலை தொடர்வது, இது எந்த சாதாரண உரையாடலிலும் வேலை செய்யக்கூடும். ### திட்டம் உரையாடல் பாட்டை உருவாக்கும் போது உங்கள் படிகள்: 1. பயனர் பாட்டுடன் எப்படி தொடர்பு கொள்ள வேண்டும் என்பதை அறிவுறுத்தும் வழிமுறைகளை அச்சிடவும் 2. ஒரு மடக்கு தொடங்கவும் 1. பயனர் உள்ளீட்டை ஏற்கவும் 2. பயனர் வெளியேற வேண்டும் என்று கேட்டால், வெளியேறவும் 3. பயனர் உள்ளீட்டை செயலாக்கி பதிலைத் தீர்மானிக்கவும் (இந்தக் கட்டத்தில், பதில் சாத்தியமான பொதுவான பதில்களின் பட்டியலிலிருந்து சீரற்ற தேர்வாகும்) 4. பதிலை அச்சிடவும் 3. படி 2 க்கு திரும்பவும் ### பாட்டை உருவாக்குதல் அடுத்ததாக பாட்டை உருவாக்குவோம். சில சொற்களை வரையறுத்து தொடங்குவோம். 1. Python இல் பின்வரும் சீரற்ற பதில்களுடன் இந்த பாட்டை உருவாக்கவும்: ```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?"] ``` இதோ சில மாதிரி வெளியீடு (பயனர் உள்ளீடு `>` தொடங்கும் வரிகளில் உள்ளது): ```output 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! ``` பணிக்கான ஒரு சாத்தியமான தீர்வு [இங்கே](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py) ✅ நிறுத்தி யோசிக்கவும் 1. சீரற்ற பதில்கள் பாட்டை உண்மையில் அவர்களைப் புரிந்துகொண்டது என்று யாரையாவது ஏமாற்றும் என்று நீங்கள் நினைக்கிறீர்களா? 2. பாட்டை மேலும் பயனுள்ளதாக இருக்க என்ன அம்சங்கள் தேவைப்படும்? 3. ஒரு பாட்டை உண்மையில் ஒரு வாக்கியத்தின் அர்த்தத்தை 'புரிந்து கொள்ள' முடிந்தால், அது ஒரு உரையாடலில் முந்தைய வாக்கியங்களின் அர்த்தத்தை 'நினைவில் வைத்துக்கொள்ள' வேண்டுமா? --- ## 🚀சவால் மேலே உள்ள "நிறுத்தி யோசிக்கவும்" கூறுகளில் ஒன்றைத் தேர்ந்தெடுத்து, அதை குறியீட்டில் செயல்படுத்த முயற்சிக்கவும் அல்லது காகிதத்தில் பseudocode பயன்படுத்தி ஒரு தீர்வை எழுதவும். அடுத்த பாடத்தில், இயற்கை மொழியை பாகுபடுத்துவதற்கான பல்வேறு அணுகுமுறைகள் மற்றும் இயந்திரக் கற்றல் பற்றி நீங்கள் கற்றுக்கொள்வீர்கள். ## [பாடத்திற்குப் பின் வினாடி வினா](https://ff-quizzes.netlify.app/en/ml/) ## மதிப்பீடு & சுயபடிப்பு கீழே உள்ள குறிப்புகளை மேலும் படிக்க வாய்ப்பாக எடுத்துக்கொள்ளுங்கள். ### குறிப்புகள் 1. Schubert, Lenhart, "Computational Linguistics", *The Stanford Encyclopedia of Philosophy* (Spring 2020 Edition), Edward N. Zalta (ed.), URL = . 2. Princeton University "About WordNet." [WordNet](https://wordnet.princeton.edu/). Princeton University. 2010. ## பணிக்கூடம் [ஒரு பாட்டைத் தேடுங்கள்](assignment.md) --- **குறிப்பு**: இந்த ஆவணம் [Co-op Translator](https://github.com/Azure/co-op-translator) என்ற AI மொழிபெயர்ப்பு சேவையைப் பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சிக்கின்றோம், ஆனால் தானியங்கி மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறான தகவல்கள் இருக்கக்கூடும் என்பதை கவனத்தில் கொள்ளவும். அதன் தாய்மொழியில் உள்ள மூல ஆவணம் அதிகாரப்பூர்வ ஆதாரமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பைப் பயன்படுத்துவதால் ஏற்படும் எந்த தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்கு நாங்கள் பொறுப்பல்ல.