Open-Tamil user commands

Lot of times we have felt the problem with open-tamil : it has many utilities, but none of them are usually available as functions or commands out of the box. It has very much been a developer tool, and not a user or informed-layperson tool.

A quick fix is to add the example Python scripts to the default install paths along with open-tamil installation [which is still simple as ‘$ pip install –upgrade open-tamil‘].

1. tamilphonetic - convert EN input to Tamil text
2. tamilwordfilter - filter Tamil input only from all input text data
3. tamilurlfilter - filter Tamil text from the input website data
4. tamiltscii2utf8 - convert encoding from TSCII to UTF-8 for input file
5. tamilwordgrid - generate a crossword from Tamil input text and write to output.html file
6. tamilwordcount - like UNIX wc program but for Tamil

All these functions will be made available in version 0.7 of open-tamil to be released soon. Currently these functions have landed in the development branch through the commit 02810461bef216df56b10ebf09818b94dfc75574

The next step should be to really bundle these tools into a binary executable for various platforms. Also to note, the function tamilwordcount was contributed by a new member to the Open-Tamil group, Mr. Surendhar. Thanks much, and welcome!


Chennai, India

open-tamil on web

Today, you are welcome to play with open-tamil API via web at

Generating multiplication tables via Open-Tamil APIs’:

This is collective work of our team underlying the website (written in Django+Python) highlighting various aspects of open-tamil like transliteration, numeral generation, encoding converters, spell checker among other things. At this time I hope to keep the website running through most of this year, and add features as git-repo gets updated.

Thanks to Mr. Syed Abuthahir, many months ago, in winter of 2017, he has developed an interface for open-tamil on the web and shared with us under GNU Affero GPL terms. Later, we is added as part of main open-tamil as well.

Open-Tamil moves forward; come join us!


Classifying Tamil words – part 1


One of problems faced when building a Tamil spell checker, albeit somewhat marginal, can be phrased as follows:

Given a series of Tamil alphabets, how do you decide if the letters are true Tamil word (even out of dictionary) or if it is a transliterated English word ?

e.g. Between the words, ‘உகந்த’ vs ‘கம்புயுடர்’ can you decide which is true Tamil word and which is transliterated ?


This is somewhat simple with help of a neural network; given sufficient “features” and “training data” we can train some of these neural networks easily. With current interest in this area, tools are available to make this task quite easy – any of Pandas, Keras, PyTorch and Tensorflow may suffice.

Generally, the only thing you need to know about Artificial Intelligence (AI) is that machines can be trained to do tasks based on two distinctive learning processes:

  1. Regression,
  2. Classification

Read more at the Wikipedia – the current “problem” is a classification task.


Naturally for task of classifying a word, we may take features as following:

  1. Word length
  2. Are all characters unique ?
  3. Number of repeated characters ?
  4. Vowels count, Consonant count
    1. In Tamil this information is stored as (Kuril, Nedil, Ayudham) and (Vallinam, Mellinam and Idayinam)
  5. Is word palindrome ?
  6. We can add bigram data as features as next step

Basically this task can be achieved with new code checked into Open-Tamil 0.7 (dev version) called ‘tamil.utf8.classify_letter

Screen Shot 2017-12-17 at 1.03.03 PM.png

Data sets

To make data sets we can use Tamil VU dictionary as a list of valid Tamil words (label 1); next we can use a transliterated list of words from English into Tamil as list of invalid Tamil words (label 0).

Using a 1, 0 labeled data, we may use part of this combined data for training the neural network with gradient descent algorithm or any other method for building a supervised learning model.

Building Transliterated Data

Using the Python code below and the data file from open-tamil repository you can build the code and run it,

def jaffna_transliterate(eng_string):
  tamil_tx = algorithm.Iterative.transliterate(jaffna.Transliteration.table,eng_string)
  return tamil_tx

def azhagi_transliterate(eng_string):
  tamil_tx = algorithm.Iterative.transliterate(azhagi.Transliteration.table,eng_string)
  return tamil_tx

def combinational_transliterate(eng_string):
  tamil_tx = algorithm.Iterative.transliterate(combinational.Transliteration.table,eng_string)
  return tamil_tx

# 3 forms of Tamil transliteration for English word
jfile ='english_dictionary_words.jaffna','w','utf-8')
cfile ='english_dictionary_words.combinational','w','utf-8')
afile ='english_dictionary_words.azhagi','w','utf-8')
with'english_dictionary_words.txt','r') as engf:
for idx,w in enumerate(engf.readlines()):
  w = w.strip()
  if len(w) < 1:

to get the following data files (left pane shows ‘Jaffna’ transliteration standard, while the right pane shows the source English word list); full gist on GitHub at this link

Screen Shot 2017-12-17 at 1.47.42 PM.png

In the next blog post I will share the details of training the neural network and building this classifier. Stay tuned!


திருத்த திருத்த … பிழைகள் ஒழிந்திட – spellchecker

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

இந்த பதிவில் எப்படி மயங்கொலி பிழைகளை சொல்திருத்தியில் நடைமுறைப்படுத்தி open-tamil-இல் செயல்படுத்துவது என்றும், இதன் நல்ல விளைவுகளையும் பார்க்கலாம்.



“தமிழ் திருத்தி” என்ற பெயரில் இந்த (web-based) வலை வழி இடைமுகம் காணலாம் [படம் 1].

தமிழ் திருத்தியில் “பளம்” என்றும் மற்ற இரண்டு சொற்களை (“காதள்”, “எலிதில்”) உள்ளீடு செய்து, சறிபார்க்க சொல்லலாம்.

விடைகளும் மாற்றங்களும் இங்கே! தவறான சொற்கள் சிகப்பு நிர கோட்டில் சுட்டி காட்டப்படும். இதனை விரைவில் open-tamil-இல் காணலாம்.

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


படம் 2: முதல் சொல் மாற்றம் பழம், கனி
படம் 3: இரண்டாம் சொல் “காதல்”
படம் 4: மூன்றாம் சொல் “எளிதில்”

மாலை பொழுதின் மயக்கமென்ன

படம்: ஜூலை மலர், ஆண்டிற்கு ஒருமுறை மலரும். உபாயம், எனது தந்தை, வேளாண் வல்லுநர், திரு. அண்ணாமலை.

“தமிழ் தெரியுமா?” என்று நிறையபேர் ஒருவரை கேட்பது, இணையத்தின் தூரத்தில்,  பழக்கமான நாம் பார்க்கும் ஒரு விஷயம். காரணம் அடிக்கடி சிலரது சொற்களில் தலையெடுக்கும் சொற்பிழை. இவற்றை தவிர்க்க அவர்களுக்கு தேவை, பிழைகளை தடுக்கும்/திருத்தும் சொல்திருத்தி – spell checker – மூலம் ஒரு கட்டுரையை சோதித்தால். பல ஆண்டுகள் தமிழ் பயின்ற பொலிவு லேசுலே நமக்கும் கிடைக்கும். இந்த கட்டுரையும் அப்படி ஒரு (வளர்ச்சி நிலையில் உள்ள சொற்பிழை திருத்தியின் வாயில் சோதிக்கப்பட்டே பரிசுரம் செய்யப்பட்டது).

மாலை பொழுதில் மயக்கமென்ன ? தமிழில் உள்ள மயங்கொலி எழுத்துகள்  நான்கு வரிசையில் அமைக்கலாம்,

  • , , வரிசை.
  • , வரிசை.
  • , , வரிசை.
  • , , வரிசை.

சொல்திருத்தியில் கணினி நிரல் செய்யவேண்டியது இதுவே:

  1. உள்ளீடு கொடுக்கபட்ட சொல் சரியானதா, அல்லது தவறானதா ?
  2. தவறான சொல் என்ற பட்சத்தில் அதன் மாற்றங்கள் என்னென்ன ?

முதல் படியை எளிதாக ஒரு கையகராதியை கொண்டு செயல்படுத்தலாம். இதனை ஓபன்-தமிழ் (open-tamil) solthiruthi தொகுப்பில் Tamil VU மின் அகராதியை கொண்டு செயல்படுத்தியுள்ளோம். சரியான சொற்கள், அதாவது வேர் எடுத்த, புணர்ச்சி மற்றும் சாந்தி பிரிக்கப்பட்ட சொற்கள் அனைத்தும்  சராசரி மின்அகராதியில் காணலாம். இதுவே எளிதான படி.

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

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

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

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

வளர்ச்சி நிலையில் உள்ள, தற்போது மென்பொருள் வடிவமைப்பில் உள்ள சொல்திருத்தி ஓபன்-தமிழ் தொகுப்பில் காணலாம்: [எச்சரிக்கை: இது இன்னும் பொது பயன்பாட்டிற்கு பொருத்தமானதல்ல]

muthu@brightone:~/devel/open-tamil$ ./ -i
>> பளம்
சொல் “பளம்” மாற்றங்கள்
(0) பம், (1) பளகு, (2) உளம், (3) பள், (4) அளம்
, (5) ஆளம், (6) பழம்

-முத்து அண்ணாமலை

கலிஃபோர்னியா, அமெரிக்கா.

Open-Tamil and Ezhil updates (2016)

Today we are releasing updates to two packages maintained by Ezhil Language Foundation;

  1. open-tamil v0.65
    • open-tamil package contains minor bug fixes and solid performance on Python 2 and Python 3.
    • pip install –upgrade open-tamil
  2. ezhil-v0.82
    • Fix some issues for Python 3 installation from the previous release
    • pip install –upgrade ezhil

Both these packages maybe downloaded from PyPi (Python Package Index) via ‘pip’ command.

Thanks very much to the original contributors, bug reporters, and Tamil open-source software (TOSS) enthusiasts.


தமிழ் இணையம் மாநாடு (உத்தமம்) 2016

எங்கள் ஓபன்-தமிழ் (open-tamil github) நிரல் திரட்டின் ஆய்வு கட்டுரை. இது இரண்டாவது (2014 அடுத்து) எங்களால் வெளியிடப்பட்ட கட்டுரை.

“powepoint” slides கீழே கனவும்! இதனை எங்கள் குழு நண்பர் திரு. சீனிவாசன் மாநாட்டில் முன்வைத்து செப். 9-ஆம் தேதி பேசினார்.

வாழ்க மின் தமிழ்.


‘மிலுவாக்கீ’ எந்த அமெரிக்கா மாநிலத்தில் உள்ளது?

இந்த கட்டுரை 2015-இல் எழுதியது; மாற்றங்களின்றி இங்கே;

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

பாஸ்டன் அமெரிக்கா ஜுலை 10, 2015

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

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

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

1. குறியீடு முறைகள் சற்றே சிக்கலாக இருப்பதால் தமிழ் சார்ந்த தமிழ் உரை ஆலோசனை /ஆய்வு நிரல்கள் எழுதுவது ஒரு சிக்கலாக உள்ளது.

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

3. நம் தமிழ் செயலிகள், Siri, Cortana, Google Voice போன்ற சேவைகளைப் பயன்படுத்தி உருவாக்கிய நிரல்களை விட ஒரு படி குறைவாகவே தோன்றும்.

4. தமிழ்மொழிச்செயலிகள் உருவாக்க ஒரு நிரல்தொகுப்பு (Standard Library) இல்லாதது ஒரு பயிலும் மாணவருக்கு தமிழ்மொழி செயலி உருவாக்கல் கடினமாக்குகிறது.

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

கட்டுரை அமைப்பு

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

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

முடிவாக எனது முக்கோண திட்டத்தை முன் வைக்கிறேன்.

எழில் தமிழ் நிரலாக்கல் மொழி

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

1. எழில் மொழி திறமூல மென்பொருள் இணையம் வழி கற்றிடலாம் மற்றும்

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

3. கணிமை மூதாதையர் அலன் டியூரிங் அவரின் வழி டியூரிங் வரையறைக்குள் முழுமையாக (Turning complete) உள்ளது.

தமிழ் மட்டும் அறிந்த மாணவர்கள் கணிமை துறையில் பின்தங்கியதாக இருக்க வேண்டாம்?. அந்த நிரலாக்கல் திறன் இன்று எழில் தமிழ் வழியாகவும் ஆங்கிலம் சார்ந்ததாக உள்ளது. கையில் சொற்கள் இருப்பினும் தமிழில் முதன்மையாக நிரல் எழுத வசதியில்லை. 2007இல் தோற்றம் எடுத்தாலும் எனது முதுநிலைப் படிப்பின் காரணமாக 2009 முதல் 2012 ஆண்டுகள் வரை அதிகம் மேம்படுத்தப்படாமல் இருந்தது. திரும்ப 2013 முதல் இந்த திட்டம் மறுபிறப்பேடுத்து இணையம் வழி வழங்கப்பட்டது.

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

1. ஆங்கிலத்தில் இல்லாத சில நிரலாக்க மொழிசார்ந்த குறியீடு சார்ந்த சிக்கல்கள்.

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

3. மேலும் கூறினால் தொழில் நுட்பத்தில் முதலீடு செய்யவும்

4. இலாபம் பார்க்கும் வரை தாக்குப்பிடிக்க பண வசதி செய்ய யாரும் இல்லை.

5. அரசாங்கத்தின் உதவி பெறும் தனியார் நிறுவனங்கள் மட்டும் உள்ளன.

6. நாம் எப்படி அடுத்த கட்ட இளைஞர்களை தமிழ் பொறியியலில் தயார் செய்யலாம்?.

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

தமிழ் இலக்கிய தோட்டம் (..தோ) ஆண்டு விழா டொரன்டோ, கனடா இந்த ஆண்டு ஜுன் 13ஆம் நாள் நடந்தது. 2014–ஆம் ஆண்டு தமிழ் கணிமைக்கான விருதை த..தோ. கலச்சுவடு அறக்கட்டளையின் சார்பில் நான் உருவாக்கிய எழில் என்ற நிரலாக்க மொழி விருது பெற்றது மிகுந்த மிகழ்ச்சி. INFITT, ..தோ போன்ற அறக்கட்டளைகளைத் தொடர்ந்து சிறப்பாக செயல்பட வேண்டும்.

சிலோன் பெயர் கொடுத்த ஆங்கில சொல் ‘serendip’ – `serendipity’- என்று தேட அதிர்ஷ்டமாய் வந்த த..பே.தா அழைப்பு மற்றும் விருது என் வாழ்வில் ஒரு மையில் கல் ஆக அமைந்தது.

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

நேரம் படிக்கும் கெடிகாரம்

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


இதற்கு காரணங்கள் இரண்டு

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

2. இதை வைத்து ஒரு சில எண், சொல் (.கா. 100, 1000 – நூறு ஆயிரம் இவற்றிற்கு மட்டும் ஆண், பெண் குரலில் ஒலி வடிவ கோப்புகளை சேமிக்கவும்.

இதற்கு 63 ஒலி வடிவு குரல் கோப்புகள் மட்டும் தேவைப்படுகின்றது. இதை மட்டும் வைத்து எந்த எண் ஆனாலும் அதை ஒலி வடிவில் தானியங்கியாக கணினி வழியில் ஒலியாக்கலாம்.

இதை வைத்து 6 முதல் 10,000 கோடி வரை முழு எண்.1729 ஆனாலும் தசம எண்.3.14159 ஆனாலும் அழகாக ஆண் குரலிலோ பெண் குரலிலோ ஒலி வடிவமைக்கலாம். இதன் சான்றுகளை இந்த சுட்டியின் வழி கேட்டிடலாம்.

குரல் கிடைத்தது.

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

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

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

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

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

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

மின் ஊடக கணினித் தமிழ் – குறுகிய வரலாறு

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

1980 – முதல் 2000- வர எழுத்துரு வகை குறியீட்டில் (font based encoding) சிக்கியும், இதன் சிதைவு பிடியில் இருந்து தப்பமுடியாமல் இருந்த தருணம் இந்த தேக்க நிலையில் இருந்து பல தன்னார்வலர், தொழிலதிபர் மற்றும் சில அரசு வல்லுநர் குழுக்கள் முயற்சியால் குறியீடும் (ஒருங்குறி), விசைப் பலகையும் (தமிழ் -99) தரம் செய்யப்பட்டது.

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

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

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

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

ஆப்பிளும் முக்கனியும்

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

மிலுவாக்கீ எந்த அமெரிக்க மாநிலத்தில் உள்ளது?

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

ஒரு வீட்டுப் படமாக இந்தக் கேள்வியை கூகிள் வழி கேட்டால் ஆங்கிலத்தில் புள்ளிவிவரத்தோ `விஸ்கான்சின்’ என்று சிறப்பாக தமிழ் தற்போது இந்த நிலையில் இல்லாவிட்டாலும் விரைவில் இந்த இலக்கை நோக்கி நம்மில் ஒருவர் முயல்வார்கள். இது நீங்களாவும் இருக்கலாம்.

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

முன்னோக்கு பலமான அஸ்திவாரம்

நூறு மாடிக்கட்டடம் ஒன்றை கனவு கண்டு எழுப்புவது எப்படி? அதற்கு ஒரு நல்ல திட்டம், ஒரு பலமான அஸ்திவாரம் வடிவமைத்துத் தொடங்க வேண்டும்.

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

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

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

முக்கோண திட்டம்

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

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

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

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


Java and Open-Tamil : Write Tamil Applications using Java

Java and Open-Tamil : Write Tamil Applications using Java

I’m sharing a small example; you can download (from Github) the whole Java package and include it in your desktop, mobile or web app. For Free! Example gist follows.

// include the sources for the com/tamil package from
import java.util.Arrays;
import java.util.List;
import java.util.HashMap;
import com.tamil.utf8;
import com.tamil.Numeral;
public class utf8Demo {
public static void main(String [] args) {
/* Example 1: Get length of a Tamil word */
String inputWord = "எழில்",inputWord2 = "கட்டளை";
HashMap<String,Object> actual = utf8.get_length(inputWord);
System.out.println("Length of word "+ inputWord+ "= "+ actual.get("length") );
/* Example 2: Get number of Tamil letters */
//List<String> expected = Arrays.asList(new String [] {"எ","ழி","ல்"} );
StringBuffer actual = new StringBuffer();
for(String t : utf8.get_letters(inputWord)) {
actual.append( t );
if ( actual.toString() != inputWord)
throw new Exception("this will never happen because open-tamil parsed the words for you!");
/* Example 3: Convert number to a numeral */
double number = 1011.0;
/// you should see String numeral = "ஓர் ஆயிரத்தி பதினொன்று";
System.out.println("running -> "+number);
String numeral = Numeral.num2tamilstr(number).getNumeral();

view raw

hosted with ❤ by GitHub