தமிழ் கணிமையில் பல கட்டுரைகள் வருகின்றன – அவற்றில் சில கட்டுரைகள் ஒரு முற்றிலும் வேறுபட்ட சிந்தனைகளை முன்வைக்கும்; பல கட்டுரைகள் முன்னோர் சென்றவழியில் எளிதாகவும், சிறப்பாகவும், சிக்கனமாகவும் (கணினியளவில்) மற்றும் பொருளாதார, நுகர்வோர் அணுகுமுறை என்றபடியாக உள்ள புதுமைகளை விளக்கும்.
இந்த சில கட்டுரைகள் செல்லாத இடத்திற்கு, முற்றிலும் வேறுபட்ட சிந்தனைகளை முன்வைப்பவைகளில் சிலவற்றைப்பற்றி இன்று பார்க்கலாம்.
படம் 1: எழில் மொழி திருத்தியில் உள்ள தமிழ்-99 விசைப்பலகை.
தமிழ்-99 விசைபலகைக்கு ஒரு மேம்பாடு என்ற படியாக 2004-இல் நடந்த தமிழ் கணிமை மாநாட்டில் இந்த (clj-thamil படைத்த இளங்கோ சேரன் குழுவினரால்) கட்டுரை “Optimization of Thamil Phonetic Keyboard.” இதில் ஆசிரியர்கள் கூறியதாவது, தமிழ்-99 விசையில் மெய்களுக்கு பதில் அகர-மெய்களை விசைப்பலகையில் பொருத்தினால் சிக்கனமாக (விசை தட்டச்சு செய்யும் எண்ணிக்கையில் குறைவாக) ஒரு குறிப்பிட்ட உரையை இந்த மாற்று விசைப்பலகையில் உள்ளீடு செய்யலாம் என்று கண்டெடுத்தார்கள். ஆனால் இதை உள்வாங்கி எதுவும் செய்யவில்லை.
படம் 2: iTamil – என்ற தமிழ் எழுத்துரு மாற்றம் பற்றிய தடைசெய்யப்பட்ட 2016 கட்டுரை. படம்: இந்து நாளிதழ்
அடுத்த கட்டுரைக்கு மேர்கோள் என்க்கு கிடைக்கவில்லை, KaReFo-குழுவினரால் “iTamil,” (2016) ; ஆனால் அதன் சாராம்சமாவது தமிழின் உயிமெய் எழுத்து வடிவத்தை முற்றிலுமாக மாற்றியமைக்க ஒரு ஆய்வு பரிந்துரை சமர்ப்பிக்கப்பட்டது. ஆனால் இந்த கட்டுரை 2016-ஆம் ஆண்டு நடந்த தமிழ் கணிமை மா நாட்டில் வாசிப்பு பெற்றாலும் அது பின்னர் நீக்கம் ஆயிற்று – காரணம் இதனை ஆய்வளவில் கூட தமிழ் சமுகம் ஏற்கக்கூடாது என்றோரு தரப்பின் வாதம் வெற்றி பெற்றதன் காரணம். இந்த சர்ச்சைக்கும் அப்பால் அவர்கள் சொன்ன கோரிக்கை, ஆய்வுகளை பார்க்க இந்த செய்தி உபயோகரமாக வரலாற்று சின்னமாக அமைகிறது.
ஆய்வுக்களத்தில் சிந்திக்கலாம்தானே! அதை நடைமுறைப்படுத்தவேண்டுமானால்தானே மேலும்/கூடுதல் விவாதங்கள் தேவை? சிந்தனையே தடைசெய்யப்படவேண்டுமெனில் தமிழருக்கும் தலிபனார்களுக்கும் வித்தியசமென்ன?
“”ஓர் ஆயிரம் கழித்தல் ஐந்து பெருக்கல் (ஒன்பது கூட்டல் ஒன்று)” என்பதை எப்படி 950 என்று கணினி புரிந்து கொள்ளும் ? Open-Tamil வழியாகத்தான் – வாங்க இதை பார்க்கலாம்.
Open-Tamil is a free and open-source Tamil Text / Natural Language Processing library (NLP) written in Python, and developed since early 2010s. This blog post is cover our gaps in marketing (on our part, ofcourse) Open-Tamil regarding the capabilities and features presented by Open-Tamil python library. Open-Tamil Python package is distributed under MIT license.
Documentation
Open-Tamil project is currently in the release v0.96 – the Python package can be found here. Documentation from Sphinx for Open-Tamil package can be found on Tamilpesu.us site at this URL.
Installation
Open-Tamil can be installed by running the following command from your terminal with root privileges on Python3. You cannot use current/later versions of Open-Tamil with v2.x – please refer to older releases on pypi page which are still available to you.
$ pip install –upgrade open-tamil>=0.96
If you want to install locally, you can run this command instead,
$ pip install –upgrade open-tamil>=0.96 –user
Python Modules
Open-Tamil provides the following Python modules with various classess and functionalities. You can learn more about them from browsing our documentation.
In summary we can list them as follows,
Module
Functionality
1
tamil
Tamil tokenization, word ordering, encoding converters, numerals, text summarizer
Various examples and utilities in Open-Tamil package; nifty code tips and tricks
Open-Tamil source code examples like numeral to audio generation, ngram generation, corpus analysis etc. see link here.
Calculator Example
One fun use of the API is to build interactive websites like tamilpesu.us but a more interesting use is to build a text based calculator taking inputs in form of Tamil numerals with Tamil words for arithmetic operations like add, subtract, multiply and divide.
“”ஓர் ஆயிரம் கழித்தல் ஐந்து பெருக்கல் (ஒன்பது கூட்டல் ஒன்று)” என்பதை எப்படி 950 என்று கணினி புரிந்து கொள்ளும் ?
Using Open-Tamil we can parse the numerals back to numbers and form a simple mathematical infix expression;
1000 – 5 * ( 9 + 1 )
then use Python eval() we can use Python parser and evaluator to build the expression tree and compute the post-order traversal and execute the expression to receive the result, which in our case is not surprisingly,
950.
Well, all this can be done in less than 30 lines of code using Open-Tamil; if you don’t believe me check-out the code here.
Credits
A large number of individuals have contributed their time and effort over the years in many capacities to the project; should you wish to acknowledge this project in your research, products you can choose to cite any of our published works of relevance to you; our publications are listed here.
As always if you wish to report bugs, or share your comments please write an email to me ezhillang AT gmail DOT com or file an issue at github.
சமிபத்தில் Yahoo குழுமங்கள் சேவை நிறுத்தப்படுவதாலும் அங்கு உள்ள பல வரலாற்று நோக்கில் சுவாரசியமான உரையாடல்கள், முக்கியமான கருத்துக்கள், அனைத்தையும் ஆவணப்படுத்தி செய்வது முக்கியமாக அமைந்ததுள்ளது.
இதை அணுகுவதில் 1980-90-களில் இருந்த தமிழ் எழுத்துரு வழி உள்ள குறியீடுகளும் [font-based encoding] அதன்பால் உள்ள சிக்கல்களும் நிற்கின்றன. இவற்றை தரப்படுத்தி தமிழில் ஒருங்குறி [unicode] வழியில் சேமித்தால் இந்த தரவுகளை முறைப்படி சேமித்தும், பரிசோதித்தும் பார்க்கலாம் என்பது இலக்கு.
முதலில் இதனை நண்பர் ஒருவரிடம் வழி இந்த செய்தி வந்தது- அதில் உள்ள இந்த மாதிரி உரையை டுவிட்டரில் இட்டேன். மேலும் சற்று சிறிய பரிசோதனையில்சட்டென்று குறியீடை அடையாளம் காண முடிந்தது.இது ஒரு ஓப்பன் தமிழ் மற்றும் எங்களது பங்களிபாளர்களின் மொத்த ஒரு வெற்றி என்றும் தோன்றுகிறது.
ஓப்பன்-தமிழ் தொகுப்பில் இந்த வேலையை பரிசோதித்து பார்த்தால் கீழ்கண்டபடி நிரல் இடலாம்:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
மேலும் தமிழில் இயங்கும் பலர் தங்களது வேலைகளில் உள்ள தமிழ் செயலிகளும், அதன் திறன்களில் இதே போன்ற சிக்கல்களை தீர்வடையலாம் என்று தகவல் தெறிவித்தனர்; அவையாவன:
சென்ற பதிவை எழுதியபின் சிறிது நாடகளில் சொல்வனம் தளத்தில் இருந்து எனக்கு அவர்களின் தரவு கிடைத்தது. இதனை MySQL வடிவில் உருவாக்கி மேலும் அதனை ODBC போன்ற அனுகுமுரைகளின் வகையால் Python நிரல் மூலம் இந்த இதழின் வழி வந்த கட்டுரைகளை மொழியியல் ஆய்விற்கு கொண்டுவரலாம். ஆனால் இதனை செய்ய முதல்படியை கூட இன்னும் தாண்டவில்லை. MySQL மரு நிறுவுதல் சற்று சிக்கலாக உள்ளது.
இந்த பதிவில் விட்டர்பீ அல்கோரிதம் (Viterbi algorithm) என்பதனை கொண்டு எப்படி சொற்பிழைகளை திருத்தலாம் என்பதை மேலோட்டமாக பார்க்கலாம். முழுவிவரங்கள் இங்கே. விட்டர்பீ அல்கோரிதம் என்பது தகவல்தொழில்னுட்பத்தில் பிழைகளை நீக்கும் வண்ணம் வடிவமைக்கப்பட்ட ஒரு மிக முக்கியமான உத்தி/கண்டுபிடிப்பு. இது ஒரு குறியீட்டின் (code), பிழைகளை அந்த குறியீடு எப்படி உருவானது என்ற state-transition-table கொண்டு பிழைகளை நீக்கும்.
இதனை எப்படி மொழியில் சொற்பிழைகளை திருத்த பயன்படுத்துவது ? இதோ இப்படி – இந்த முழு கட்டுரையை பார்த்து தான் நானும் மயங்கினேன். அதாவது மொழியின் 1-கிராம், 2-கிராம், 3-கிராம் ஒலி எண்களின் மாற்றங்கள் புள்ளிவிவரங்களை (ngram state-transition tables) கொண்டு மட்டுமே இதனை சாதிக்க முடியும் என்று Etsy பொறியாளர்கள் சொல்லினார்கள் – அதை நானும் ஒப்புக்கொள்கின்றேன்.
இது சற்று தகவல் தொழில்நுட்பத்தின் சாஷ்டாங்க வழிகளினில் இல்லாவிட்டாலும் மொழியின் கட்டமைப்பை இலக்கணம் வழி இல்லாமல் புள்ளிவிவரத்தின் வாயிலாக எடுத்துக்கொள்ளலாம்.
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 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 (ignoring the assignment of letter groups to keys – ways) along the rows. Similarly, we group along columns in ways (and ignoring the 3! column permutation themselves). In all we have a total of 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
Together we have a total of 1,801,371. Thats roughly 1.8 million possibilities! Check them yourself by running this code:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
. 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 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.
மொழியில் ஆக்க சக்திகளை தோராயமாக, தொல்கப்பியம், இலக்கணம் எல்லாம் தெறியாமலேயே ஒரு மொழியின் மாதிரியில் இருந்து (புள்ளியியல் வழி உருவாக்கியது) சரியான அல்லது பிழையான சொல், வாக்கியம், சொல் அமையும் இடம், இடம்-பொருள் ஒற்றுமை போன்றவற்றை நாம் சரியாக சொல்லலாம். அதற்கு மொழிமாதிரி கேட்குது நம்ம கணினி.
பொது தமிழ் தரவுகள் ஆகியவை
மதுரை திட்டம்
தமிழ் விக்கிப்பீடியா
freetamilebooks மின் புத்தக தரவு
பிரபல நாளிதள், வார இதள், வலை இதள் போன்றவற்றின் தரவு.
இவை ஓவ்வொன்றும் ஒவ்வொரு கால கட்ட தமிழை, அல்லது பல கால கட்ட தமிழ் வழக்கை கொண்டவையாக அமைகின்றன. மென்மேலும், ஒவ்வொன்றும் வெவ்வேறு ‘header information’ மேலான்மை தகவல்களினுள் பொருத்தப்பட்டருக்கின்றன.
இதனை நாம் சரியாக புரிந்து கொண்டதன் பின்னரே ஒரு மொழி மாதிரியை உருவாக்கலாம். மொழி மாதிரி என்பது நிறுத்த சொற்கள் நீக்கப்பட்ட சொல் தரவினில் இருந்து மட்டுமே உருவாக்கியதாகவும், முழுக்க முழுக்க தேவையற்ற மேலான்மை தகவல்கள் இல்லாமல் இருக்க வேண்டும். இவை இருந்தால் சிறப்பாக ஒரு மொழி மாதிரியை தயார் செய்யலாம்; இதனை எனது டுவீட்டில் பார்க்கலாம்:
ஏற்கனவே செய்த வேலைகளில் இந்த குறைபாடுகள் இருந்திருக்கின்றன; இப்போது தான் தெறிந்துகொண்டேன்.
சமீபத்தில் இந்த சிக்கலில் மாட்டினேன்: சரியான தொடக்க நிலையில் இருந்து தொடங்குவது அவசியம். நான் விக்கிபீடியா தரவை அப்படியே header-information உடன் எதையும் துப்புரவு செய்யாமல் 13 இலட்சம் சொற்களை வரிசைடுத்தினேன். எல்லாம் பிரயோஜனத்துக்கிலை.
தவராக வரிசைபடுத்திய மேலான்மை சொற்கள்.
நக்கீரண் வேலை பார்க்க முயன்றால் கொஞ்சமாவது பயபக்தி வேண்டாமா ?
கட்டுரைத் தொடரில் இந்த பதிவில் மேலோட்டமான சொல்திருத்தியின் பிழைதிருத்தம் அல்கோரிதம் எப்படி கட்டமைக்கப்பட்டிருக்கு என்றும் பார்க்கலாம்.
படம்1: மெக்சிகோவில் புனித குவடலூப்பே கன்னியின் படம் மிக பிரசித்தி பெற்றதாக அவர்கள் நம்புகின்றனர். எனக்கு பூண்டி மாதா, வேளங்கன்னி மாதா நினைவு. இடம்: பெர்க்கிலி, கலிபொனியா #மக்சிக்கோ#சுவர்ஓவியம்#ourladyofguadalupe
1 பிழைதிருத்தி அல்கோரிதம்
உள்ளீடு : உரையின் சொற்கள் ஒவ்வொன்றாக. இடம்-பொருள் விளங்குவதற்கு [context] நாம் சொல் இடம் பெரும் வரியை சூழலுக்கு உள்ளீடாக கொடுக்கலாம்.
வெளியீடு: தவரான சொற்களின் பட்டியல், மற்றும் இவ்வாறு பிழையான் சொற்களின் வாயில் என்ன வேற்று சொல்லை மற்றாக இணைக்கலாம் என்ற பட்டியல்.
இப்படிப்பட்ட ஒரு அல்கோரிதத்தை செயல்ப்படுத்த நமக்கு ஒரு சொல்பட்டியல் தேவை; இதை நாம் அகராதி என்று வழக்கு மாரி சொல்வோம். அதாவது நமக்கு சொல் மற்றும் அதன் சரியான எழுத்து வடிவம் மற்றுமே தேவை – சொல்லின் பொருள் முதலில் தேவை இல்லை. ஆகையால் இந்த சொல் பட்டியல் மட்டுமே அகராதி என்று நம்மால் கருதப்படும்.
முதல் படியாக உரையில் உள்ள சொற்கள் நேரடியே பட்டியலில் காணப்பட்டால் இதனை நாம் சரியான சொல் என்றும் அவற்றை நீக்கி விடலாம். எ.கா. “அவன் வாத்து முட்டை விருப்பம் கொண்டவளை மட்டுமே சமைக்க தேர்ந்தெடுப்பதாக சீனாவில் அறிவித்திருந்தான்” என்ற 10 சொல் வாக்கியத்தில் ‘அவன்’, ‘வத்து’, ‘முட்டை’, ‘விருப்பம்’, என்ற சொற்கள் சரியாக சொல் பட்டியலில் இருக்கும். தற்போது – 6 சொற்கள் மீதம் உள்ளன.
அடுத்தபடியாக பெயர்சொற்கள் அவற்றின் பட்டியல் கொண்டால் இதனையும் நாம் நீக்கிவிடலாம். மேல் உள்ள செயற்கையான உதாரனத்தில் ‘சீனா’ என்ற பெயர் சொல் நேரடியாக இந்த பட்டியலில் காணப்படும். தற்போது – 5 சொற்கள் மீதம் உள்ளன.
அடுத்தபடியாக வினைச்சொற்கள், மற்றும் இலக்கண வகைபடுத்தப்பட்ட இடைச்சொற்கள், ஆகுபெயர்கள், ஆகியவற்றை சரியாக பகுத்தாய்ந்து விதிகளுடன் உணர்ந்தால் சில அடிச்சொற்கள் கொண்ட பட்டியலின் வழியே மட்டும் அவற்றின் ஆக்கல் தன்மையின் வாயிலாக பல சொற்களை நாம் பகுத்தரியும் வகையில் அனுகலாம். தமிழில், இலத்தின் போல, வினைஎச்சங்கள், வினைச்சொற்கள் அவை வாக்கியத்தில் இடம் பெரும் இடங்கள் கண்டு மருவி வருகிண்ரன. எ.கா. ‘அவன் ஒரு சட்டை வாங்க சென்றான்’, ‘அவள் ஒரு சட்டை வாங்க சொல்வாள்’ என்ற இரு வாக்கியங்களில் ‘செல்’ என்ற சொல் மருவி ஆணுக்கு ‘சென்றான்’ என்றும் பெண்ணுக்கு ‘செல்வாள்’ என்றும் வருகிரது. இது சற்று சிக்கலான ஒரு அல்கொரிதத்தின் கீற்றாகவே அமைகிரது; இதனை அதிகம் மொழியியலாகவும் சற்று கம்மியாக கணினியியலாகவும் கருதலாம்.
தமிழில் உள்ள இலக்கண விதிகளை பேரா. ராஜம் அவர்கள் letsgrammar.org என்ற தளத்தில் வினைச்சொற்கள் எப்படி மருவும் என்ற விதிகளை மென்பொருளில் நிருவி அழகாக விளக்கியுள்ளார். இவற்றை ஆங்கிலத்தில் ‘word declension rules’ என்று சொல்வார்கள்.
எண்கள், வடமொழி சொற்கள், நிருத்த சொற்கள், பன்மை சொற்கள், ஆங்கில சொற்கள் ஆகியவற்றையும் நாம் கண்டறிந்து உரையினை இவற்றிலிருந்து நீக்கம் அல்லது பிழை திருத்தம் செய்யலாம். தட்டுப்பிழைகள், ஒருங்குரி பிழைகள் போன்றவற்றையும் இந்நிலையில் நாம் நீக்கிவிடலாம்.
2 பிழை வகைகள்
மேல் சொன்னபடி சொல்திருத்திகள் அவைகளின் நான்கு படினிலைகளில் ஏதேனும் ஒரு சொல்லை [உரையில் உள்ள] அந்தந்த வகுப்பில் உள்ளதாகவும் கண்டு, அதே சொல் தவராக உருவெடுத்திருந்தால் அது தவரான சொல் என்றும், அதனை நாம் சரிசெய்து – மாற்றங்களை பரிந்துரைக்கலாம். இதையே ‘wrong word error’ என்று சொல்லாம்.
கடைசியில், இவ்வாரு நான்கு படிகளில் நீக்கம் செய்யப்படாத சொற்களை நாம் அகராதியில் இல்லாத சொற்கள் என்று மட்டுமே கருதலாம். அதாவது இவற்றை ‘non-word error’ என்று கண்டறிந்து சொல்லாம். இவற்றில் நாம் மாற்று சொற்களை தரமுடியாது.
concordance தரவுகள் இருப்பின் ‘அன்பே சிவம் என்பர் சைவ சித்தாந்திகள்‘, மற்றும் ‘அன்பே சவம் என்பர் சைவ சித்தாந்திகள்‘ என்ற இரு வாக்கியங்களுக்கும் மாற்றுகள் மேல் கண்ட சொல்திருத்தியினை மேம்படுத்தி செயல்படுத்த செய்யலாம்.
3. வழங்கல்
இந்த நிலைகள் முழுதும் ஒரு மேலோட்டமான ஒவ்வொரு சொல்திருத்தியின் கட்டமைப்பிலும் இருப்பதாக நாம் உணரலாம்.
சொல்திருத்தி என்பது உரையினை உள்வாங்கிக்கொண்டு சரியான சொற்களை முழுதும் கண்டுகொள்ளாது. தவரான சொற்களை மட்டுமே மையமாக கொண்டு இயங்குகிரது. என்னடா வாழ்க்கையிது, கால்ஃபு போல் சொல்திருத்திகள், எல்லாமே சரியான ஆட்டத்தினால் நிற்னயிக்கப்படுவதில்லை – பிழையான சொல், பிழையான ஆட்டம் அதே வெற்றியை நிற்னயிக்கிரது. இதன் பணி:
தவரான சொற்களை சுட்டிக்காட்ட வேண்டும்
தவரான சொற்களுக்கு மாற்றங்களை காட்ட வேண்டும்
தவரான் சொல்லுக்கு பயனர் மாற்று தரவிருந்தால் அதனை சொல் பட்டியலில் சேர்த்துக்கொள்ள வேண்டும்; அதனை உரையிலும் மாற்றவேண்டும்.
கடைசியில் அனைத்து உள்ளீடுகளையும் ஒருங்கிணைத்து சரியான உரையை சொல்திருத்தி வழங்கும்.
முதல் முரை நான் செருமன் மொழி கற்கும் போது தமிழ் மொழியின் பெயர் Tamilisch என்று சொன்னாங்க. ஜெர்மென் கற்க வாய்ப்பை பயன்படுத்திக்கொள்ளமுடியவில்லை.
ஒரு தானியங்கி ஆட்டொமாடிக்கா பல மொழிகளில் தமிழ் மொழியின் பெயர் இதோ!
Language
Word for ‘தமிழ்’
Code
Afrikaans
tamil
af
Albanian
tamil
sq
Amharic
ታሚልኛ
am
Arabic
التاميل
ar
Armenian
թամիլերեն
hy
Azerbaijani
Tamil
az
Basque
tamil
eu
Belarusian
тамільская
be
Bengali
তামিল
bn
Bosnian
Tamil
bs
Bulgarian
тамилски
bg
Catalan
tamil
ca
cebCebuano
Tamil
nga
Chichewa
Tamil
ny
Chinese (Simplified)
泰米尔人
zh
Chinese (Traditional)
泰米爾人
zh-TW
Corsican
Tamil
co
Croatian
tamilski
hr
Czech
tamil
cs
Danish
Tamil
da
Dutch
Tamil
nl
English
Tamil
en
Esperanto
tamila
eo
Estonian
tamil
et
Filipino
Tamil
tl
Finnish
tamil
fi
French
tamoul
fr
Frisian
tamil
fy
Galician
tamil
gl
Georgian
Tamil
ka
German
Tamilisch
de
Greek
Ταμίλ
el
Gujarati
તમિલ
gu
Haitian Creole
Tamil
ht
Hausa
Tamil
ha
Hawaiian
Tamil
haw
Hebrew
טמילית
iw
Hindi
तामिल
hi
Hmong
Tamil
hmn
Hungarian
tamil
hu
Icelandic
tamil
is
Igbo
Tamil
ig
Indonesian
Tamil
id
Irish
tamil
ga
Italian
Tamil
it
Japanese
タミル語
ja
Javanese
Tamil
jw
Kannada
ತಮಿಳು
kn
Kazakh
Тамил
kk
Khmer
ភាសាតាមីល
km
Korean
타밀
ko
Kurdish (Kurmanji)
Tamil
ku
Kyrgyz
Tamil
ky
Lao
ທະມິນ
lo
Latin
Tamil
la
Latvian
Tamilu
lv
Lithuanian
tamilų
lt
Luxembourgish
Tamil
lb
Macedonian
Тамилските
mk
Malagasy
Tamil
mg
Malay
Tamil
ms
Malayalam
തമിഴ്
ml
Maltese
tamil
mt
Maori
Tamil
mi
Marathi
तामिळ
mr
Mongolian
Тамил
mn
Myanmar (Burmese)
တမီး
my
Nepali
तामिल
ne
Norwegian
Tamil
no
Pashto
تامیل
ps
Persian
تامیل
fa
Polish
Tamil
pl
Portuguese
tâmil
pt
Punjabi
ਤਾਮਿਲ
pa
Romanian
tamilă
ro
Russian
тамильский
ru
Samoan
Tamil
sm
Scots Gaelic
Tamil
gd
Serbian
тамилски
sr
Sesotho
Tamil
st
Shona
Tamil
sn
Sindhi
تامل
sd
Sinhala
දෙමළ
si
Slovak
tamil
sk
Slovenian
tamil
sl
Somali
Tamil
so
Spanish
Tamil
es
Sundanese
Tamil
su
Swahili
Tamil
sw
Swedish
Tamil
sv
Tajik
тамилӣ
tg
Tamil
தமிழ்
ta
Telugu
తమిళ
te
Thai
มิลักขะ
th
Turkish
Tamilce
tr
Ukrainian
тамільська
uk
Urdu
تمل
ur
Uzbek
Tamil
uz
Vietnamese
Tamil
vi
Welsh
tamil
cy
Xhosa
Tamil
xh
Yiddish
טאַמיל
yi
Yoruba
Tamil
yo
Zulu
Tamil
zu
இதன் நிரல் இங்க்கே:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
How can you convert a text like “Me Amor!” to “என் உயிரே!” [from Spanish to தமிழ்] ? Lets assume we have Spanish to English and Tamil to English translators [bidirectional with English] then we can convert Spanish to English then to Tamil. Likewise one can translate between any two languages from a clique of languages [so far as the clique is defined such that each language can be translated to at least one other language in clique].
Development – Theory
Language can exist as text (print/message/document) or speech (audio, conversations) etc. Ideas are represented in any language. Ideas originate from one language and move to another, or sometimes originate iñ many lañguages simultaneously. Ideas cañ cross from oñe language to añother via text or speech.
In mathematical terms if we write L as set of lañguages = { L1, L2, .. Ln} and then if we define each language as a tuple Li = (Ti,Si) then we may further define mathematical function operating on text and converting it to speech as :
TTSi : Ti -> Si
we may define a function speech recognition as,
ASRi : Si -> Ti
we may also define a translation function as,
TXij : Li -> Lj
Essentially what we can do is by representing the language as a node in a graph with two text and speech parts to it, we may connect these nodes to each other via the edges – functions – like ASR and TTS, and to nodes of other languages via translators function edge.
In a graph with only two languages [English, Tamil] with all edges representing functions like TTS, ASR within same language and functions like Translator between two languages (one for each direction) we see a graph like the following:
Fig. 1: Language transformation graph. Nodes represent languages and their components. Edges represent functions like TTS, ASR [for same language] and Translators [directional between languages]. Clearly we may see this is a directed graph with ability to go from a specific language to another language in text or speech or both forms, provided a path exists from source to target language. Using such a graph with no orphan nodes, we may have universal translation powers from language A to language B [so far as bidirectional connectivity is present with at least one neighbor].
Problems to Ponder
So the curious reader now having a background of representing the translation problem as a graph problem of reaching node B from node A, can use rich set of path finding algorithms and shortest distance algorithms may attempt to answer some of these questions:
What is the graph criteria for a language to have no translations ?
What is the graph criteria for a language to not be able to have virtual assistant ? [Siri, Cortana, Alexa etc.]
Conversely, to 2, what is minimum criteria [necessary but not sufficient] to have a virtual assistant [that can speak and listen] ?
Given two paths to translating from language A -> F, which are of two different lengths which one would you choose and why? Assume all jumps have a uniform information loss. What if information loss at each edge is non-uniform, how can you optimized such a problem ?
How would you introduce a new language into this graph so that it maybe translated to all other languages [unidirectionally] ?
How would you introduce a new language into this graph so that it can be bi-directionally translated ?
How can you represent the transliteration function in this graph ?
Answers will be posted soon! Feel free to leave your comments in section below.