மிக நெருக்கமான பொருத்தத்திற்கான உட்பொதிவுகளை எவ்வாறு தேடுவது

Mika Nerukkamana Poruttattirkana Utpotivukalai Evvaru Tetuvatu



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

தொடரியல்

ஒற்றுமையின் அடிப்படையில் உள்ள வேறுபாட்டின் அடிப்படையில் உட்பொதிப்புகளுக்கு இடையிலான வேறுபாட்டைக் கண்டறிய பல நுட்பங்கள் மற்றும் கருவிகள் உள்ளன. உட்பொதித்தல் ஒற்றுமைகளைக் கண்டறிவதற்குப் பின்வரும் முறைகள் மற்றும் அவற்றின் தொடர்புடைய தொடரியல் பயன்படுத்தப்படும்.







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



எடுத்துக்காட்டு 1: வார்த்தை உட்பொதிப்புகள் மூலம் மிக நெருக்கமான பொருத்தத்தை உட்பொதித்தல்

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



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





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

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



'word2vec' மாதிரியை இறக்குமதி செய்த பிறகு, 'உரை' என்பதைக் குறிப்பிடுகிறோம். நாங்கள் உரையைக் குறிப்பிட்டதும், இந்த “word2vec” மாதிரியை உரையுடன் கடந்து, குறைந்தபட்ச எண்ணிக்கையை “1”க்கு சமமாக அமைப்பதன் மூலம் பயிற்சியளிக்கிறோம். இப்போது, ​​இந்த பயிற்சியளிக்கப்பட்ட 'word2vec.wv.most_similar('consume')' மாதிரியை அழைக்கிறோம் மற்றும் இந்த எடுத்துக்காட்டில் 'நுகர்வு' என்பதைச் சரிபார்க்க விரும்பும் வார்த்தையின் மிக நெருக்கமான உட்பொதிப்புகளை நாங்கள் வழங்குகிறோம். உட்பொதித்தல் முடிவுகளைச் சரிபார்க்க, மாதிரியிலிருந்து வெளியீட்டை அச்சிடுகிறோம்:

இருந்து ஒரு தேசமாக மாதிரிகள் இறக்குமதி Word2Vec
உரை = [ [ 'முயல்' , 'உள்ளது' , 'பற்கள்' ] ]
மாதிரி = Word2Vec ( உரை , குறைந்தபட்ச_ எண்ணிக்கை = 1 )
ஒத்த_உட்பொதித்தல் = மாதிரி. wv . மிகவும்_ஒத்த ( 'முயல்' )
அச்சு ( ஒத்த_உட்பொதித்தல் )

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

எடுத்துக்காட்டு 2: BERT மாதிரியின் மூலம் மிக நெருக்கமான தேடலை உட்பொதித்தல்

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

இது முடிந்ததும், உட்பொதிவுகளைக் கற்றுக்கொள்ள இந்த மாதிரியைப் பயன்படுத்தலாம். பின்னர், 'கோசைன் ஒற்றுமை' செயல்பாட்டைப் பயன்படுத்தி உரைகளுக்கு இடையிலான ஒற்றுமையைக் கணக்கிடலாம். இந்த உதாரணத்தை 'google colab' என்ற ஆன்லைன் பைதான் தளத்தில் செயல்படுத்துகிறோம். மாதிரியை நன்றாக மாற்ற, நாங்கள் (BERT) மாதிரியை ஏற்றுகிறோம். அந்த நோக்கத்திற்காக, நாங்கள் முதலில் 'SentenceTransformers' ஐ நிறுவி இறக்குமதி செய்கிறோம். பின்னர், SentenceTransformer ஐப் பயன்படுத்தி அதன் முன் பயிற்சி பெற்ற மாதிரியிலிருந்து மாதிரியை ஏற்றுவோம். மாதிரியை ஏற்றுவதற்கு, SentenceTransformer மற்றும் BERT மாடலை முழுவதுமாக '$SentenceTransformer('bert-base-nli-mean-tokens')' என்று அழைக்கிறோம், அங்கு BERT இன் முன் பயிற்சி பெற்ற மாதிரியின் பெயரை உள்ளீட்டு அளவுருவில் குறிப்பிடுகிறோம். பின்னர் இதை “BERTmodel” மாறியில் சேமிக்கிறோம்.

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

BERT மாதிரியின் முன்னொட்டுடன் குறியாக்க செயல்பாட்டை “BERTmodel.encoding ()” என்று அழைக்கிறோம். இந்தச் செயல்பாட்டின் அளவுருக்களுக்கு '512' க்கு சமமாக நாங்கள் நிர்ணயித்த 'உரை' மற்றும் 'அதிகபட்ச நீளம்' ஆகியவற்றைக் கடந்து செல்கிறோம். ஒவ்வொரு உரையிலும் இந்த குறியாக்க செயல்பாட்டை நாங்கள் அழைக்கிறோம், மேலும் இது உரையை உட்பொதிவுகளாக மாற்றுகிறது.

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

இந்த உட்பொதிப்புகளுக்கு இடையே உள்ள ஒற்றுமையைக் கண்டறிய, நாங்கள் கொசைன் ஒற்றுமை செயல்பாட்டைப் பயன்படுத்துகிறோம், மேலும் உட்பொதிக்கப்பட்ட வாக்கியத்தின் மதிப்பை '0' குறியீட்டுடனும், மற்ற உட்பொதிக்கப்பட்ட வாக்கியத்தை '1 முதல் 3' குறியீட்டுடனும் மாற்றுவோம். வாக்கியங்கள். கொசைன் ஒற்றுமை செயல்பாடு வெளியீட்டு மதிப்புகள் -1 முதல் 1 வரை இருக்கும். இங்கே, 1 இரண்டு உட்பொதிப்புகளும் ஒரே மாதிரியானவை என்றும் -1 இரண்டு உட்பொதிப்புகளும் ஒத்ததாக இல்லை என்றும் கூறுகிறது. முன் பயிற்சி பெற்ற BERT மாதிரியைப் பயன்படுத்தி எடுத்துக்காட்டுகளில் நாங்கள் உருவாக்கிய நான்கு வாக்கிய உட்பொதிவுகளைப் பயன்படுத்தி கொசைன் ஒற்றுமை செயல்பாட்டைச் செயல்படுத்தும் முறையைக் காட்டும் குறியீடு துணுக்கை இணைத்துள்ளோம்.

!பிப் நிறுவல் வாக்கிய_டிரான்ஸ்ஃபார்மர்கள்
வாக்கியங்கள் = [
'நான்கு ஆண்டுகளுக்கு முன்பு, பாட்டில் இன்னும் நிரம்பியிருந்தது.',
'நாய் கூண்டிலிருந்து தப்பித்துச் செல்வதைக் கனவு கண்டது மற்றும் தெருவில் தன் நண்பன் செல்வதைக் கண்டது.',
'அந்த நபர் பல மாதங்களாக ஜெல்லிமீனுடன் விளையாடிக் கொண்டிருந்தார்.',
'அவர் தனது அலமாரியில் ஒரு நத்தையைக் கண்டார்.']
வாக்கிய_டிரான்ஸ்ஃபார்மர்களில் இருந்து வாக்கிய டிரான்ஸ்ஃபார்மரை இறக்குமதி செய்கிறது
Bertmodel = SentenceTransformer('bert-base-nli-mean-tokens')
வாக்கிய_உட்பொதிப்புகள் = Bertmodel.encode(வாக்கியங்கள்)
வாக்கிய_உட்பொதிப்புகள்.வடிவம்
sklearn.metrics.இலிருந்து cosine_similarity இறக்குமதி
# 0 வாக்கியத்திற்கான கொசைன் ஒற்றுமையைக் கணக்கிடுதல்
கொசைன்_ஒற்றுமை(
[வாக்கிய_உட்பொதிப்புகள்[0]],
வாக்கிய_உட்பொதிப்புகள்[1:])

வெளியீட்டில் உள்ள வரிசை மற்ற மூன்று வாக்கியங்களுடன் 'வாக்கியம் 0' இன் ஒற்றுமை மதிப்பைக் காட்டுகிறது, எ.கா. 1, 2 மற்றும் 3.

முடிவுரை

உட்பொதிப்புகளுக்கு இடையிலான ஒற்றுமையைக் கண்டறியும் முறைகளைப் பற்றி விவாதித்தோம். 'word2vec' ஜென்சிம் மாதிரி மற்றும் முன் பயிற்சி பெற்ற BERT மாடலைப் பயன்படுத்தி உட்பொதிப்பின் மிக நெருக்கமான பொருத்தத்தைத் தேட இரண்டு வெவ்வேறு உதாரணங்களைக் காட்டினோம்.