Skip to content

Latest commit

 

History

History
219 lines (143 loc) · 28.3 KB

File metadata and controls

219 lines (143 loc) · 28.3 KB

இயற்கை மொழி செயலாக்கத்தின் பொதுவான பணிகள் மற்றும் நுட்பங்கள்

பெரும்பாலான இயற்கை மொழி செயலாக்க பணிகளுக்கு, செயலாக்கப்பட வேண்டிய உரை துண்டிக்கப்பட்டு, ஆய்வு செய்யப்பட வேண்டும், மற்றும் முடிவுகள் விதிகள் மற்றும் தரவுத்தொகுப்புகளுடன் ஒப்பிடப்பட்டு சேமிக்கப்பட வேண்டும். இந்த பணிகள், ஒரு நிரலாக்கத்திற்குரிய உரையின் அர்த்தம் அல்லது நோக்கம் அல்லது சொற்களின் அடிக்கடி தோற்றத்தை அறிய உதவுகின்றன.

உரையை செயலாக்குவதற்கான பொதுவான நுட்பங்களை கண்டறிவோம். இயந்திரக் கற்றலுடன் இணைந்து, இந்த நுட்பங்கள் உங்களுக்கு பெரிய அளவிலான உரைகளை திறமையாகப் பகுப்பாய்வு செய்ய உதவுகின்றன. ஆனால், இந்த பணிகளில் ML ஐப் பயன்படுத்துவதற்கு முன், ஒரு NLP நிபுணர் எதிர்கொள்ளும் சிக்கல்களைப் புரிந்துகொள்வோம்.

NLP-க்கு பொதுவான பணிகள்

நீங்கள் வேலை செய்யும் உரையைப் பகுப்பாய்வு செய்ய பல்வேறு வழிகள் உள்ளன. நீங்கள் செய்யக்கூடிய பணிகள் உள்ளன, மற்றும் இந்த பணிகளின் மூலம் நீங்கள் உரையைப் புரிந்து கொள்ள முடியும் மற்றும் முடிவுகளை வரையறுக்க முடியும். நீங்கள் பொதுவாக இந்த பணிகளை ஒரு வரிசையில் மேற்கொள்கிறீர்கள்.

டோக்கனேஷன்

மிகவும் முதலில், பெரும்பாலான NLP ஆல்கொரிதங்கள் செய்ய வேண்டியது உரையை டோக்கன்கள் அல்லது சொற்களாகப் பிரிப்பது. இது எளிதாகத் தோன்றினாலும், குறியீடுகள் மற்றும் பல மொழிகளின் சொல் மற்றும் வாக்கிய எல்லைகளை கணக்கில் எடுத்துக்கொள்ள வேண்டிய அவசியம் இதை சிக்கலாக்குகிறது. நீங்கள் எல்லைகளைத் தீர்மானிக்க பல்வேறு முறைகளைப் பயன்படுத்த வேண்டியிருக்கலாம்.

டோக்கனேஷன்

Pride and Prejudice-இன் ஒரு வாக்கியத்தை டோக்கனேஷன் செய்கிறது. Jen Looper உருவாக்கிய தகவல்படம்

எம்பெடிங்ஸ்

சொல் எம்பெடிங்ஸ் என்பது உங்கள் உரைத் தரவுகளை எண் வடிவமாக மாற்றும் ஒரு வழியாகும். எம்பெடிங்ஸ், ஒரே பொருள் கொண்ட சொற்கள் அல்லது ஒன்றாகப் பயன்படுத்தப்படும் சொற்கள் ஒன்றாகக் குழுவாக அமைக்கப்படும் வகையில் செய்யப்படுகிறது.

சொல் எம்பெடிங்ஸ்

"I have the highest respect for your nerves, they are my old friends." - Pride and Prejudice-இன் ஒரு வாக்கியத்திற்கான சொல் எம்பெடிங்ஸ். Jen Looper உருவாக்கிய தகவல்படம்

இந்த 흥미로운 கருவியை முயற்சிக்கவும். ஒரு சொல் மீது கிளிக் செய்வது 유사மான சொற்களின் குழுக்களை காட்டுகிறது: 'toy' 'disney', 'lego', 'playstation', மற்றும் 'console' உடன் குழுவாக உள்ளது.

பார்சிங் மற்றும் பாகம்-ஆஃப்-ஸ்பீச் டேகிங்

டோக்கனேஷன் செய்யப்பட்ட ஒவ்வொரு சொல் ஒரு பாகம்-ஆஃப்-ஸ்பீச் ஆக டேக் செய்யப்படலாம் - ஒரு பெயர்ச்சொல், வினைச்சொல், அல்லது பெயரடை. the quick red fox jumped over the lazy brown dog என்ற வாக்கியம் fox = noun, jumped = verb என POS டேக் செய்யப்படலாம்.

பார்சிங்

Pride and Prejudice-இன் ஒரு வாக்கியத்தை பார்சிங் செய்கிறது. Jen Looper உருவாக்கிய தகவல்படம்

பார்சிங் என்பது ஒரு வாக்கியத்தில் எந்த சொற்கள் ஒன்றுக்கொன்று தொடர்புடையவை என்பதை அடையாளம் காண்பது - உதாரணமாக the quick red fox jumped என்பது ஒரு பெயரடை-பெயர்ச்சொல்-வினைச்சொல் வரிசையாகும், இது lazy brown dog வரிசையிலிருந்து தனியாக உள்ளது.

சொல் மற்றும் சொற்றொடர் அடிக்கடி தோற்றங்கள்

ஒரு பெரிய உரை தொகுப்பை பகுப்பாய்வு செய்யும்போது, ஒவ்வொரு சொல் அல்லது ஆர்வமுள்ள சொற்றொடரின் அகராதியை உருவாக்கி, அது எவ்வளவு அடிக்கடி தோன்றுகிறது என்பதை கண்டறிவது ஒரு பயனுள்ள செயல்முறையாகும். the quick red fox jumped over the lazy brown dog என்ற சொற்றொடருக்கு the என்பதற்கான சொல் அடிக்கடி தோற்றம் 2 ஆகும்.

சொற்களின் அடிக்கடி தோற்றங்களை எண்ணும் ஒரு உதாரண உரையைப் பார்ப்போம். Rudyard Kipling-இன் கவிதை The Winners இல் பின்வரும் வரிகள் உள்ளன:

What the moral? Who rides may read.
When the night is thick and the tracks are blind
A friend at a pinch is a friend, indeed,
But a fool to wait for the laggard behind.
Down to Gehenna or up to the Throne,
He travels the fastest who travels alone.

அடிக்கடி தோற்றங்கள் கேஸ் சென்சிடிவ் அல்லது கேஸ் இன்சென்சிடிவ் ஆக இருக்கலாம், a friend என்பதற்கான அடிக்கடி தோற்றம் 2 மற்றும் the என்பதற்கான அடிக்கடி தோற்றம் 6, மற்றும் travels 2 ஆகும்.

N-grams

ஒரு உரை ஒரு குறிப்பிட்ட நீளத்திற்கான சொற்களின் வரிசைகளாகப் பிரிக்கப்படலாம், ஒரு சொல் (unigram), இரண்டு சொற்கள் (bigrams), மூன்று சொற்கள் (trigrams) அல்லது எந்த எண்ணிக்கையிலான சொற்கள் (n-grams).

உதாரணமாக the quick red fox jumped over the lazy brown dog n-gram மதிப்பாக 2 கொண்டது பின்வரும் n-grams-ஐ உருவாக்குகிறது:

  1. the quick
  2. quick red
  3. red fox
  4. fox jumped
  5. jumped over
  6. over the
  7. the lazy
  8. lazy brown
  9. brown dog

இதை ஒரு வாக்கியத்தின் மீது ஒரு ஸ்லைடிங் பெட்டியாக கற்பனை செய்வது எளிதாக இருக்கலாம். மூன்று சொற்களின் n-grams க்கான ஸ்லைடிங் பெட்டியாக இதை இங்கே காணலாம்:

  1. the quick red fox jumped over the lazy brown dog
  2. the quick red fox jumped over the lazy brown dog
  3. the quick red fox jumped over the lazy brown dog
  4. the quick red fox jumped over the lazy brown dog
  5. the quick red fox jumped over the lazy brown dog
  6. the quick red fox jumped over the lazy brown dog
  7. the quick red fox jumped over the lazy brown dog
  8. the quick red fox jumped over the lazy brown dog

n-grams sliding window

N-gram மதிப்பு 3: Jen Looper உருவாக்கிய தகவல்படம்

பெயர்ச்சொல் சொற்றொடர் எடுக்கும்

பொதுவாக, ஒரு வாக்கியத்தில் ஒரு பெயர்ச்சொல் உள்ளது, அது வாக்கியத்தின் பொருள் அல்லது பொருள் ஆகும். ஆங்கிலத்தில், இது பெரும்பாலும் 'a' அல்லது 'an' அல்லது 'the' முன்னதாக இருப்பதன் மூலம் அடையாளம் காணப்படுகிறது. ஒரு வாக்கியத்தின் பொருளை புரிந்துகொள்ள முயற்சிக்கும் போது 'பெயர்ச்சொல் சொற்றொடரை எடுப்பது' என்பது NLP இல் ஒரு பொதுவான பணியாகும்.

✅ "I cannot fix on the hour, or the spot, or the look or the words, which laid the foundation. It is too long ago. I was in the middle before I knew that I had begun." என்ற வாக்கியத்தில், நீங்கள் பெயர்ச்சொல் சொற்றொடர்களை அடையாளம் காண முடியுமா?

the quick red fox jumped over the lazy brown dog என்ற வாக்கியத்தில் 2 பெயர்ச்சொல் சொற்றொடர்கள் உள்ளன: quick red fox மற்றும் lazy brown dog.

உணர்வு பகுப்பாய்வு

ஒரு வாக்கியம் அல்லது உரை நேர்மறை அல்லது எதிர்மறை என்பதைப் பகுப்பாய்வு செய்யலாம். உணர்வு போலாரிட்டி மற்றும் ஆப்ஜெக்டிவிட்டி/சப்ஜெக்டிவிட்டி மூலம் அளவிடப்படுகிறது. போலாரிட்டி -1.0 முதல் 1.0 வரை (எதிர்மறை முதல் நேர்மறை வரை) மற்றும் 0.0 முதல் 1.0 வரை (மிகவும் ஆப்ஜெக்டிவ் முதல் மிகவும் சப்ஜெக்டிவ் வரை) அளவிடப்படுகிறது.

✅ பின்னர் நீங்கள் இயந்திரக் கற்றலின் மூலம் உணர்வுகளைத் தீர்மானிக்க பல்வேறு வழிகள் உள்ளன என்பதை அறியலாம், ஆனால் ஒரு வழி என்பது ஒரு மனித நிபுணரால் நேர்மறை அல்லது எதிர்மறையாக வகைப்படுத்தப்பட்ட சொற்கள் மற்றும் சொற்றொடர்களின் பட்டியலைக் கொண்டிருப்பது மற்றும் ஒரு போலாரிட்டி மதிப்பெண்ணை கணக்கிட உரைக்கு அந்த மாதிரியைப் பயன்படுத்துவது. இது சில சூழல்களில் எப்படி வேலை செய்யும் மற்றும் சிலவற்றில் குறைவாக வேலை செய்யும் என்பதை நீங்கள் காண முடியுமா?

விகிதம்

விகிதம் உங்களுக்கு ஒரு சொல் எடுத்து அந்த சொலின் ஒருமை அல்லது பன்மையைப் பெற உதவுகிறது.

லெம்மடைசேஷன்

ஒரு லெம்மா என்பது ஒரு சொற்களின் தொகுப்புக்கான மூல அல்லது தலைசொல் ஆகும், உதாரணமாக flew, flies, flying என்பவற்றின் லெம்மா fly என்ற வினைச்சொல் ஆகும்.

NLP ஆராய்ச்சியாளருக்கு பயனுள்ள தரவுத்தொகுப்புகள் உள்ளன, குறிப்பாக:

WordNet

WordNet என்பது பல்வேறு மொழிகளில் ஒவ்வொரு சொலுக்கும் சொற்கள், ஒத்த சொற்கள், எதிர்மறை சொற்கள் மற்றும் பல விவரங்களின் தரவுத்தொகுப்பாகும். மொழிபெயர்ப்புகள், எழுத்துப்பிழை சரிபார்ப்புகள் அல்லது எந்த வகையான மொழி கருவிகளையும் உருவாக்க முயற்சிக்கும் போது இது மிகவும் பயனுள்ளதாக உள்ளது.

NLP நூலகங்கள்

நீங்கள் இந்த நுட்பங்களை அனைத்தையும் உங்களால் உருவாக்க வேண்டிய அவசியமில்லை, ஏனெனில் இயற்கை மொழி செயலாக்கம் அல்லது இயந்திரக் கற்றலில் நிபுணத்துவம் இல்லாத டெவலப்பர்களுக்கு மிகவும் அணுகக்கூடியதாக ஆக்குவதற்கான சிறந்த Python நூலகங்கள் உள்ளன. அடுத்த பாடங்களில் இவற்றின் மேலும் பல உதாரணங்கள் உள்ளன, ஆனால் இங்கே நீங்கள் அடுத்த பணிக்கான உதவியாக சில பயனுள்ள உதாரணங்களைப் படிக்கலாம்.

பயிற்சி - TextBlob நூலகத்தைப் பயன்படுத்துதல்

TextBlob என்ற ஒரு நூலகத்தைப் பயன்படுத்துவோம், ஏனெனில் இது இந்த வகையான பணிகளைச் செய்ய உதவியாக APIக்களை கொண்டுள்ளது. TextBlob "NLTK மற்றும் pattern ஆகியவற்றின் பெரிய தோள்களில் நின்று, இரண்டிற்கும் நல்ல முறையில் செயல்படுகிறது." அதன் APIயில் நிறைய ML உள்ளடக்கப்பட்டுள்ளது.

குறிப்பு: TextBlob க்கான Quick Start வழிகாட்டி அனுபவமுள்ள Python டெவலப்பர்களுக்கு பரிந்துரைக்கப்படுகிறது

பெயர்ச்சொல் சொற்றொடர்களை அடையாளம் காண முயற்சிக்கும் போது, TextBlob பல்வேறு எடுப்பாளர்களை வழங்குகிறது.

  1. ConllExtractor ஐப் பாருங்கள்.

    from textblob import TextBlob
    from textblob.np_extractors import ConllExtractor
    # import and create a Conll extractor to use later 
    extractor = ConllExtractor()
    
    # later when you need a noun phrase extractor:
    user_input = input("> ")
    user_input_blob = TextBlob(user_input, np_extractor=extractor)  # note non-default extractor specified
    np = user_input_blob.noun_phrases                                    

    இங்கே என்ன நடக்கிறது? ConllExtractor என்பது "ConLL-2000 பயிற்சி தொகுப்புடன் பயிற்சி செய்யப்பட்ட சங்கப் பார்சிங் பயன்படுத்தும் ஒரு பெயர்ச்சொல் சொற்றொடர் எடுப்பாளர்." ConLL-2000 என்பது 2000 ஆம் ஆண்டில் Computational Natural Language Learning பற்றிய மாநாட்டை குறிக்கிறது. ஒவ்வொரு ஆண்டும் மாநாடு ஒரு சிக்கலான NLP பிரச்சினையைத் தீர்க்க ஒரு பணிக்கூட்டத்தை நடத்தியது, மற்றும் 2000 ஆம் ஆண்டில் அது noun chunking ஆக இருந்தது. Wall Street Journal-ல் ஒரு மாதிரி பயிற்சி செய்யப்பட்டது, "பயிற்சி தரவாக (211727 டோக்கன்கள்) பிரிவுகள் 15-18 மற்றும் சோதனை தரவாக (47377 டோக்கன்கள்) பிரிவு 20". நீங்கள் பயன்படுத்திய செயல்முறைகளை இங்கே மற்றும் முடிவுகளை பார்க்கலாம்.

சவால் - உங்கள் bot ஐ NLP மூலம் மேம்படுத்துதல்

முந்தைய பாடத்தில் நீங்கள் மிகவும் எளிய Q&A bot ஐ உருவாக்கினீர்கள். இப்போது, உங்கள் உள்ளீட்டை உணர்வுகளுக்காகப் பகுப்பாய்வு செய்து, அந்த உணர்வுக்கு பொருத்தமான பதிலை அச்சிடுவதன் மூலம் Marvin ஐ கொஞ்சம் பரிவுடன் மாற்றுவீர்கள். நீங்கள் ஒரு noun_phrase ஐ அடையாளம் காண வேண்டும் மற்றும் அதைப் பற்றி மேலும் உள்ளீட்டை கேட்க வேண்டும்.

உங்கள் bot ஐ சிறந்த உரையாடல் bot ஆக உருவாக்கும் படிகள்:

  1. பயனர் bot உடன் எப்படி தொடர்பு கொள்ள வேண்டும் என்பதை அறிவுறுத்தும் வழிகாட்டுதல்களை அச்சிடவும்
  2. லூப் தொடங்கவும்
    1. பயனர் உள்ளீட்டை ஏற்கவும்
    2. பயனர் வெளியேற கேட்டால், வெளியேறவும்
    3. பயனர் உள்ளீட்டை செயலாக்கி, பொருத்தமான உணர்வு பதிலைத் தீர்மானிக்கவும்
    4. உணர்வில் ஒரு noun phrase கண்டறியப்பட்டால், அதை பன்மைப்படுத்தி, அந்த தலைப்பில் மேலும் உள்ளீட்டை கேட்கவும்
    5. பதிலை அச்சிடவும்
  3. படி 2 க்கு திரும்பவும்

TextBlob ஐப் பயன்படுத்தி உணர்வுகளைத் தீர்மானிக்க குறியீட்டு துண்டு இங்கே உள்ளது. கவனிக்கவும், உணர்வு பதிலின் நான்கு கிரேடியன்கள் மட்டுமே உள்ளன (நீங்கள் விரும்பினால் மேலும் இருக்கலாம்):

if user_input_blob.polarity <= -0.5:
  response = "Oh dear, that sounds bad. "
elif user_input_blob.polarity <= 0:
  response = "Hmm, that's not great. "
elif user_input_blob.polarity <= 0.5:
  response = "Well, that sounds positive. "
elif user_input_blob.polarity <= 1:
  response = "Wow, that sounds great. "

உதாரணமாக, பயனர் உள்ளீடு > என்ற வரிகளில் உள்ள சில மாதிரி வெளியீடு இங்கே உள்ளது:

Hello, I am Marvin, the friendly robot.
You can end this conversation at any time by typing 'bye'
After typing each answer, press 'enter'
How are you today?
> I am ok
Well, that sounds positive. Can you tell me more?
> I went for a walk and saw a lovely cat
Well, that sounds positive. Can you tell me more about lovely cats?
> cats are the best. But I also have a cool dog
Wow, that sounds great. Can you tell me more about cool dogs?
> I have an old hounddog but he is sick
Hmm, that's not great. Can you tell me more about old hounddogs?
> bye
It was nice talking to you, goodbye!

இந்த பணிக்கான ஒரு சாத்தியமான தீர்வு இங்கே உள்ளது

✅ அறிவு சரிபார்ப்பு

  1. பரிவான பதில்கள் bot உண்மையில் அவர்களைப் புரிந்துகொண்டது என்று யாரையாவது 'மயக்க' செய்யும் என்று நீங்கள் நினைக்கிறீர்களா?
  2. noun phrase ஐ அடையாளம் காணுவது bot ஐ 'நம்பகமானதாக' ஆக்குமா?
  3. ஒரு வாக்கியத்திலிருந்து 'noun phrase' ஐ எடுப்பது ஏன் பயனுள்ளதாக இருக்கும்?

முந்தைய அறிவு சரிபார்ப்பில் bot ஐ செயல்படுத்தி, அதை ஒரு நண்பரிடம் சோதிக்கவும். அது அவர்களை மயக்குமா? உங்கள் bot ஐ மேலும் 'நம்பகமானதாக' மாற்ற முடியுமா?

🚀சவால்

முந்தைய அறிவு சரிபார்ப்பில் உள்ள ஒரு பணியை எடுத்து அதை செயல்படுத்த முயற்சிக்கவும். bot ஐ ஒரு நண்பரிடம் சோதிக்கவும். அது அவர்களை மயக்குமா? உங்கள் bot ஐ மேலும் 'நம்பகமானதாக' மாற்ற முடியுமா?

மதிப்பீடு மற்றும் சுயபடிப்பு

அடுத்த சில பாடங்களில் நீங்கள் உணர்வு பகுப்பாய்வைப் பற்றி மேலும் அறியலாம். KDNuggets போன்ற கட்டுரைகளில் இந்த 흥미로운 நுட்பத்தை ஆராயவும்

பணிக்கட்டளை

ஒரு bot ஐ பேச வைக்கவும்


அறிவிப்பு:
இந்த ஆவணம் Co-op Translator என்ற AI மொழிபெயர்ப்பு சேவையை பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சிக்கிறோம், ஆனால் தானியங்கி மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறுகள் இருக்கக்கூடும் என்பதை கவனத்தில் கொள்ளவும். அதன் சொந்த மொழியில் உள்ள மூல ஆவணம் அதிகாரப்பூர்வ ஆதாரமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பைப் பயன்படுத்துவதால் ஏற்படும் எந்த தவறான புரிதல்களுக்கும் அல்லது தவறான விளக்கங்களுக்கும் நாங்கள் பொறுப்பல்ல.