கிருபன்

தமிழின் எதிர்காலமும் தகவல் தொழில்நுட்பமும்

Recommended Posts

தமிழின் எதிர்காலமும் தகவல் தொழில்நுட்பமும் 24. இயல்மொழி ஆய்வு கருவித் தொடரி

September 28, 2018

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

  • வாக்கியங்களைப் பிரித்தல்
  • சொற்களைப் (நிறுத்தற் குறிகளையும் சேர்த்து) பிரித்தல்
  • சொல்வகைக் குறியீடு செய்தல்
  • அடிச்சொல்லையோ, தண்டுச்சொல்லையோ பிரித்தெடுத்தல்

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

நிரல்கூறுகளாக இயல்மொழி ஆய்வு கருவித் தொடரி

நிரல்கூறுகளாக இயல்மொழி ஆய்வு கருவித் தொடரி

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

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

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

தற்பொழுது கிடைக்கும் இயல்மொழி ஆய்வுக் கருவிகள்

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

இரைச்சலை அகற்றல் (Noise removal)

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

இரைச்சல் அகற்றுவதற்கான ஒரு பொது அணுகுமுறை இரைச்சல் நிறைந்த சொற்குறிகளின் ஒரு பட்டியலைத் தயார் செய்வது. பின்னர் இந்த சொற்குறிகளை ஒன்றொன்றாக உரை முழுவதும் தேடி நீக்குதல். இணையத்திலும், சமூக ஊடகங்களிலும் எடுத்த உரைகளில் இணையத்தள முகவரிகள் (URLs), கொத்துக்குறிகள் (hashtags), வேற்று மொழிச் சொற்கள் போன்றவை இருக்கலாம். அஃகுப்பெயர்களுக்கும் (acronyms) சுருக்கங்களுக்கும் பதிலாக அவற்றின் முழு வடிவங்களை மாற்றி வைக்க வேண்டும். இம்மாதிரி சிறப்பு வடிவங்களைக் கையாளும் போது மற்றொரு அணுகுமுறை தேடுகுறித்தொடர்களைப் (regex) பயன்படுத்துவது.

நாம் அடிக்கடி பயன்படுத்தும் இடைச்சொற்களில் (Stopwords) பொருள் குறைவாக இருப்பதால் இவை ஒரு உரையை மற்ற உரைகளிலிருந்து வேறுபடுத்த உதவுவதில்லை. எடுத்துக்காட்டாக ஒரு, என்று, மற்றும், இந்த, இது, என்ற, கொண்டு, என்பது, பல, ஆகும்…போன்ற சொற்கள். நாம் சில நேரங்களில், மேலும் செயலாக்கும் முன், உரையிலிருந்து இவற்றை வடிகட்டி எடுத்துவிட வேண்டியுள்ளது. நான் இந்த 125 சொற்கள் கொண்ட பட்டியலை TXM சொற் களஞ்சியத்தில் முதல் 300 சொற்குறிகளிலிருந்து (சொற்களும் நிறுத்தற்குறிகளும்) தயாரித்தேன்.

நாம் ஒரு உரையை ஆய்வு செய்யும் போது, வேறெந்த வேலையும் செய்யும் முன்னர்  இவற்றைச் செய்ய வேண்டும். ஆகவே இவற்றைச் செயல்படுத்தல் முன்னோடிகள் (pre-processing) என்றும் சொல்கிறோம்.

வாக்கியங்களைப் பிரித்தல் (Sentence segmentation)

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

ஆங்கில வாக்கியப் பிரிப்பான்களால் தமிழின் தனிப்பட்ட அம்சங்களை சரியாகக் கையாள இயலவில்லை. எ.கா.,பெயர் முதலெழுத்துகள், முன்னொட்டுகள், சுருக்கக் குறியீடுகள் ஆகியவை. ஆகவே இதற்காக நான் NLTK Punkt tokenizer-ஐத் தமிழுக்குத் தயார் செய்துள்ளேன். இது இயந்திரக் கற்றல் (machine learning) மூலம் சாதாரண சொல்வங்கி (raw text corpus) வைத்து செய்யப்பட்டது. 

சொற்களையும் நிறுத்தற் குறிகளையும் பிரித்தல் (Tokenization)

ஒரு வாக்கியத்தில் சொற்களும் நிறுத்தற் குறிகளும் இருக்கும். இவற்றைப் பொதுவாக சொற்குறிகள் (Tokens) என்று சொல்கிறோம். இடைவெளிகளை வைத்து இவற்றைப் பிரிக்கலாம். ஆனால் முற்றுப் புள்ளி முக்கால் புள்ளிகளுக்கு முன் இடைவெளி இல்லாமலும் இருக்கலாம். ‘ச.ம.உ.’ என்பதைப் புள்ளிகளில் பிரிக்காமல், ஒரே சொல்லாக எடுக்க வேண்டும். 

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

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

வியட்நாமிய இயல்மொழி ஆய்வு குழாய்த்தொடர்

வியட்நாமிய இயல்மொழி ஆய்வு குழாய்த்தொடர்

நடைமுறை எடுத்துக்காட்டு: வியட்நாமிய இயல்மொழி ஆய்வு குழாய்த்தொடர்

சொற்களைப் பிரித்தெடுத்தல், சொல்வகைக் குறியீடு, பெயரிட்ட உருபொருள் அடையாளம் காணுதல் மற்றும் சார்புநிலை பிரிப்பி ஆகிய முக்கியப் பணிகளில் பயனர்களுக்கு உதவுவதற்கும், அடுத்து வரும் செய்முறைகளின் ஆய்வாளர்கள் மற்றும் கருவி நிரலாளர்களுக்கு ஆதரவாக இருக்கவும் ஆங்கிலத்தில் ஸ்டான்ஃபோர்ட் CoreNLP கருவித்தொகுப்பு போன்ற ஒரு இயல்மொழி குழாய்த்தொடரை வியட்நாமிய மொழிக்கு உருவாக்குவதற்கான தேவை உள்ளது என்று முடிவு செய்தனர். வியட்நாமிய மொழிக்கு இயல்மொழி ஆய்வுக் குறியீடு செய்யும் இந்த VnCoreNLP என்ற குழாய்த்தொடர் திட்டத்தைத் தொடங்கினர்.இது ஜாவா (Java) மொழியில் எழுதப்பட்டுள்ளது.

இந்த நிரல் தொகுப்பை படைப்பாக்கப் பொதுமங்கள் அனுமதியில் பகிர்ந்துள்ளனர். வணிகம் அல்லாத வேலைகளுக்கு இலவசமாகப் பயன்படுத்தலாம். வியட்நாமிய மொழிக்கு இதுவரை உள்ள கருவிகளைவிட மிகவும் துல்லியமாக வேலை செய்கிறது மற்றும் வேகமாக உள்ளது. எனவே இதை பெரிய அளவிலான தரவுகளைக் கையாளுவதற்குப் பயன்படுத்தலாம். எளிதாகப் பயன்படுத்த முடியும். பயனர்கள் வெளிப்புற சார்புகளை நிறுவ வேண்டியதில்லை. கட்டளை வரி அல்லது ஜாவா (Java) பயன்பாட்டு நிரலாக்க இடைமுகத்திலிருந்து (API) இயக்க முடியும்.

நடைமுறை எடுத்துக்காட்டு: தாய்லாந்து இயல்மொழி ஆய்வு கருவித்தொகுப்பு

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

————-

இத்தொடரில் அடுத்த கட்டுரை: இயந்திர மொழிபெயர்ப்பு

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

 

http://www.kaniyam.com/natural-language-processing-toolchain/

 

Share this post


Link to post
Share on other sites

தமிழின் எதிர்காலமும் தகவல் தொழில்நுட்பமும் 25. தமிழ் – ஆங்கிலம் இயந்திர மொழிபெயர்ப்பு

October 4, 2018

இயந்திர மொழிபெயர்ப்புக்கு மூன்று வகையான அணுகல்கள் உள்ளன. இவை விதி சார்ந்த இயந்திர மொழிபெயர்ப்பு (Rule-Based Machine Translation – RBMT), புள்ளிவிவர இயந்திர மொழிபெயர்ப்பு (Statistical Machine Translation – SMT) மற்றும் கலப்பு (Hybrid) இயந்திர மொழிபெயர்ப்பு.

விதி சார்ந்த இயந்திர மொழிபெயர்ப்பு 

விதி சார்ந்த இயந்திர மொழிபெயர்ப்பில் இந்த இரண்டு வகைகள் உண்டு. மேலோட்டமான மொழிமாற்றம் (Shallow transfer) மற்றும் ஆழ்ந்த மொழிமாற்றம் (Deep transfer). அபெர்டியம் (Apertium) ஒரு கட்டற்ற திறந்த மூல விதி சார்ந்த இயந்திர மொழிபெயர்ப்பு தளம் ஆகும். இது குனு பொது உரிமத்தின் கீழ் வெளியிடப்பட்டுள்ளது. இது ஒரு மேலோட்டமான-மொழிமாற்ற இயந்திர மொழிபெயர்ப்பு அமைப்பு ஆகும். தற்பொழுது, அபெர்டியம், இந்தி – உருது சேர்த்து, 40 நிலையான மொழி இணைகளை வெளியிட்டுள்ளது,

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

தமிழ் ஒரு கட்டற்ற சொல் வரிசை மொழி. ஆகவே தமிழிலிருந்து ஆங்கிலத்துக்கு மொழிபெயர்ப்பதில் துல்லியம் குறைவு. ஆங்கிலத்திலிருந்து தமிழுக்கு மொழிபெயர்ப்பதில் துல்லியம் அதிகம். 

மூல மொழியில் ஒரு சொற்பகுப்பியல் ஆய்வியும் இலக்கு மொழியில் ஒரு சொற்பகுப்பியல் உருவாக்கியும் அபெர்டியம் இயந்திர மொழிபெயர்ப்பை தமிழுக்கு செயற்படுத்த முக்கியமானவை. ஹைதராபாத் பல்கலையில் பரமேஸ்வரி இவற்றை உருவாக்க செய்த முயற்சியின் முடிவுகள் இங்கே. சுமார் 68 ஆயிரம் சொற்கள் கொண்ட அகராதியைப் பயன்படுத்தி இருவேறு உரைத்தொகுப்புகளில் 85% சொற்களை மொழிபெயர்ப்பு செய்ய முடிந்ததாம்.

இயந்திர மொழிபெயர்ப்பு செய்முறை வரிசை

விதி சார்ந்த இயந்திர மொழிபெயர்ப்புக்கு கீழ்க்கண்ட செய்முறை வரிசையைப் பின்பற்றுகிறோம்:

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

தமிழ் – ஆங்கிலம் இயந்திர மொழிபெயர்ப்பு

புள்ளிவிவர இயந்திர மொழிபெயர்ப்பு 

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

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

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

இது LGPL உரிமத்தின் கீழ் வெளியீடு செய்யப்பட்டுள்ளது. விண்டோஸ், மேக் மற்றும் லினக்ஸ் கணினிகளில் ஓடும். ஐரோப்பிய ஒன்றிய நிதியுதவியில் உருவாக்கப்பட்டது.

கலப்பு இயந்திர மொழிபெயர்ப்பு

கலப்பு (Hybrid) இயந்திர மொழிபெயர்ப்பில் பொதுவாக RBMT மற்றும் SMT இரண்டும் உண்டு. இதை SYSTRAN போன்ற தனியுரிம நிறுவனங்களே பெரும்பாலும் பயன்படுத்துகின்றன.

நரம்பியல் இயந்திர மொழிபெயர்ப்பு 

நரம்பியல் இயந்திர மொழிபெயர்ப்பு (Neural Machine Translation – NMT) என்பது ஒரு பெரிய செயற்கை நரம்பியல் பிணையத்தைப் பயன்படுத்தி அடுத்து வரும் சொற்களின் தொடர்ச்சியைக் கணிக்கிறது. இது பொதுவாக ஒருங்கிணைந்த முன்மாதிரியை வைத்து முழு வாக்கியங்களை உருவாக்க முயற்சிக்கிறது. நரம்பியல் இயந்திர மொழிபெயர்ப்பு என்பது புள்ளிவிவர இயந்திர மொழிபெயர்ப்பில் (SMT) வழக்கமாகச் செய்வதைவிடத் தலைகீழான மாற்றம் அல்ல. ஆகவே இதுவும் புள்ளிவிவர இயந்திர மொழிபெயர்ப்பில் ஒரு வகைதான். ஆனால் மிகவும் மேம்படுத்தப்பட்ட வகை.

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

இயந்திர மொழிபெயர்ப்பில் நரம்பியல் பிணையங்களைப் பயன்படுத்துவதற்கான முதல் அறிவியல் அறிக்கை 2014 இல் வெளிவந்தது. முதன்முதலாக 2015 ஆம் ஆண்டில், பொது இயந்திர மொழிபெயர்ப்பு போட்டியில் NMT அமைப்பு இருந்தது. அடுத்த ஆண்டு வெற்றியாளர்களில் 90% NMT பயன்படுத்தியவர்கள். 2016 க்குள், சிறந்த இயந்திர மொழிபெயர்ப்பு அமைப்புகளில் பெரும்பாலானவை NMT அமைப்புகள்தான். கூகிள், மைக்ரோசாப்ட் மற்றும் யாண்டெக்ஸ் மொழிபெயர்ப்பு சேவைகள் இப்போது NMT ஐயே பயன்படுத்துகின்றன.

திறந்த மூல நரம்பியல் இயந்திர மொழிபெயர்ப்பு அமைப்பு, OpenNMT, ஹார்வர்ட் இயல்மொழி ஆய்வுக் குழுவால் வெளியிடப்பட்டது. OpenNMT என்பது நரம்பியல் இயந்திர மொழிபெயர்ப்புக்கான திறந்த மூல முன்முயற்சியாகும். இது அண்மைய ஆழ்ந்த கற்றல் தொழில்நுட்பத்தையே பயன்படுத்துகிறது. இது தற்போது 3 முக்கிய செயலாக்கங்கள் கொண்டது: லுவா (Lua), பைதான் – பைடார்ச்(PyTorch), பைதான் – டென்சார்ஃப்ளோ(TensorFlow). இவை மூன்றுமே தற்போது பராமரிக்கப்படுகின்றன. மூல நிரல்கள் கிட்ஹப்பில் பகிரப்பட்டுள்ளன. OpenNMT MIT உரிமத்தின் கீழ் வெளியிடப்பட்டுள்ளது.

பங்களிப்போர் எண்ணிக்கையையும், பயனர் ஆர்வத்தைக் குறிக்கும் விண்மீன் குறியீடுகளையும் பார்த்தால் கூகிளின் டென்சார்ஃப்ளோதான் (TensorFlow) சவாலில்லாமல் முதலிடத்திலுள்ளது. இது அபாச்சி 2.0 திறந்த மூல உரிமத்தின் கீழ் வெளியிடப்பட்டுள்ளது. இது பைதான் மொழியில் எழுதப்பட்டுள்ளது. ஆனால் கருநிரல் C ++ மற்றும் CUDA வில் எழுதப்பட்டுள்ளது. CUDA என்பது வரைபடச் செயலகம் (GPU) நிரலாக்கம் செய்ய என்விடியா (Nvidia) மொழி.

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

வரைபடச் செயலகம் (GPU) சில்லு உள்ள கணினி தேவை

OpenNMT நிரலைப் பயன்படுத்தி பயிற்றுவிக்க NVIDIA நிறுவனத்தால் தயாரிக்கப்பட்ட வரைபட செயலாக்கச் (GPU) சில்லு உள்ள கணினி தேவை. அதுவும் CUDA என்ற கருவித்தொகுதி மென்பொருள் ஓடக்கூடியதாக இருக்க வேண்டும். உங்கள் கணினியில் இவை உள்ளனவா என்று பார்க்க இங்கே செல்லவும். பெரிய அளவில் தரவைச் செயலாக்க வேண்டியிருப்பதால், பொதுவாக எந்த இயந்திர கற்றல் திட்டத்திற்கும் வரைபடச் செயலகம் சில்லு வைத்த கணினி தேவைப்படுகிறது.

இயந்திர மொழிபெயர்ப்பு அணுகல்களில் நல்லதும் கெட்டதும்

RBMT அமைப்புகள் மொழியின் மூன்று முக்கியமான குறைபாடுகளை எதிர்கொள்கின்றன:

1) ஒரு இயந்திரத்தைப் பொருத்தவரை மொழியின் உள்ளார்ந்த தெளிவின்மை. மனிதர்களைப் போல சொல்லின் பொருள் சார்ந்த உள்ளுணர்வு இயந்திரங்களுக்குக் கிடையாது.

2) விலக்கு அடிப்படையிலான இலக்கண அமைப்பு.

3) எப்போதும் விரிவாகிக்கொண்டிருக்கும் கலைச்சொற்கள் அகராதி.

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

NMT பற்றிய சுவாரசியமான அம்சம் என்னவென்றால், PBSMT (சொற்றொடரை அடிப்படையாகக் கொண்ட SMT) யை விட இரைச்சல் மிகுந்த தரவுக்கு சகிப்புத்தன்மை அதிகம். பொதுவான NMT அமைப்புகளில் ஒரு குறிப்பிடத்தக்க பலவீனம் என்னவென்றால் மிகவும் அரிதான வார்த்தைகளை அவை சரியாக மொழிபெயர்ப்பதில்லை.

 

—————–

இத்தொடரில் அடுத்த கட்டுரை: சொற்பிழைத் திருத்தி

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

 

http://www.kaniyam.com/tamil-english-machine-translation/

 

Share this post


Link to post
Share on other sites

தமிழின் எதிர்காலமும் தகவல் தொழில்நுட்பமும் 26. சொற்பிழைத் திருத்தி

October 15, 2018

தமிழுக்குச் சொல்திருத்தியே தேவையில்லை என்றொரு கருத்து

ஆங்கிலத்தில் உச்சரிப்பை வைத்து எழுத்துக்கோர்வை சொல்ல முடியாது. ஆகவே எழுத்துப்பிழைகள் நிகழ்வதற்கான சாத்தியங்கள் உள்ளன. தமிழிலோ எப்படி உச்சரிப்போ அப்படியே எழுதுகிறோம் (Phonetic language). ஆகவே தமிழுக்குச் சொல்திருத்தியே தேவையில்லை என்றொரு கருத்து நிலவுகிறது.  

ஆனால் மயங்கொலி என்று சொல்லப்படும் ல-ள-ழ, ண-ந-ன, ர-ற ஆகியவற்றில் எது சரி என்று தெரியாமல் நாம் தவறு செய்கிறோம். மேலும் ‘fat finger’ என்று ஆங்கிலத்தில் கூறப்படும் தவறான விசையை அழுத்துவதால் ஏற்படும் தட்டச்சுப்  பிழைகளையும் பார்க்கிறோம். ஒற்றுப்பிழை எனும் வல்லினம் மிகும் மிகா இடங்கள் எது என்பதில் பெரும்பாலோருக்கு ஐயமுண்டு. மற்றும் எச்சொற்களைச் சேர்த்து எழுதுவது எவற்றைப் பிரித்து எழுதுவது என்பதிலும் குழப்பம் அதிகம். விக்கிமூலம் போன்ற இடங்களில் ஒளி எழுத்துணரி பிழைகளும் நிறைய உள்ளன. ஆகவே தமிழுக்குச் சொல்திருத்தி தேவைதான். ஆனால் ஆங்கிலச் சொல்திருத்தியின் நகலாக இல்லாமல் தனித்தன்மை வாய்ந்ததாக இருக்க வேண்டும். எனினும் பாமா விஜயம் திரைப்படத்தில் வருவது போல ‘முடித்துத் தருவோம்’ என்பதற்குப் பதிலாக ‘முடி திருத்துவோம்’ என்று எவரும் தட்டச்சு செய்தால், இவையும் சொற்தொகுதியில் இருக்கும் சொற்கள் என்பதால், பிழையென்று எந்தச் சொல்திருத்தியாலும் சுட்டிக்காட்ட முடியாது!

உரையில் சொற்பிழை சரிபார்ப்பு பின்வரும் படிகளைக் கொண்டுள்ளது

  • உரையிலிருந்து நாம் சரிபார்க்க விரும்பும் சொற்களைப் பிரித்தெடுத்துக் கொள்ளுதல் (tokenizing).
  • ஒரு சொல் அகராதியில் உள்ளதா என்று முதலில் பார்த்தல்.
  • இல்லாவிட்டால், அடுத்து அடிச்சொல் (lemma) மற்றும் ஒட்டுகளை விதிப்படி சேர்த்து அந்தச் சொல் வருகிறதா என்று பார்த்தல்.
  • இரண்டிலும் இல்லாவிட்டால், அது தவறான சொல். தவறான சொற்களுக்கு, அகராதியிலும், ஒட்டுகளைச் சேர்த்தும் இதே போன்ற வேட்பு சொற்களைக் (candidate words) கண்டறிவதன் மூலம் திருத்தங்களைப் பரிந்துரைத்தல்.

வேட்பு சொற்கள் 

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

  1. செருகல் பிழை (insertion): ஒரு கூடுதல் எழுத்து சேர்தல், எ.கா., truly -> truely. ஒரு முக்கியமான சிறப்பு வழக்கு மீண்டும் அதே எழுத்து, எ.கா., occasion -> occassion. (இந்தப் பிழை தமிழில் அரிது.)
  2. விடுபடு பிழை (deletion): ஒரு எழுத்து விட்டுப்போய் விட்டது, எ.கா., unnecessary -> unnecesary
  3. பதிலீட்டுப் பிழை (substitution): ஒரு எழுத்துக்குப் பதிலாக வேறொரு எழுத்து உள்ளது, எ.கா., separate -> seperate.
  4. இடமாற்றுப் பிழை (transposition): இரண்டு தொடர்ச்சியான எழுத்துகள் இடமாற்றம் ஆகியுள்ளன, எ.கா., receive -> recieve.

பெரும்பாலான சொற்பிழைகள் இந்த ஒரு திருத்துத் தூரத்தில்தான் வரும்.

சொற்பிழைத் திருத்தி

சொற்பிழைத் திருத்தி

ஹன்ஸ்பெல் திறந்த மூல சொற்பிழைத் திருத்தி

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

ஹன்ஸ்பெல் (Hunspell) திறந்த மூல மென்பொருள் முதலில் ஹங்கேரிய மொழிக்காக எழுதப்பட்டது, இதன் முக்கிய பங்களிப்பாளர் லாஸ்லோ நெமெத். ஹங்கேரிய மொழியும் பல ஒட்டுகள் கொண்டது. எ.கா., ház-a-i-é-i-nek (அவர்களின் வீடுகளுடைய). ஹன்ஸ்பெல் சொற்பிழை திருத்தியில் இம்மாதிரி சொற்கள் முற்றிலும் ஒட்டுகளைப் பிரிப்பதன் மூலம் தீர்க்கப்படும். இது தமிழ் போன்ற சொற்றொடரியல் ரீதியாக வளமான மொழிகளுக்கும் ஒத்து வரும். இதைத் தமிழுக்குப் பயன்படுத்த வேண்டுமானால் அடிச்சொற்களைக் கொண்ட அகராதியையும் முன்னொட்டு, பின்னொட்டுகளுக்கான விதிகளையும் தயாரிக்க வேண்டும். 

தமிழுக்கு நான் உருவாக்கிய ஹன்ஸ்பெல் பின்னொட்டு விதிகள்

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

  • வினைச்சொல்: இதற்கான பின்னொட்டு விதிகள் ஒவ்வொரு அடிச்சொல்லுக்கும் சுமார் 8500 சொல் வேறுபாடுகளை உருவாக்குகின்றன. 1000-க்கும் மேலான வினைச்சொற்களைக் குறியிட்டுள்ளேன்.
  • பெயர்ச்சொல்: இதற்கான பின்னொட்டு மற்றும் முன்னொட்டு விதிகள் சேர்ந்து ஒவ்வொரு அடிச்சொல்லுக்கும் சுமார் 2500 சொல் வேறுபாடுகளை உருவாக்குகின்றன. 4000-க்கும் மேலான பெயர்ச்சொற்களைக் குறியிட்டுள்ளேன்.

என் சொற்பட்டியலில் சுமார் 330,000 சொற்கள் மட்டுமே உள்ளன. இருப்பினும் இந்த சுமார் 30,000 வரிகள் கொண்ட ஒட்டு விதிகள் மொத்தம் 20 மில்லியனுக்கும் மேலான வினைச்சொல் மற்றும் பெயர்ச்சொல் வேறுபாடுகளை உருவாக்குகின்றன!

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

லேங்குவேஜ் டூல் திறந்த மூல சொற்பிழைத் திருத்தி

திறந்த மூல சொற்பிழைத் திருத்தி பற்றி மலேசியா நண்பர்கள் சி. ம. இளந்தமிழ் & வே. இளஞ்செழியன் எழுதிய கட்டுரை இங்கே. இக்கட்டுரையில் லேங்குவேஜ் டூல் (Language Tool) பற்றிய முக்கிய குறிப்புகள் சில. “லேங்குவேஜ் டூல் ஒற்றுப்பிழை மட்டுமின்றி சொற்களைச் சேர்த்தும் பிரித்தும் எழுதுவதால் ஏற்படும் தவறுகளையும் கண்டுபிடிக்கும் வசதியைக் கொண்டிருக்கிறது. 

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

இத்திருத்தி இலக்கணப்பிழைகளைக் கண்டுபிடிக்க இரண்டு அடிப்படைக் கோப்புகளைப் பயன்படுத்துகின்றது. முதலாவது கோப்பு – tamil.dict – சொற்பட்டிலையும் சொற்பகுதிக் குறிப்பையும் (POS tags) கொண்டிருக்கிறது. இரண்டாவது கோப்பு – grammar.xml – இலக்கண விதிகளைக் கொண்டிருக்கிறது. இக்கோப்புகளைப் பயன்படுத்தி ஒரு சொற்றொடரில் உள்ள பிழைப் பாங்குகளை (error patterns) கண்டுபிடித்து, அவற்றைப் பிழையெனக் குறிப்பிடுவதோடு, அப்பாங்குகளை எவ்வாறு திருத்தி அமைக்கலாம் எனவும் லேங்குவேஜ் டூல் பரிந்துரைக்கிறது.”

லேங்குவேஜ் டூல் இணையதளத்தில் தமிழைத் தேர்வு செய்து உரையை உள்ளிட்டு சரிபார்த்தால் பின்வருமாறு சொற்களைச் சேர்த்தும் பிரித்தும் எழுதப் பரிந்துரை செய்கிறது. “வேண்டும்” என்ற வினைமுற்று வடிவம்முன் இடம்விட வேண்டும்: “கற்க வேண்டும்”. பெயரெச்சத்தின் பின் ‘போது’ வந்தால் சேர்த்து எழுத வேண்டும்: “தேவைப்படும்போது”.

ஆக, தமிழில் சொற்பிழைகளைக் கண்டுபிடிக்க நம்மிடம் ஹன்ஸ்பெல் உள்ளது. லேங்குவேஜ் டூல் ஒற்றுப்பிழையையும் சொற்களைச் சேர்த்தும் பிரித்தும் எழுதுவதால் ஏற்படும் தவறுகளையும் கண்டுபிடிக்கிறது. இவை இரண்டையும் ஒருங்கிணைத்தால் (integration) நமக்கு ஒரு முழுமையான தமிழ் பிழைத்திருத்தி கிடைக்கும் வாய்ப்பிருக்கிறது. லேங்குவேஜ் டூல் ஜாவா மொழியில் எழுதி LGPL உரிமத்தின் கீழ் வெளியிடப்பட்டுள்ளது. இதை ஒரு சவாலாக எடுத்துச்செய்ய தமிழ் சமூக நிரலாளர்கள் முன் வருவார்களா?

 

—————–

இத்தொடரில் அடுத்த கட்டுரை: உணர்வு பகுப்பாய்வும் சமூக ஊடகங்களும்

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

 

http://www.kaniyam.com/tamil-spell-checker/

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now