2021 was a difficult year for everyone surviving into second year of global pandemic; however for Tamil computing community had much progress; here is my take on it.
Ezhil Language Foundation related activities in 2021
This year has been tough but we keep our head above the water for another challenging year 2022. I’m also happy to share I’ve volunteered to serve in the steering committee at INFITT organization to share some of open-source view points from my experience and some AI/ML strategies for developing our ecosystem.
Some of the major events by INFITT in 2021 are successful organization of Hackathon for college students at KCT in Kovai; 20th TIC organized virtually with good turnout and contributions from industry and academics.
Hope you are vaccinated, stay healthy, and in positive frame of mind to have a successful year and share some of your contributions to Tamil community.
இரண்டு பைத்தான் சொற்பிழை திருத்திகளை சமிபத்தில் எளிதாக பயன்படுத்தும் வண்ணம் “பொட்டலம்” போட்டேன். அதாவது மளிகைக்கடைகளில் அரிசி பருப்பு வகைகள் சாக்குகளில் இருந்தாலும் மொத்தவிலை கடைகளில்லாமல் தனியார் செல்லும் நகர கடைகளில் இவை பொட்டலங்களாக “பாக்கேட்” செய்து, நமது நேர நெருக்கடிக்காக, விற்கப்படும். அதே போல பல நல்ல நிரல்கள் பொதுவிலும், கிட் ஹபிலும் இருந்தாலும், இவற்றை பொதுவில் நிரலர்கள் பயன்படுத்த நாம் இதனை பொட்டலம் செய்தும், அரிசியில் கற்களை பொறக்கியெடுத்தும் சீர்செய்து மளிகைக்கடைக்காரர் செய்வார் இல்லையா, பரிசோதித்தும் வெளியிட்டுள்ளேன்.
வணக்கம் தமிழ் கணிமை ஆர்வலர்களே, இன்று ஓப்பன்-தமிழ் நிரல் தொகுப்பு வரிசை எண் 0.97 வெளியீடு அறிவிக்கிறோம். இதில் புதியன, சென்ற 2019-நவம்பர் மாதம் கழித்து வந்த மேம்பாடுகளாகியன, கீழ்வருமாறு.இதனை பெற
$ pip install –upgrade open-tamil==0.97
என்று கட்டளை கொடுக்கலாம்.
1 புதிய மேம்பாடுகள்:
மாத்திரை கணித்தல் – தமிழ் உரையில் உள்ள சொற்களின் மாத்திரை அளவை கணிக்க புதியசார்பு ‘tamil.utf8.total_maaththirai()’ என்று திரு. பரதன் தியாகலிங்கம் அவரால் பங்களிக்கப்பட்டது.
வடமொழி சொல்பட்டியல் மோனியர்-வில்லியம்ஸ் அவரது அகராதியில் இருந்து திரிக்கப்பட்டு இங்கு சேர்க்கப்பட்டது
‘tabraille’ என்ற module-இல் கண்பார்வை குறை உள்ளவர்களினால் தமிழ் பாரத பிரெயில் என்ற தரத்தை கையாளும் வகை சில உத்திகள் உள்ளன.
‘kural’ என்ற module-இல் திருக்குறளை நேரடியாக கையாள சில உத்திகள் உள்ளன. இது 2013-இல் வெளிவந்த ‘libkural’ என்பதன் மீள்பதிவாகும்.
‘solthiruthi’ என்ற module-இல் எளிதான சில மேம்பாடுகள் செய்யப்பட்டுள்ளன – இவற்றினால் வரும் மாற்றுச்சொற்கள் சற்று மேன்மை அடையும்.6. தமிழ் எழுத்துவழி எண்களை பகுப்பாய்வு செய்து எண்களாக மாற்ற ஒரு சார்பு #221
olini.py supports natual language arithmetic evaluation in Tamil for
all numbers based on this work.7. ‘tamiltts’ என்ற ஒரு module-இல் normalize numbers to numeral text என்றும் வேறு பல சொல்/உரை நெறிப்படுத்தும் பயன்பாடுகள் உள்ளன. இதுவும் ஒரு பழைய நிரலில் மீள் பதிப்பு.
‘tamil.tace16’ – என்ற நிரல் தொகுப்பில் தமிழ் TACE16 என்ற குறியீட்டிற்க்கு உதவும்வழி சில நிரல் சார்புகள் உண்டு.
‘transliterate.ITRANS’ – என்ற நிரல் தொகுப்பில் ITRANS transliteration – ஒலிவழி தட்டச்சு செய்தல் உருவாக்கப்பட்டது
2 வழு நீக்கம்:
பாமிணி எழுத்துருவில் இருந்து ஒறுங்குறியில் மாற்றத்தில் வழு நீக்கம் சரிபார்க்கப்பட்டது
நெடில் பட்டியலை சரிபார்த்தல்
Python3-இல் உகந்தவாறு sorting, ‘tamil.utf8.tamil_sorted’ என்ற சார்பு சேர்க்கப்பட்டது
நாள், நேரம் – tamil.date நிரல் தொகுப்பில் உள்ள சில வழு நீக்கம் செய்யப்பட்டது
3 புரவலர்களுக்கு நன்றி தெறிவித்தல்
We thank @pycharm for donation of 1 seat professional license towards Open-Tamil development. __/|\__. Thanks to @infitt and Prof. @crselvakumar1 for their support toward 1-way airfare cost of attending 2017-Tamil Internet Conference in Toronto, Canada. https://github.com/Ezhil-Language
வாய்ப்பிற்கு நன்றி.
-முத்து (கலிபோர்னியா).
மேற்கோள் – இந்த வலைப்பதிவு முதலில் ஒரு மின்னஞ்சல் அறிக்கையாக, திறமூலதமிழ் கணிமை அளவலாவள் குழுவில் இங்கு வெளியானது.
சமிபத்தில், ஓப்பன் தமிழ் வரிசை எண் 0.96-இல் எண்ணவெல்லாம் நிரல் படுத்தி செய்யலாம் ? இவற்றை எங்களது ஆறு ஆண்டு முயற்சியாக @UTSCஎண்ணிம தமிழ் துரையினரிடம் நேற்று வழங்கினேன். முழு வில்லைகள் (Slides) இங்கும். https://bit.ly/2G7mevE இங்கும் (PDF-வடிவில்) : ஒப்பன்தமிழ்-2020-ஓரு-பார்வை-2பல ஆண்டுகளாக பங்களித்தவர்கள் அனைவருக்கும் நன்றி.
இந்த வழங்கலின் பின் எழுப்பப்பட்ட கேள்விகளானவை:
NLTK-என்ற புகழ் பெற்ற ஆங்கலி இயல் மொழி பகுப்பாய்வு திறண்களைப்போன்ற சேவைகள் எப்பொழுது தமிழில் – அதுவும் ஓப்பன்-தமிழ் வழி கொண்டுவரப்படும் ? குறிப்பாக, POS – சொற்றொடர்களின் சொல் பகுப்பாய்வுகள், SynNet – சொல் இணைப்பு பின்னல்கள் ஆகியன.
உரையினை சொல் எழுத்துக்களாக பகுப்பாய்வு செய்வதன் வேகம், செய்முறை நினைவகளவு (RAM) குறைவாகவும் இருப்பது பற்றிய கேள்விகள்; விக்கிபீடியாவின் தரவுகளில் சொல்தேடல்கள் (word search), சொல் எண்ணிக்கை (frequency) பட்டியலிடலின், concordance/collocation database creation பற்றியும், அவைகளை உருவாக்கும் இயக்க நேர அளவுகள் போன்றவற்றை பற்றியும் அதன் வேகப்படுத்துவதைப் பற்றியும் கேள்விகள் வந்தன.
சொல்வனம் மின் இதழ்களின் வரலாற்று தரவுகளை எப்படி ஆரய்ச்சிக்காக கேட்பது என்பது பற்றியும் அவற்றில் உள்ள கலை சொற்கள், அறிவியல் ஆராய்ச்சி கட்டுரைகள், தமிழாக்க நடை அவற்றினை UTSC பல்கலைக்கழகத்திற்கும் மற்ற பொது ஆய்விற்கும் பெருவதன் அனுகுமுறை பற்றியும் கேள்விகள் எழுப்பப்பட்டன.
இதன் கண் தமிழில் தரவுகள் அதிகமாக நேர்ந்தால், கைக்கெட்டினால் தமிழில் பல் புதுமைகள் செய்யலாம் என்பதும் ஒரு பேராசையாக இந்தத் தருனத்தில் தேன்றும். புதிய இயந்தர வழி கற்றலின் பால் உள்ள வாய்புகளுக்கு இணங்க எப்படி இந்த மென்பொருளை வளர்ப்பது என்பது ஒரு புதிய சவால். சந்திப்போம்!
Over the course of this year, since translating Ruby Kin, and preparing a summary of 3 years work on spell-checker for Tamil Internet Conference – 2019, I’ve been thinking of next level of interesting projects.
The following have come to mind, expressed in Twitter @ezhillang in various forms. Here they are in simply chronological order,
Translating “Data Structures and Algorithms” book in Tamil
Previously my work with open-tamil collaborators involved generating useful practical Tamil words for commonly used data structures in a survey. ‘கணினி தரவமைப்புகளும் செயல்முறைகளும்‘
Useful candidate books for translation are:
‘Algorithms,’ by Prof. Jeff Erickson at UIUC
Problem Solving with Algorithms and Data Structures Using Python, Creative Commons licensed by its authors Brad Miller and David Ranum; same book (from above) adapted at Bradfield CS https://bradfieldcs.com/algos/
Translating/Writing a “Debugging Techniques” book in Tamil: ‘கணினி செயல்முறை நிரகளில் வழுநீக்கம்‘ – பயிற்சி, நூல்
Debugging techniques are important learning milestone for any professional software/hardware developer which are usually learnt on the job and essentially skipped in academia (perhaps for practical purposes).
(Research/Proof-of-concept) Viterbi algorithm based spelling correction algorithm for Tamil
(Research/Proof-of-concept) Concordance based context ambiguity resolution for Tamil spelling correction.
Contingent on our levels and degrees of success we can share our work in forums like Tamil Internet Conference, ACL or ACM, etc.
As always collaborators are welcome: email: ezhillang -AT- gmail -DOT- com
சென்ற பதிவை எழுதியபின் சிறிது நாடகளில் சொல்வனம் தளத்தில் இருந்து எனக்கு அவர்களின் தரவு கிடைத்தது. இதனை MySQL வடிவில் உருவாக்கி மேலும் அதனை ODBC போன்ற அனுகுமுரைகளின் வகையால் Python நிரல் மூலம் இந்த இதழின் வழி வந்த கட்டுரைகளை மொழியியல் ஆய்விற்கு கொண்டுவரலாம். ஆனால் இதனை செய்ய முதல்படியை கூட இன்னும் தாண்டவில்லை. MySQL மரு நிறுவுதல் சற்று சிக்கலாக உள்ளது.
இந்த பதிவில் விட்டர்பீ அல்கோரிதம் (Viterbi algorithm) என்பதனை கொண்டு எப்படி சொற்பிழைகளை திருத்தலாம் என்பதை மேலோட்டமாக பார்க்கலாம். முழுவிவரங்கள் இங்கே. விட்டர்பீ அல்கோரிதம் என்பது தகவல்தொழில்னுட்பத்தில் பிழைகளை நீக்கும் வண்ணம் வடிவமைக்கப்பட்ட ஒரு மிக முக்கியமான உத்தி/கண்டுபிடிப்பு. இது ஒரு குறியீட்டின் (code), பிழைகளை அந்த குறியீடு எப்படி உருவானது என்ற state-transition-table கொண்டு பிழைகளை நீக்கும்.
இதனை எப்படி மொழியில் சொற்பிழைகளை திருத்த பயன்படுத்துவது ? இதோ இப்படி – இந்த முழு கட்டுரையை பார்த்து தான் நானும் மயங்கினேன். அதாவது மொழியின் 1-கிராம், 2-கிராம், 3-கிராம் ஒலி எண்களின் மாற்றங்கள் புள்ளிவிவரங்களை (ngram state-transition tables) கொண்டு மட்டுமே இதனை சாதிக்க முடியும் என்று Etsy பொறியாளர்கள் சொல்லினார்கள் – அதை நானும் ஒப்புக்கொள்கின்றேன்.
இது சற்று தகவல் தொழில்நுட்பத்தின் சாஷ்டாங்க வழிகளினில் இல்லாவிட்டாலும் மொழியின் கட்டமைப்பை இலக்கணம் வழி இல்லாமல் புள்ளிவிவரத்தின் வாயிலாக எடுத்துக்கொள்ளலாம்.
இந்த தொடரில் இதுவரை ஆய்வுகளைப்பற்றி மட்டுமே இதுவரை பார்த்தோம். இப்போது சில செயல்முரை அல்கொரிதங்களை பார்க்கலாம்.
1 மேலோட்டமான சில குறிப்புகள்
சொல்திருத்தியில் பிழையான சொல் த ஒன்றை முதலில் கண்டரிந்தபின், அதற்கு எப்படி ஒரு மாற்றை ச [என்ற ஒரு தோராயமான சொற்பிழை நீக்கப்பட்ட பொருத்தத்தை எப்படி] உருவாக்குவது ? இதற்கு தேவை திருத்தத் தொலைவு d.
இயற்ப்பியலில், புள்ளியியலில் இவ்வாரான் கேள்வியை ஒரு optimization வடிவத்தில் மாற்றி இதனை தீர்வுகாணலாம். இதனைப்போல் சொல்திருத்தியில்,
மாற்றுச் சொல் ச = arg-min [ d[ச,த] ]
இதன் பொருள் என்ன என்றால் கொடுக்கப்பட்ட தவரான் சொல் த என்பதற்கு நமது செயலி அதன் அகராதியில் உள்ள ஒவ்வொரு சொல்லில்லும் அதன் தொலைவை கண்டறிந்து அவற்றில் எந்தெந்த சொற்கள் மிகக் குறைவான தொலைவில் உள்ளனவோ அவற்றையே சரியான சொல் என்ற பட்டியலில் பரிந்துரைக்கும். இதற்கு உதாரணமாக கட்டுரையின் மூன்றாவது பகுதியில் நிரல் துண்டு பார்க்கலாம்.
2 தொலைவு
தொலைவு – இரு சொற்களுக்கும் உள்ள நெறுக்கத்தை நாம் சொல்திருத்தியில் கணக்கிட வேண்டிய தேவை இருக்கிரது. ஏனெனில், ஒரு தவரான் சொல் உரையில் உள்ளீடு செய்யப்பட்டிருந்த்தால் அதற்கு மாற்றை தானியங்கி வழியில் கண்டறிய [அதவது இதன் மாற்றுச்ச்சொல்] இதற்கு பொருத்தமாகவும், நேருக்கமாகவும் இருக்கும் என்பது கணினியாளர்களும், மொழியியலாளர்களும் ஒப்புக்கொண்ட ஒரு கோட்பாடு. இதனை செயல்படுத்த கணினியாளர்கள் கொண்ட ஒரு மதிப்பீடு தொலைவு. இதனை திருத்தத் தொலைவு என்று சொல்வார்கள் [edit-distance].
ஒரு சொல்லினை அதன் உருப்பு எழுத்துக்களை இடம் மாற்றியோ, எழுத்துக்கள் கூட்டியே, அல்லது எழுத்துக்கள் நீக்கியோ மற்றொரு சொல்லாக மாற்ற எத்தனை படிகள் உள்ளன என்று கணக்கிட்டு சொல்வதானது இத்தகைய திருத்தத் தொலைவு சார்பு. இதனை கண்டுபிடித்த பலருள் திரு லெவின்ஷ்டீன் அவரது பெயரை இணைத்து லெவின்ஷ்டீன் திருத்தத் தொலைவு என்று கூறுகின்றார்கள் அறிவியலாளர்கள்.
இதன் பொருள் என்ன ? இதன் அமைப்பு எப்படிபட்டது ? கணிதவியலில், தினசரி வாழ்வில் எப்படி தொலைவு நிர்னயிக்கப்படுகிரது என்து போல், ஒரே இடத்தில் உள்ள பொருளுக்கும் அதே பொருளுக்கும் தொலைவு எதுவும் இல்லை – 0. அதே மாதிரி ஒரே சொல்லிர்கும் அதே சொல்லின் நகலுக்கும் தொலைவு 0. பிரகு, உங்கள் வீட்டிற்கும் உங்கள் பக்கத்துவீட்டிற்கும் தொலைவு என்ன ? தொலைவு 1 அல்லது கூடுதலாகவே இருக்கவேண்டும் இல்லையா ? பக்கத்து வீட்டார்க்கும் உங்கள் வீட்டிற்கும் உள்ள தொலைவு, உங்கள் வீட்டிற்கும் அவர்களது வீட்டிற்கும் உள்ள தொலைவும் ஒரேபடியானதாக இருக்கும். d[a,b] = d[b,a] என்பது ‘commutativity‘ என்ற சார்பின் குணத்தை இந்த திருத்த தொலைவு சார்பும் கொண்டது. [அதையும் – ‘போத்திக்குனு படுத்துக்கலாம், படுத்துக்குனு போத்திக்கலாம்‘ என்று பல முதிய தமிழ் மைக்கில் ஜாக்சன்கள் சொல்லியதை நினைவு கொள்ளலாம்]. அதுவே பொது அறிதல். இதைப்பொல குணங்களைக்கொண்ட சார்புகளை கணிதவியலில் ‘metric‘ என்றும் சொல்வார்கள் – அதாவது அளக்கும் சார்பு.
3 சிரிய எடுத்துக்காட்டு
ஒப்பன் தமிழ் நிரல் தொகுப்பில் ஒரு சில் உத்திகள் உள்ளது அவற்றில் திருத்தத் தொலைவு சார்பும் ஒன்று. இதனைக் கொண்டு ஒரு சிரிய உதாரனத்தை பார்க்கலாம்.
அகராதியில் உதாரனத்திற்கு 5 சொற்கள் இருக்கு என்று மட்டும் கொள்ளல்லாம்.
அகராதி A என்பதில் [‘அவிழ்’,’அவல்’,’அவள்’,’தவில்’,’தவள்’] என்ற் சொற்கள் இருக்கு என்றும் உள்ளிட்டு சொற்கள் ‘ஏவள்’, ‘இவல்’ என்று கொடுக்கபட்டது என்றும் கொள்வோம். இதற்கு என்ன மாற்றுக்கள் ?
பகுதி ஒன்றின் படி இந்த புள்ளியியல் குரைந்த பட்ச தெடலை பைத்தான் மொழியில் இப்படி எழுதலாம்:
இதனை இயக்கினால் நாம் பார்கக்கூடிய வெளியீடு இப்படி; அதாவது நமது சிரிய சொல்திருத்தி அல்கொரிதம் ‘ஏவள்’ என்பதை ‘அவள்’ என்றும், ‘இவல்’ என்பதை ‘அவல்’ என்றும் மாற்றாக பரிந்துரைக்கிரது. மேலும் கவனித்து பார்த்தால் ‘ஏவள்’ என்பது ‘தவள்’ என்பதற்கும் நெருக்கமான தொலைவில் உள்ளது ‘distance’ என்ற தொலைவு பட்டியலில் தெறியும்.
மேலும் மற்ற அல்கோரிதங்களைப் பற்றி அடுத்த பதிவுகளில் மேலோட்டமாக பாற்கலாம்.