Project Madurai Corpus – உளி வீரன்

Project Madurai

Project Madurai corpus contains a treasure trove of Tamil data across many generations and inflections of Tamil language. Using this data I post-processed the files in project உளி வீரன்.

Data

We are able to look at data from Project Madurai e-Texts. Currently 4,036,616 total words – 40 lakh plus words –  in ‘plain_text’ folder which contains unigram data and bigram data at word level. One may use open-tamil library to: – discover the unigram word-frequency of this corpus – discover the bi-gram word-frequency of this corpus (since successive words occur in successive lines).

Morse Code for Madurai Corpus

Using the techniques laid out in earlier blog post on Morse Code we are able to regenerate the Morse Code for Tamil using additional data.

Average code word length = 6.65456 bits. Morse code for Tamil using Madurai corpus is displayed below [most frequently occurring symbols to least] – i.e. in descending order.

  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. னை -> ......--
  57. டை -> ....--..
  58. ள -> ...-----
  59. கொ -> ...-..--
  60. செ -> ..--....
  61. ளி -> ..-..---
  62. ந -> ..-..--.
  63. ண -> ..-.-...
  64. லி -> ..-.-.--
  65. லா -> ..-.-.-.
  66. னி -> .----...
  67. நி -> .---.-..
  68. போ -> .-......
  69. னா -> .-...--.
  70. வே -> .-...-.-
  71. வு -> .-.-----
  72. கை -> .-.----.
  73. னு -> .-.---..
  74. தை -> .-.---.-
  75. மை -> .-.-...-
  76. மி -> .-.-.---
  77. ரை -> .-.-.--.
  78. ளை -> -----...
  79. ழி -> ---...--
  80. ஆ -> ---...-.
  81. லு -> ---..-..
  82. ழு -> --....--
  83. பெ -> --....-.
  84. றை -> --.--...
  85. பொ -> --.--.--
  86. நா -> --.--.-.
  87. ஞ் -> -......-
  88. ரா -> -....---
  89. தே -> -....-..
  90. ணி -> -....-.-
  91. ழ -> -.--..--
  92. சு -> -.--..-.
  93. றா -> -.--.-.-
  94. ழ் -> ........-
  95. வெ -> .......-.
  96. மே -> ......-..
  97. டா -> ......-.-
  98. ளு -> ...----.-
  99. வை -> ...-..-.-
  100. தெ -> ..--...--
  101. யை -> ..-..-..-
  102. கூ -> .----..--
  103. ஒ -> .----..-.
  104. யே -> .---.-.--
  105. தோ -> .---.-.-.
  106. சா -> .-.....-.
  107. தொ -> .-...---.
  108. மெ -> .-...-..-
  109. நீ -> .-.-....-
  110. கோ -> -----..--
  111. கே -> --.--..--
  112. சை -> -........
  113. பே -> -.......-
  114. சொ -> -....--.-
  115. லே -> -.--.-...
  116. யெ -> -.--.-..-
  117. ளா -> .........-
  118. னே -> .......---
  119. ஏ -> ....--.---
  120. வீ -> ....--.--.
  121. பூ -> ....--.-.-
  122. சே -> ...----...
  123. யோ -> ...-..-..-
  124. ழை -> ..--...-.-
  125. நெ -> ..-..-....
  126. தீ -> ..-..-.--.
  127. ணை -> ..-..-.-.-
  128. வ் -> ..-.-..--.
  129. மூ -> .-...-----
  130. றே -> .-...-...-
  131. மொ -> .-.-.....-
  132. கெ -> -----..-.-
  133. ணு -> ---..-.--.
  134. ஓ -> ---..-.-..
  135. சூ -> --.--..-..
  136. தூ -> -....--...
  137. ரே -> .......--..
  138. னெ -> .......--.-
  139. மோ -> ....--.-..-
  140. பை -> ...----..--
  141. சீ -> ...----..-.
  142. மீ -> ...-..-...-
  143. ணா -> ..--...-...
  144. டே -> ..-..-...-.
  145. ஊ -> ..-..-.----
  146. னோ -> ..-..-.---.
  147. ளே -> ..-..-.-..-
  148. வோ -> ..-.-..----
  149. சோ -> ..-.-..---.
  150. நே -> ..-.-..-...
  151. ரெ -> ..-.-..-..-
  152. லோ -> ..-.-..-.--
  153. ஸ் -> ..-.-..-.-.
  154. லெ -> .-.....---.
  155. நோ -> .-.....--..
  156. யொ -> .-...----..
  157. ரோ -> .-...-.....
  158. ஈ -> .-...-....-
  159. றோ -> .-.-.......
  160. நு -> .-.-......-
  161. றெ -> ---..-.----
  162. நூ -> ---..-.---.
  163. கீ -> -....--..-.
  164. ஞா -> ............
  165. ஐ -> ..........--
  166. ஷ -> ..........-.
  167. ழா -> ...-..-.....
  168. டெ -> ..--...-..-.
  169. வொ -> ..-..-...---
  170. ளெ -> ..-..-...--.
  171. ஜ -> ..-..-.-....
  172. றொ -> .-.....-----
  173. ளோ -> .-.....--.--
  174. னொ -> .-.....--.-.
  175. டோ -> .-...----.--
  176. யூ -> -----..-....
  177. ஷ் -> -----..-...-
  178. பீ -> ---..-.-.---
  179. றீ -> ---..-.-.--.
  180. லொ -> ---..-.-.-.-
  181. ரொ -> --.--..-.---
  182. ரீ -> --.--..-.-..
  183. ரூ -> ...........--
  184. ஞ -> ....--.-.....
  185. னீ -> ....--.-...--
  186. டொ -> ...-..-....--
  187. ணீ -> ...-..-....-.
  188. யீ -> ..--...-..---
  189. டீ -> ..--...-..--.
  190. வூ -> .-.....----.-
  191. ணெ -> .-...----.-.-
  192. ஸ -> -----..-..--.
  193. ஜா -> -----..-..-.-
  194. லீ -> --.--..-.--..
  195. ணே -> --.--..-.-.--
  196. னூ -> --.--..-.-.-.
  197. லூ -> -....--..----
  198. நொ -> -....--..--..
  199. ஃ -> -....--..--.-
  200. ளொ -> ...........-.-
  201. ங -> ....--.-...-..
  202. றூ -> ..-..-.-...-..
  203. ணோ -> ..-..-.-...-.-
  204. ஜ் -> .-.....----...
  205. டூ -> .-...----.-...
  206. ஹ -> -----..-..----
  207. ஷி -> -----..-..-..-
  208. நை -> ---..-.-.-...-
  209. ஹா -> ---..-.-.-..--
  210. ளீ -> --.--..-.--.-.
  211. ளூ -> -....--..---.-
  212. ழீ -> ...........-..-
  213. ஜி -> ....--.-....--.
  214. ஸி -> ....--.-....-..
  215. ழே -> ....--.-...-.-.
  216. ஞை -> ..-..-.-...----
  217. கௌ -> ..-..-.-...--.-
  218. மௌ -> .-.....----..--
  219. ணொ -> .-...----.-..--
  220. சௌ -> .-...----.-..-.
  221. ஸா -> -----..-..---.-
  222. ஷா -> -----..-..-...-
  223. ஜெ -> ---..-.-.-.....
  224. வௌ -> ---..-.-.-....-
  225. ஷை -> ---..-.-.-..-..
  226. ஜோ -> --.--..-.--.---
  227. ஜீ -> --.--..-.--.--.
  228. ழெ -> -....--..---...
  229. ஷே -> -....--..---..-
  230. ணூ -> ....--.-....----
  231. ஜை -> ....--.-....---.
  232. ஹி -> ....--.-....-.--
  233. பௌ -> ....--.-...-.---
  234. ஔ -> ..-..-.-...---..
  235. ஞெ -> ..-..-.-...--...
  236. ழூ -> .-.....----..-.-
  237. ழோ -> -----..-..---..-
  238. ழொ -> -----..-..-....-
  239. ஸு -> ---..-.-.-..-.--
  240. ஹோ -> ...........-.....
  241. ஜு -> ...........-...--
  242. ஷு -> ...........-...-.
  243. ஞீ -> ....--.-....-.-..
  244. ஹ் -> ..-..-.-...---.-.
  245. தௌ -> ..-..-.-...---.--
  246. ஸை -> ..-..-.-...--..--
  247. ஜே -> ..-..-.-...--..-.
  248. ஸீ -> -----..-..---...-
  249. ஞி -> -----..-..-.....-
  250. ஸூ -> ...........-....--
  251. ஜொ -> ....--.-....-.-.--
  252. ஹு -> ....--.-...-.--...
  253. ஹை -> ....--.-...-.--..-
  254. ஹீ -> ....--.-...-.--.--
  255. ஸெ -> .-.....----..-....
  256. ஜூ -> .-.....----..-...-
  257. ரௌ -> .-.....----..-..-.
  258. ஹே -> -----..-..---.....
  259. ஸே -> -----..-..-.......
  260. யௌ -> ---..-.-.-..-.-...
  261. ஷூ -> ---..-.-.-..-.-..-
  262. ஹூ -> ---..-.-.-..-.-.--
  263. ஹெ -> ...........-....-..
  264. ஞூ -> ...........-....-.-
  265. ஸோ -> ....--.-...-.--.-..
  266. ஞே -> .-.....----..-..---
  267. ஷீ -> -----..-..---....--
  268. ஷோ -> -----..-..-......--
  269. ஷெ -> -----..-..---....-.
  270. ஹொ -> ---..-.-.-..-.-.-..
  271. ஞோ -> ---..-.-.-..-.-.-.-
  272. ஸௌ -> ....--.-....-.-.-...
  273. டௌ -> ....--.-....-.-.-.--
  274. லௌ -> ....--.-....-.-.-.-.
  275. ஞு -> ....--.-...-.--.-.--
  276. நௌ -> .-.....----..-..--.-
  277. ஙு -> -----..-..-......-..
  278. ஹௌ -> ....--.-....-.-.-..-.
  279. ஸொ -> .-.....----..-..--...
  280. னௌ -> ....--.-...-.--.-.-.-
  281. ஙொ -> ....--.-...-.--.-.-..
  282. ஞௌ -> .-.....----..-..--..-
  283. ஞொ -> ....--.-....-.-.-..---
  284. ஙா -> -----..-..-......-.---
  285. ஙே -> -----..-..-......-.-..
  286. ளௌ -> ....--.-....-.-.-..--..
  287. ஷொ -> -----..-..-......-.-.--
  288. ழௌ -> -----..-..-......-.--..
  289. ஙூ -> -----..-..-......-.-.-.
  290. ஷௌ -> -----..-..-......-.--.--
  291. றௌ -> -----..-..-......-.--.-.
  292. ஙோ -> ....--.-....-.-.-..--.--
  293. ஙி -> ....--.-....-.-.-..--.-.

We are able to say this Morse code book is a better representation of Tamil since it finds 290 letters incident of the 323 letters in Grantha + Tamil letter set generated from the Madurai corpus of 4 million words.

 

Tamil in Morse-code

Can we compose a Tamil Morse-code ? Yes, we can.

315px-International_Morse_Code.svg
International Morse Code – Source: Wikipedia
  1. Start with a frequency count of Tamil letters from various sources
  2. Build a probability distribution from the frequency counts
  3. Build a Huffman code using the above distribution
  4. Each letter of Tamil alphabet gets a Morse code : 0 = ‘.’, 1 – ‘-‘.
    புள்ளி, கோடு.

Tamil Morse Code Table generated from Open-Tamil library. See here for full code and methodology. Full table follows.

Can you decode what this Morse code means in Tamil ? Hint: 2 words (4,5) letters long

...-. --.--.. .---..--.--- .-..-. ...-. ---.-. -----.--.- .--....- ..-..-

Please note table was updated to show letters in most-frequent to least-frequent alphabets and their code-words used. Updated after publishing on Aug 16th, 2018.

Source coding theory

Information theory provides us with tools to calculate the information content of symbols in a language, i.e. alphabets in our case. Average codeword length was 6.45652 bits, which is rounded to 7bits.
According to 230+ symbols of encoded in binary without attention to letter frequency we would be using ceil[ log2[230] ] ~ 8bits per symbol, so the usage of Morse code provides a related data compression of 12.5%!

Previously, I had written about Morse code for Tamil in this blog here, and relationship with Unigram, Bigram and Trigram models and word-structure in Tamil language.

  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. சா -> ...--..-
  57. ற -> ...--.--
  58. லி -> ..--..--
  59. வு -> .---...-
  60. கொ -> .---..-.
  61. ந -> .--.....
  62. நி -> .--....-
  63. ஞ் -> .--.----
  64. ரா -> .--.---.
  65. ணி -> .--.--..
  66. ளி -> .--.--.-
  67. யா -> .-......
  68. நா -> .-.-..--
  69. றி -> .-.-..-.
  70. கோ -> -------.
  71. செ -> ------..
  72. ழி -> ------.-
  73. னி -> -----.-.
  74. ழு -> --.-----
  75. மி -> --.----.
  76. யி -> --.-....
  77. பொ -> --.-.-..
  78. ரை -> --.-.-.-
  79. வெ -> -.-.....
  80. எ -> -.-.--..
  81. மை -> -.-.--.-
  82. றை -> -.-.-..-
  83. பூ -> ......--.
  84. ழ -> ...-----.
  85. னை -> ...----..
  86. லா -> ...--.-..
  87. சை -> ..--..-.-
  88. வை -> ..-.--...
  89. போ -> ..-.--..-
  90. கூ -> ..-.--.-.
  91. வே -> .--------
  92. டா -> .-------.
  93. தை -> .------..
  94. பெ -> .---....-
  95. ளை -> .---..---
  96. தே -> .-.---...
  97. ஒ -> .-.---.--
  98. ழ் -> -----.---
  99. லு -> ---...---
  100. நீ -> ---...-..
  101. சீ -> ---...-.-
  102. தீ -> --.---...
  103. மூ -> --.---..-
  104. தொ -> --.---.--
  105. ணை -> --.---.-.
  106. ஏ -> --.-...-.
  107. நெ -> -.-....-.
  108. ளு -> -.-.-....
  109. னா -> ......----
  110. சூ -> ......---.
  111. மே -> ...-------
  112. தோ -> ...------.
  113. தெ -> ...----.-.
  114. சொ -> ...--.....
  115. சே -> ...--....-
  116. தூ -> ...--...--
  117. யு -> ...--...-.
  118. பே -> ...--.-.--
  119. வீ -> ..--..-..-
  120. ஊ -> .------.--
  121. னு -> .---......
  122. யோ -> .---.....-
  123. சோ -> .---..--..
  124. கே -> .-.....---
  125. ழை -> .-.....--.
  126. ணு -> .-.---..--
  127. ஓ -> .-.---.-..
  128. கெ -> ----------
  129. கீ -> --------..
  130. றா -> --------.-
  131. பை -> -----.--..
  132. ணா -> -----.--.-
  133. ரோ -> ---...--.-
  134. மொ -> -.-....--.
  135. மெ -> -.-.-...--
  136. லோ -> ...----.---
  137. பீ -> ...----.--.
  138. ளா -> ...--.-.-.-
  139. ஈ -> ..--..-....
  140. ஞா -> ..--..-...-
  141. மீ -> ..-.--.----
  142. வ் -> ..-.--.--..
  143. மோ -> ..-.--.--.-
  144. நு -> .---..--.-.
  145. ஐ -> .-.....-..-
  146. ரே -> .-.....-.-.
  147. நோ -> .-.---..-.-
  148. நே -> .-.---.-.--
  149. நூ -> ---------..
  150. யெ -> --.-...----
  151. லே -> --.-...--..
  152. ரீ -> -.-....----
  153. நொ -> -.-....---.
  154. யை -> -.-.-...-..
  155. ழா -> ...--.-.-...
  156. ரூ -> ...--.-.-..-
  157. னோ -> .------.-.--
  158. ஞ -> .---..--.---
  159. யூ -> .---..--.--.
  160. வோ -> .-.....-....
  161. யே -> .-.....-.---
  162. லெ -> .-.---..-...
  163. ரெ -> .-.---.-.-.-
  164. ணீ -> ---...--....
  165. டோ -> ---...--..--
  166. டெ -> ---...--...-
  167. கௌ -> ---...--..-.
  168. ணெ -> --.-...---..
  169. சௌ -> --.-...---.-
  170. றெ -> ..-.--.---...
  171. லூ -> ..-.--.---..-
  172. றோ -> .------.-....
  173. னே -> ..-.--.---.--
  174. னீ -> .------.-..-.
  175. நை -> .------.-..--
  176. டூ -> .------.-.-..
  177. னெ -> .-.....-.--..
  178. டே -> .-.....-.--.-
  179. ஞெ -> .-.---..-..--
  180. ளெ -> .-.---.-.-...
  181. டீ -> ---------.---
  182. யொ -> ---------.--.
  183. பௌ -> ---------.-..
  184. ஃ -> --.-...--.---
  185. ஔ -> --.-...--.-..
  186. ஞை -> -.-.-...-.---
  187. யீ -> -.-.-...-.--.
  188. றொ -> -.-.-...-.-.-
  189. வொ -> .------.-...--
  190. வூ -> ..-.--.---.-..
  191. னூ -> .------.-.-.--
  192. ளோ -> .-.....-...---
  193. ணோ -> .------.-.-.-.
  194. றே -> .-.....-...--.
  195. மௌ -> .-.....-...-..
  196. தௌ -> .-.---..-..-..
  197. ளே -> .-.---.-.-..-.
  198. லொ -> .-.---.-.-..--
  199. றூ -> ---------.-.--
  200. ரொ -> --.-...--.--..
  201. டொ -> --.-...--.-.-.
  202. ங -> -.-.-...-.-...
  203. ணே -> ..-.--.---.-.--
  204. ளீ -> .------.-...-..
  205. ழூ -> .-.....-...-.-.
  206. ளொ -> .-.---..-..-.-.
  207. ரௌ -> .-.---..-..-.--
  208. யௌ -> ---------.-.-..
  209. னொ -> ---------.-.-.-
  210. ழோ -> --.-...--.-.--.
  211. ளூ -> --.-...--.-.---
  212. ஞி -> -.-.-...-.-..--
  213. ணொ -> .-.....-...-.---
  214. ணூ -> .------.-...-.--
  215. ழீ -> .-.....-...-.--.
  216. ஸ் -> --.-...--.--.--.
  217. வௌ -> -.-.-...-.-..-..
  218. ஞீ -> --.-...--.--.---
  219. ஷ் -> ..-.--.---.-.-...
  220. ஷி -> ..-.--.---.-.-..-
  221. ழெ -> ..-.--.---.-.-.-.
  222. றீ -> .------.-...-.-.-
  223. நௌ -> ..-.--.---.-.-.--
  224. ஞே -> .------.-...-.-..
  225. லௌ -> --.-...--.--.-..-
  226. ஞொ -> -.-.-...-.-..-.--
  227. ஙு -> --.-...--.--.-...
  228. ஷ -> --.-...--.--.-.---
  229. ழொ -> --.-...--.--.-.--.
  230. ழே -> -.-.-...-.-..-.-.
  231. டௌ -> --.-...--.--.-.-.-
  232. ஞூ -> --.-...--.--.-.-..

Caveats and Closing Comments

Of course 15 of 247 letters are perhaps not received any codeword in this codebook. Further with inclusion of Grantha letters, 323 letters exist in Tamil some of which we don’t have code words.

Further, a large text corpus like Project Madurai’s [PM] unigram frequency distribution maybe useful to develop a widely representative Morse code table. Once you have this PM unigram data, you know how to get this Tamil Morse codebook regenerated!

தமிழ்கருவி

2007-இல் எனது முதல் தமிழ் மென்பொருளை உருவாக்கினேன். இன்று தொலைந்த மென்பொருள்கலில் ஒன்று. எப்படி தொலயவிட்டேன் ? காலம்.

மிதம் https://egovindia.wordpress.com/2007/01/09/tamil-transliteration-tool-using-gtk-toolkit-for-gnome-environment/

Screen Shot 2018-08-11 at 1.47.00 AM

 

Tamilpesu.us update – Text Summarizer

Tamilpesu.us updated on Aug 8th. This brings all bug fixes of the development in Open-Tamil from March 2018 to present, and new functionality via Tamil text summarizer. This works on text analysis of essay input to split into sentences and words, and forms a correlation matrix to develop a score based off that we pull sentences from text into final summary. Give it a try http://tamilpesu.us/

text-summarizer-TamilPesu.us.png
Text summarizer output of the article from The Hindu Tamil newspaper. Its quite relevant summary in this case, providing an agreeable output.

Unfortunately we are not able to put the Tamil word classifier [using SciKit Learn and Python] online since currently the Python/Django dependency on AWS machine is incompatible; wait for that in future or try it out by yourself.

Thanks to all our contributors, as always to keep this volunteer work going.

 

Tamilisch – தமிழ் மொழியின் பெயர்

முதல் முரை நான் செருமன் மொழி கற்கும் போது தமிழ் மொழியின் பெயர் 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

இதன் நிரல் இங்க்கே:

# -*- coding: utf-8 -*-
# (C) 2018 Muthiah Annamalai <ezhillang@gmail.com>
# This code is shared under public domain.
from google.cloud import translate
import tamil
import codecs
import json
import sys
def get_translated_words(wrd,tgtLang,client):
if tgtLang == 'ta':
return wrd
en_wrd20 = client.translate(wrd,source_language='ta',target_language=tgtLang)
return en_wrd20['translatedText']
def run():
c = translate.Client()
data = {}
lmap = c.get_languages()
for lang in lmap:
lcode = lang['language']
lname = lang['name']
data[lname] = [get_translated_words(u"தமிழ்",lcode,c),lcode]
for lcode,word in data.items():
print(u"%s %s <%s>"%(word[0],word[1],lcode))
with codecs.open('tamil_2languages.json','w','utf-8') as fp:
fp.write( json.dumps( data ) )
if __name__ == u"__main__":
run()

Apple’s second Keyboard for Tamil

Traditionally Apple Keyboard for Tamil has supported “Tamil Standard” [there are some anecdotal frustrations of senior Tamil computing innovators about Apple culturally appropriating this ‘Tamil99’ as their ‘standard’ and stripping away any mention of Tamil99, but this is for another day. Shh.] or Tamil99 layout which is quite useful for most practitioners. However one may observe in Tamil computer user community the prevalence of preference for transliteration input [Google has trained us by providing some good tools here, and Apple follows suit].

Beginning with iOS 12, Apple has released a Tamil transliterator. இதன் வழி எப்படியும் தமிழில் டைப்பிங் செய்யலாம்.

Screen Shot 2018-07-26 at 9.02.41 PM
Apple iOS v12 update provides an additional IM by Tamil Keyboard with transliteration input. This July, 2018 updates provides this facility in Apple iPhone and Mac devices via iOS 12.

This method is useful for typing short sentences for my use so far, but I have to spend long enough time to pick it up. I hope Apple continues to support this feature and introduce Tamil input to several newer younger generation folks.

Plusses include – easy predictive input. Minusses include – somewhat non-intuitive mapping for certain letters. I cannot post a full review here, only for lack of trying. Thanks, Apple.

Language Transformations

Question  of Translation

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:

Screen Shot 2018-08-03 at 11.51.08 PM
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:

  1. What is the graph criteria for a language to have no translations ?
  2. What is the graph criteria for a language to not be able to have virtual assistant ? [Siri, Cortana, Alexa etc.]
  3. Conversely, to 2, what is minimum criteria [necessary but not sufficient] to have a virtual assistant [that can speak and listen] ?
  4. 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 ?
  5. How would you introduce a new language into this graph so that it maybe translated to all other languages [unidirectionally] ?
  6. How would you introduce a new language into this graph so that it can be bi-directionally translated ?
  7. How can you represent the transliteration function in this graph ?

Answers will be posted soon! Feel free to leave your comments in section below.

-Muthu