Open-Tamil v0.95

Today, we are releasing Open-Tamil v0.95 via Python package index here.

எழில்-open-tamil contributors meetup

எழில்-open-tamil contributors meetup (2018). படம் – உபயம் : திரு. சீனிவாசன்.

In this release there are few new items and routine improvements.

  1. Indian Rupee sign parsing
  2. Package tamil-sandhi-checker with open-tamil

  3. Tamil Morse code module added to package

  4. Remove Python 2.x support with sunsetting from PSF
  5. Valai – package of web ReST API for some spellcheckers

Get the latest:

$ pip install --upgrade open-tamil

Thanks to all our contributors present and past.
Happy Holidays!

P.S: மின் அஞ்சல் அறிவிப்பு கீழ் இணைக்கப்பட்டது.

வணக்கம் தமிழ் கணிமை ஆர்வலர்களே,

இன்று Open-Tamil வரிசை எண் 0.95 வெளியீடு ஆனது.  இந்த நிரல் தொகுப்பு முற்றிலும் திறமூல MIT உரிமத்தில் வெளியிடப்பட்டது. இதனை கொண்டு நீங்கள் பைத்தான் கணினி மொழியில் தமிழ் மொழி ஆய்வுகளை செயல்படுத்தலாம்.
உதாரணமாக இரண்டு திறமூல சேவைகள்/செயல்பாடுகள் (அதாவது எழில், தமிழ்சந்தி மற்றும் தமிழ்பேசு-வலை என்பவற்றை தவிற்த்து [எங்கள் குழுவினர் அல்லாதவர்]) பயன்பாட்டில் பொதுவெளியில் உள்ளது தெரியவந்தது-
 1) பைதமிழ் என்ற (அவலோகிதம் போல) வேண்பா திரிப்பு நிரல் தொகுப்பு (library), மற்றும் 
2) வென்முரசு தோடர்நாவலை உரை-பகுப்பாய்வு செய்யவும் ஒரு செயலி என்றபடி உள்ளது.

இந்நிலையில் இந்த வெளியீட்டில் உள்ளவை,

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

2. தமிழ் மோர்சு என்ற தந்தி குறிகளை தமிழில் கையாள இது உதவுகிறது.

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

முழு விவரங்களுடன் வெளியீடு: https://ezhillang.blog/2019/11/20/open-tamil-v0-95/

ஒப்பன் தமிழ் குழுவிற்காக,
அன்புடன்
-முத்து
கலிபோனியா
படம்

Tamil Entry via Keypad

One problem that seem to not draw interest from various actors in digital Tamil community seems to be the Tamil input via 4 x 3 standard Keypad.

A standard 4×3 keypad shown with digits and letters, including Japanese key entry on a vodafone device. Image credits to Wikipedia.

Problem Statement: Given a 4×3 matrix of keys in a phone keypad, how can we input the basic 13 + 18 + 12×18 = 247 letters of Tamil alphabet using this device ?

Alternate: Clearly, 247 letters have an information content of \log{2}{247} = 7.94836723158 bits or roughly 8bits. So we can simply punch in 3 keys for indicating this 8bit combination and we are done. Provide a table to the user about 247 letters and their 3-numeric key map and we have solved this problem in one way.

This is not very satisfying however; we seem to put the user to more work; we would instead like to have similar entry method in Tamil just like in English (where 3 letters are grouped per telephone key). The processor for application in the phone or mainframe can decode any ambiguity of the telephone keypad mapping into meaningful words or phrases.

Ideas: We can come up with various proposals; being lazy, and the official jester of Tamil computing community, I will try and make a simple combinatorial analysis for this problem without giving a specific solution.

Details: We can consider the factors of 247 = 19 x 13 which form a matrix of all letters representing the Tamil alphabets and we can count the partitions of this matrix onto the smaller keypad matrix. Following the roman letters of English alphabet consisting of 26 letters are fit easily into the 4 x 3 matrix on average of little less than 3 letters per key, we can also adopt a similar convention.

There are many ways to fit this large 19 x 13 matrix into a 4 x 3 matrix. Using simple combinatorial analysis we may show 19 letters can be divided into 4 groups as {19 \choose 4} (ignoring the assignment of letter groups to keys – 4! ways) along the rows. Similarly, we group along columns in {13 \choose 3} ways (and ignoring the 3! column permutation themselves). In all we have a total of {19 \choose 4}\times{13 \choose 3} = 1801371 key grouping combinations.

Clearly we have an alternate possibility of grouping the 19 x 13 matrix as a transposed matrix – i.e grouping dimension of 13 elements of Tamil alphabets into larger keypad dimension of 4, and assigning 19 elements along the fewer keypad dimension of 3. This alternative gives us {13 \choose 4}\times{19 \choose 3} = 692835

Together we have a total of 1,801,371. Thats roughly 1.8 million possibilities! Check them yourself by running this code:

. The real grand total of possible designs is to include the key permutations of the grouping we have already found, thereby adding a factor of 4! \times 3! = 144 to the previous 1.8 million so we get grand total of keypad mapping designs as 259,397,424 or 259 million keyboard combinations in all!

Conclusion: How are we going to find a suitable keypad mapping? Well we may need more heuristics and more cleverness to find the keypad mappings [a few definitely exist in this 259 million possibilities, which maximize a utility function.

So that leads us to the next problem: what is the utility of mapping a Tamil letters in the keypad ? Well – we don’t know apparently, so it doesn’t exist! This also ties into the philosophical question of what is the purpose of all software if not to support use.

சொல்திருத்தி – தெறிந்தவை 5

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

படம்1: மெக்சிகோவில் புனித குவடலூப்பே கன்னியின் படம் மிக பிரசித்தி பெற்றதாக அவர்கள் நம்புகின்றனர். எனக்கு பூண்டி மாதா, வேளங்கன்னி மாதா நினைவு. இடம்: பெர்க்கிலி, கலிபொனியா #மக்சிக்கோ #சுவர்ஓவியம் #ourladyofguadalupe

1 பிழைதிருத்தி அல்கோரிதம்

உள்ளீடு : உரையின் சொற்கள் ஒவ்வொன்றாக. இடம்-பொருள் விளங்குவதற்கு [context] நாம் சொல் இடம் பெரும் வரியை சூழலுக்கு உள்ளீடாக கொடுக்கலாம்.

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

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

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

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

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

 தமிழில் உள்ள இலக்கண விதிகளை பேரா. ராஜம் அவர்கள் letsgrammar.org  என்ற தளத்தில் வினைச்சொற்கள் எப்படி மருவும் என்ற விதிகளை மென்பொருளில் நிருவி அழகாக விளக்கியுள்ளார். இவற்றை ஆங்கிலத்தில் ‘word declension rules’ என்று சொல்வார்கள்.

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

2 பிழை வகைகள்

மேல் சொன்னபடி சொல்திருத்திகள் அவைகளின் நான்கு படினிலைகளில் ஏதேனும் ஒரு சொல்லை [உரையில் உள்ள] அந்தந்த வகுப்பில் உள்ளதாகவும் கண்டு, அதே சொல் தவராக உருவெடுத்திருந்தால் அது தவரான சொல் என்றும், அதனை நாம் சரிசெய்து – மாற்றங்களை பரிந்துரைக்கலாம். இதையே ‘wrong word error’ என்று சொல்லாம்.

கடைசியில், இவ்வாரு நான்கு படிகளில் நீக்கம் செய்யப்படாத சொற்களை நாம் அகராதியில் இல்லாத சொற்கள் என்று மட்டுமே கருதலாம். அதாவது இவற்றை ‘non-word error’ என்று கண்டறிந்து சொல்லாம். இவற்றில் நாம் மாற்று சொற்களை தரமுடியாது.

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

3. வழங்கல்

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

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

  1. தவரான சொற்களை சுட்டிக்காட்ட வேண்டும்
  2. தவரான சொற்களுக்கு மாற்றங்களை காட்ட வேண்டும்
  3. தவரான் சொல்லுக்கு பயனர் மாற்று தரவிருந்தால் அதனை சொல் பட்டியலில் சேர்த்துக்கொள்ள வேண்டும்; அதனை உரையிலும் மாற்றவேண்டும்.

கடைசியில் அனைத்து உள்ளீடுகளையும் ஒருங்கிணைத்து சரியான உரையை சொல்திருத்தி வழங்கும். 

சொல்திருத்தி – தெறிந்தவை 4

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

படம் 1: தமிழ் 99 – விசைப்பலகை [ஆப்பிள் iOS 10.13-இல் உள்ளபடி]

1 ஏன், எப்படி

விஷயத்துக்கு வாரோம். புதுசு என்ன ? அதாவது தட்டச்சு பிழைகள் என்பது தமிழில் ஒரு வழி மட்டும் வருகின்றன – விசைபலகை வழியாக (typographical errors originate from keyboard). இதன் காரணமாக, நாம் ‘பாம்பின்கால் பாம்பு அறியும்’ என்பது போல், இந்த சிக்கல் உறுவாகும் இடத்தின் விசைப்பலகையின் கட்டமைப்பின் வழியாக இதனைத் தீர்வு காண முடியும். இதனை ‘அருகிலேயே உள்ள விசைப் பிழை’ என்றும் [nearest neighbor key error] சொல்லாம்.

2 செயல்முரை அல்கோரிதம்

தற்சமயம் தமிழ் 99 என்ற விசைபலகையில் உள்ளீடு செய்வது என்ற கொள்வோம். இதில் உள்ளீட்டு பிழை என்பது ‘இ’ என்ற எழுத்தை இடும் சமயம், ‘அ’, ‘ஈ’, ‘உ’, ‘ஓ’,’ஔ’ என்று கைவிரல் தவரி சொடுக்கினால் ‘இன்பம்’ என்ற சொல் உள்ளீடு ‘அன்பம்’ அல்லது ‘உன்பம்’ என்றும் மாற்றமடைவதற்கு வாப்புண்டு.

சரி: இன்பம், தவறு: அன்பம், உன்பம்

இப்போது ஆவனத்தில் இப்படி ஒரு பிழை வந்தது ‘அன்பம்‘ அல்லது ‘உன்பம்’. இதனை நாம் சொல் உள்ளீட்டு பிழை என்ற இந்த செயல்முறை அல்கோரிதத்தின் வழி திருத்தலாம். இந்த தட்டச்சுபிழை எழுத்து பிழை வாய்ப்புகள் அனைத்தும் ஒரு மயக்க அணியில் (‘confusion matrix’ என்று சொல்லக்கூடிய) நிரலிக்கு குறிப்பிட்டிருக்கவேண்டும். இதனை படம் 2-இல் காட்டுகிறோன்.

படம் 2: தமிழ் 99 iOS ஆப்பிள் திரன்பேசியில் உள்ள விசைபலகை குழப்ப/மயக்க அணி

இதற்கு மேற்கண்ட அல்கோரிதத்தை இயக்கினால் 56 மாற்றங்களைத்தரும். இவற்றில் சரியான் சொற்களை மட்டும், குறைந்த திருத்த தொலைவில் இருப்பவற்றை மட்டும் நாம் ஏற்றுக் கொண்டால் அதில் ‘இன்பம்’ என்ற சரியான் சொல் இருக்கிரது! இதுவே தட்டச்சு பிழை சொல்திருத்தியின் இயக்கம். இதனைப் பற்றி பல அறிவியலாளர்களும் எழுதியுள்ளார்கள் என்பது புதிய செய்தி இல்லை என்பதையும் இங்கு பதிவு செய்வது கவணத்தில் கொள்ளவேண்டியவை.

  1. ஈன்பம்
  2. இன்பம்
  3. ஆன்பம்
  4. உன்பம்
  5. ஊன்பம்
  6. அன்பம்
  7. ஔன்பம்
  8. ஈற்பம்
  9. ஈப்பம்
  10. ஈக்பம்
  11. ஈட்பம்
  12. ஈம்பம்
  13. இற்பம்
  14. இப்பம்
  15. இக்பம்
  16. இட்பம்
  17. இம்பம்
  18. ஆற்பம்
  19. ஆப்பம்
  20. ஆக்பம்
  21. ஆட்பம்
  22. ஆம்பம்
  23. ஈன்னம்
  24. ஈன்மம்
  25. ஈன்றம்
  26. ஈன்லம்
  27. ஈன்கம்
  28. ஈன்ஙம்
  29. ஈன்டம்
  30. இன்னம்
  31. இன்மம்
  32. இன்றம்
  33. இன்லம்
  34. இன்கம்
  35. இன்ஙம்
  36. இன்டம்
  37. ஆன்னம்
  38. ஆன்மம்
  39. ஆன்றம்
  40. ஆன்லம்
  41. ஆன்கம்
  42. ஆன்ஙம்
  43. ஆன்டம்
  44. அன்னம்
  45. அன்மம்
  46. அன்றம்
  47. அன்லம்
  48. அன்கம்
  49. அன்ஙம்
  50. அன்டம்
  51. அன்ணம்
  52. அன்தம்
  53. அன்ரம்
  54. அன்ளம்
  55. அன்எம்
  56. அன்வம்

4 செயல்படுத்துதல், குறிப்புகள்

இந்த அல்கோரிதத்தின் நிரலாக்கம் இங்கு ஓப்பன் தமிழ் திரட்டில் சேர்க்கப்பட்டது. இதனை நீங்கள் முழுதேடலில் இடம் கொடுத்தால் 2398 விடைகள் கிடைக்கும் – அதாவது முழு 4-எழுத்து சொல்லின் 4-எழுத்து தொலைவில் உள்ள திருத்தங்கள் எல்லாவற்றையும் தேடுவதால் உண்டாகும் தகவல் வெள்ளப்பெருக்கு; சாதாரணமாக 1 அல்லது 2 எழுத்துப்பிழைகள் மட்டுமே உள்ளன என்பது அறிவியலாளர்கள் கணிப்பு. இதை நாம் செயல்படுத்தும் ‘tree pruning search‘ அல்கொரிதம் வகையினால் நாம் 56 மாற்றங்களுக்குள் மட்டுமே தேடல்களை நடத்தி இந்த தட்டச்சு கைவிரல் தவரான உள்ளீட்டிற்கு தீர்வு காணலாம்.

இதன் சிக்கல் அளவு [computational complexity] என்பது, ஒரு n-எழுத்து சொல் என்று கொண்டால், O(k1 x k2 x k3 … kn ) = O( kn ) என்று அதிக பட்சமாக இருக்கலாம் என்று [ஏதோ ஒரு k > 0 எண்ணால்] என்று நம்மால் காட்டமுடியும்.

சொல்திருத்தி – தெறிந்தவை 3

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

1 மேலோட்டமான சில குறிப்புகள்

சொல்திருத்தியில் பிழையான சொல் ஒன்றை முதலில் கண்டரிந்தபின், அதற்கு எப்படி ஒரு மாற்றை [என்ற ஒரு தோராயமான சொற்பிழை நீக்கப்பட்ட பொருத்தத்தை எப்படி] உருவாக்குவது ? இதற்கு தேவை திருத்தத் தொலைவு d.

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

மாற்றுச் சொல் = arg-min [ d[ச,த] ]   

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

2 தொலைவு

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

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

இதன் பொருள் என்ன ? இதன் அமைப்பு எப்படிபட்டது ? கணிதவியலில், தினசரி வாழ்வில் எப்படி தொலைவு நிர்னயிக்கப்படுகிரது என்து போல், ஒரே இடத்தில் உள்ள பொருளுக்கும் அதே பொருளுக்கும் தொலைவு எதுவும் இல்லை – 0. அதே மாதிரி ஒரே சொல்லிர்கும் அதே சொல்லின் நகலுக்கும் தொலைவு 0. பிரகு, உங்கள் வீட்டிற்கும் உங்கள் பக்கத்துவீட்டிற்கும் தொலைவு என்ன ? தொலைவு 1 அல்லது கூடுதலாகவே இருக்கவேண்டும் இல்லையா ? பக்கத்து வீட்டார்க்கும் உங்கள் வீட்டிற்கும் உள்ள தொலைவு, உங்கள் வீட்டிற்கும் அவர்களது வீட்டிற்கும் உள்ள தொலைவும் ஒரேபடியானதாக இருக்கும். d[a,b] = d[b,a] என்பது ‘commutativity‘ என்ற சார்பின் குணத்தை இந்த திருத்த தொலைவு சார்பும் கொண்டது. [அதையும் – ‘போத்திக்குனு படுத்துக்கலாம், படுத்துக்குனு போத்திக்கலாம்‘ என்று பல முதிய தமிழ் மைக்கில் ஜாக்சன்கள் சொல்லியதை நினைவு கொள்ளலாம்]. அதுவே பொது அறிதல். இதைப்பொல குணங்களைக்கொண்ட சார்புகளை கணிதவியலில் ‘metric‘ என்றும் சொல்வார்கள் – அதாவது அளக்கும் சார்பு.

3 சிரிய எடுத்துக்காட்டு

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

அகராதியில் உதாரனத்திற்கு 5 சொற்கள் இருக்கு என்று மட்டும் கொள்ளல்லாம்.

அகராதி A என்பதில் [‘அவிழ்’,’அவல்’,’அவள்’,’தவில்’,’தவள்’] என்ற் சொற்கள் இருக்கு என்றும் உள்ளிட்டு சொற்கள் ‘ஏவள்’, ‘இவல்’ என்று கொடுக்கபட்டது என்றும் கொள்வோம். இதற்கு என்ன மாற்றுக்கள் ?

பகுதி ஒன்றின் படி இந்த புள்ளியியல் குரைந்த பட்ச தெடலை பைத்தான் மொழியில் இப்படி எழுதலாம்:

இதனை இயக்கினால் நாம் பார்கக்கூடிய வெளியீடு இப்படி; அதாவது நமது சிரிய சொல்திருத்தி அல்கொரிதம் ‘ஏவள்’ என்பதை ‘அவள்’ என்றும், ‘இவல்’ என்பதை ‘அவல்’ என்றும் மாற்றாக பரிந்துரைக்கிரது. மேலும் கவனித்து பார்த்தால் ‘ஏவள்’ என்பது ‘தவள்’ என்பதற்கும் நெருக்கமான தொலைவில் உள்ளது ‘distance’ என்ற தொலைவு பட்டியலில் தெறியும்.

ஒப்பன் தமிழ் நிரல் மற்றும் இயக்கிய வெளிப்பாடு இங்கு.

மேலும் மற்ற அல்கோரிதங்களைப் பற்றி அடுத்த பதிவுகளில் மேலோட்டமாக பாற்கலாம்.

Google-இல் பொறியாளர் வேலை

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

படம்: கணினி பொறியாளர் வேலைக்கு தயாராக்கும் நேர்க்காணல் புத்தகங்கள்!

சரி.

இதுதாங்க – நம்ம திக்கி தினரி, Stack-Overflowவில் பார்த்து விடை காணுவதில்லாமல் அல்கோரிதங்களில் புலியாகவும் இருப்பது இவர்களின் முதன்மை சிறப்பு!

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

  1. ஒரு கணினி பொறியியல் பட்டம் பெற்றும், அதில் கணினி நிரல்கள் வடிவமைப்பதில் வித்தகராக தேற்சி பெருங்கள். இது இல்லட்டியும் பரவாயில்லை.
  2. சில பிரசித்தி பெற்ற வலைப்பூ இருக்கிரது – அவற்றையும் படியுங்கள்; 1 இணைப்பு, 2 இணைப்பு
  3. சில நேர்காணல் புத்தகங்களைப் படியுங்கள்; இவை
    1. ‘Cracking the coding interview,’ – Gayle Laakman இங்கு
    2. ‘Programming interviews exposed’ – John Morgan, et-al இங்கு
  4. சில நல்ல கணினி செயல்முறை புத்தகங்கள் பற்றியும் படியுங்கள்; இவை பற்றி முதல், இரண்டாம் கட்டுரைகள் எற்கணவே இங்கும் [முதல்], இங்கும் [இரண்டு].

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

ஆழக்கற்றல் – Deep Learning – மின் புத்தகம்

Michael Nielsen, a well known computer scientist and Quantum Computing expert [author of famous: ‘Introduction to Quantum Computation and Quantum Information,’ with Isaac Chuang, has written a nice book in expository detail about Deep Learning.

Front Cover
Book: “Quantum Computation and Quantum Information” from authors Michael Nielsen, Isaac Chuang. (C) 2000 Cambridge University Press. Google Books URL here

Nielsen’s new book, Neural networks and deep learning here, has taken a more modern approach to (web) publishing in releasing the whole book in Creative Commons Non-Commercial Share Alike [NC-SA] license.

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

செயற்கை நரம்புகளின் பினைப்புகள் [‘Artificial Neural Networks’] மூலம் எப்படி கையெழுத்து வழி எண்களை உணரலாம் ? வழிகள் கூறுகிறார் திரு. நீல்சன் Neural networks and deep learning என்ற புத்தகத்தில்

பொறியாளர்கள் கவணம்! இதனை தமிழாக்கம் செய்யலாம் – முனைவீர்களா?